Open Source as Programming Exp. for College Students?
texatut asks: "With the computer industry in a slump, many college CS students nearing graduation are looking at pretty meek prospects. While 'formally' educated, few actually have concrete experience dealing with development of software. Many would like to have something concrete to put down on their resume or application to graduate school. However, starting their own project is a hard and time-consuming task. Obviously, the Open Source community is a perfect place for us to get our hands dirty. My question is, are there any resources that can help people with varying levels of experience connect with development teams in a way that would benefit both the project and the students?"
You could always check sourceforge, they always have listings for tons of projects that need testers, coders, documentation folks, etc. Good way to get your "hands dirty" and help out the community.
Where's my lobbyist? Right here.
Well, are they doing anything else?
If the student is interested, just shoot the lead dev an email and he's in, right?
However, my advice in these troubled times is to continue having Ma and Pa keep footing the bill for education and get a Master's degree. When the tech slump ends, the student will be that much better off with more experience than he could shake a stick at. Another bonus is that his starting salary will likely be higher than a fresh recruit's.
Most projects would love to see more help--simply find lead developers or maintainers and say hello. Or send a message to the project mailing list and ask about projects, suggestions, etc.
There are always features that have sat on the back burner, code to be cleaned up, etc. And of course I can tell you that as an undergrad, you often have more time to code.
-Geoff
Yes, browse sourceforge and freshmeat for interesting projects that need help.
Rarely do you find stuff there that isn't in need of some kind of help. Sometimes, all they need a a little design/analysis work, sometimes they have modules to code. Check it out, you might just make someone's day.
room101 -- how much can you stand before they break you?
(they always break you eventually)
The problem that some employers have with new grads is not just the lack of experience. It is also the lack of experience on large projects. Writing and maintaining a 2k-3k utility, even at a job, is very easy as compared to dealing with a small portion of a 250,000 line program.
Fight Spammers!
Many 'Senior Design' (aka Capstone) courses are ideal for open-source projects. You gain valuable experience, contribute to the open-source community, and get course credit! Plus, sometimes these projects translate into actual jobs when you get out of school.
Many professors will let you work on O.S. projects if you find one than can be completed in the alloted time, and if it's relevant to some of your other coursework. Of course, this depends greatly on the professor, but you'll never know if you don't ask.
Look up the "jobs" section, find a project you like & go for it.
The thing is, how much weight does this have?
n my exprenence not much. They (interviewers) don't need to see your technical skill (you passed Uni, you have it) but your team work skills (shows a bit in OSS), project managment (oss does not count for much) and how well you work in a comersal(sp) envoroment (not shown AT ALL in an OSS project).
mike
Wow, I should not post when knackered.
What about a request board for different projects where developers can list features they'd like help with? Documentation is also always a problem area? Perhaps they could pitch in on that?
As an employer, I would treat "open source development" on a resume the same way as "built web sites for my family".
-
Inventor of the term 'pardon my French'.
Although, not all students will get positions on research staff, and it usually doesn't pay all that great... research staff positions are available at most universities.
Plus, (at the risk of getting flamed) most commercial software companies will give more credence to someone with a research background than to someone who worked on the latest Open Source project.
Despite what EULAs say, most software is sold, not licensed.
"Frank, sourceforge needs more hits... we'll need to buy a few banner ads"
"Nah, I've got a better idea, why not post an Ask Slashdot question where the most obvious answer is 'sourceforge'? Like 'where can I find a bunch of open source developers?'"
"Great.. I'll get right on it.."
Could there be a problem with listing OSS on the resume? Would an employer be turned off by the chance somebody might accidently re-use GPL/etc. code in their closed source app and thus not want to hire a person?
I am not sure I would list the software specificly as OSS but maybe just say you worked on a software project with frinds/etc..
Everyone is in computer science for the money these days.
We tried to get an Open Source Development group together at my school, 5 people showed up. One guys was like, "With Open Source we can go download everyone's source code and resell it for thousands of dollars. Its work free!" Yeah, ummm....I think he kinda missed the boat...
Too many colleges are indebited to M$ and so that mentality is pervasive in Colleges and Universities. I'm sure a good portion of undergradatues across the US (I can guarantee that's the case at my school) haven't ever been to Sourceforge.
"But that's just my opinion, I could be wrong" - Dennis Miller
As a student of Flordia State University (the number 1 rated party school by Playboy and Princeton Review.) I can tell you that anything which cuts in on our drinking/smoking time is looked down upon as a needless waste of time.
Your not going to find any programmers in college willing to work on a project longer then 1 hour a day that is too confusing to code drunk or high.
consider kerneljanitors.org
So I've been out of college maybe a year, freelancing for varying amounts of cash, but during slacker periods I'm damned sure to be working on an open source project or two. In fact the last project I chipped into (hint: an internal company project that's open source software) has resulted in a short-term contract and offer of work overseas. So go for it, I say: these kind of corporate sponsored open-source projects offer plenty of opportunity to prove yourself.
DISCLAIMER: I'm not currently looking for more help.
While my site (db.etree.org) is not (all) open source, I have mentored a student (hey Eric) while he developed code now used on my site.
His school assignment was designing and implementing something from start to finish. He asked to work on top of the work (adding new code) I had done as his project. I hooked him up with a shell and CVS and we had quite a few phone conversations where (I hope) I taught him quite a bit.
We both benefited from the relationship in the end. Eric contacted me directly with a plan to enhance my site. This method worked very well for us...that is, someone looking for experience came up with a plan for an existing project and asked to do itand, in return, I mentored him.
I believe it's a great idea.
here would be a great place to begin.
Could look great on your CV and benefit the OS community as a whole.
Prisoner #655321
You could go to SF and pick some project at random and start helping with it, or, you could try to stop using closed source software, when you need to do something that you could not otherwise do with an open source solution, or if you are using an open source project that lacks a certain functionality, you've found a good place to start contributing.
Saying Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Don't you mean "bleak" rather than "meek"?
I'm well on my way to graduating with a CS degree, but nothing beats real world experience. According to my advisor, if a potential employer sees an internship or a summer job that involves tasks similar to the position you are seeking, they are almost sure to give you a second look, and possibly a third.
Does anyone know if a hobby shareware site counts as job experience?
your salvation is here. Government contracts' labor catagories really care absolutely nothing about skill, talent, motivation or competency. If you have a technical degree you are qualified. Don't try to use any open source (or ANY non 'official' programs) as they don't care, nor do many other bloated and over managed companies. If you have a portfollio that has specific programs that prove competency in certain fields and such... who cares?! So, your best bet is really to simply rely on that degree and go from there. If you are motivated and competent, then I suggest avoiding big companies (big IT companies Ironically) and stick to smaller companies that are more interested in results than processes.
If there are no jobs, there are no jobs. How is making yourself better qualified for jobs that don't exist helpful?
Others will suggest starting with sourceforge, but in my experience a young coder doesn't want to pick somebody else's ideas and run with them s/he wants to find a way to test out new ideas and see if they'll work. Avoid isolation, try to find a team that has an agenda but permits arguments and discussion. Open source is a must, because you're always free to veer off on your own development tree if your ideas diverge from or are preempted by the requirements of the project.
...would you like fries with that?
Seriously, I would NEVER hire a programmer that has ZERO business experience...
Writing software is not hard. Just look around, if writing software was hard, there would not be so much freeware / open-source software out.
Writing up project plans, sticking to deadlines, THAT is what is important.
Too many folks that think being able to write programs is the end all...
It seems that one of the repeated claims about open-source software is that the best developers are sort of self-selected in a meritocratic system. However, throwing college undergrads at the problem certainly isn't going to garner a whole herd of the "best developers" out there. In fact, most of them will be downright awful.
So, would this be useful, or would it end up throwing a lot of buggy, fragile patches at software and overwhelming the lead developers?
We were hiring a few programmers a few months ago and we got a whole lot of applicants fresh out of college. My boss wouldn't even look at them, as their resumes did not contain any practical programming experience.
If any of those guys had contributed to at least one free software project they would have had a job. Contributing to a project is a great way of getting your hands in a large project, gaining the experience of working with a team, and it produces code that an employer can look at.
If I was graduating from college right now and was having trouble getting a job I would definitly contribute to at least one free software project. Not only is it a great resume builder but it keeps you from getting rusty.
Internship/Co-op with a company.
That's the #1 thing companies look for (next to GPA) when they look at your resume. While coding experience on a project outside of school/work does look nice, the most important thing is to get an internship/co-op at an established company.
A company doesn't want to know if you've worked on a small or large project; they want to know if you've worked (and if so, how well) in a company working in a team environment, problems you encountered/solved, etc.
Coding on an open source or other 'for fun' projects mainly show that you enjoy coding, not that you would be a good employee/coder.
the Google Programming Contest. That way you'd at least have some monetary incentive ($10000 prize), and who knows if Google likes your idea, you might get hired.
from the getting-experience-before-getting-that-all-importa nt-1st-job dept.
Open Source as programming experience? Excuse me, but Open Source development is not just a playground to warm up on before moving on to a "real job" writing proprietary software. If you desire to program for a living you can and should make a career out of doing Open Source development. It is absolutely mind boggling how much Slashdot editors have taken a stance against this ever since VA went proprietary. Well don't listen to the fools. There are plenty of legitimate and highly stable ways to make money writing free software. The most convenient way is consulting. In one form or fashion, offer clients a complete 'turn-key' solution: customized software, support, training, etc. Find some buddies who are also into Open Source and form a consulting group. Start small if everyone lacks experience, but you should really try to find someone who knows the ropes to serve as a mentor.
Don't believe the FUD, my friends. There is absolutely NO need for ANY proprietary software in this world. Those who argue otherwise do so only because they have a vested interest in proprietary venues and are afraid that the snowballing Open Source revolution is going to obsolete their enterprise. Well guess what? It's going to anyways. Choose your sides.
The often questionable quality of Open Source code can only take a nosedive if we start throwing CS-major lightweights at it....
Make a Network card driver for the kernel or improve an existing one. Apparently, if you submit a bad fix it isn't a total loss as that will be a catalyst to lots of people working on it where you screwed up.
...in a group environment, with schedules, deadlines, and 'clients', then save a dying breed and help code on a MUD.
I've got something like 6 years of experience coding for a MUD, and it's taught me several things. Not the least of which is this:
1) Your clients (players) are rarely, if ever, unanimously happy with your project.
2) Every other coder will try and avoid working, right up until the deadline. Sometimes after.
3) 99% of all code is boring, monotonous code.
4) If you really want something done, do it yourself.
Jake
Dating: while( 1 ){ call_girl(); get_rejected(); drink_40(); } return 0;
1) Start small. No kernel hacks yet, you can be more productive on smaller projetcs;
2) Abstract coding, that means try to learn/develop/help projects that are root of others. Like engines, classes, libraries. I know this somehow conflicts with number one but you must find the balance;
3) Do it right. Document, comment, test. No half steps please;
4) 'In-loco' development. Try to get a job in any company. Meet the managers to learn how to overcome this difficult part of our lives;
5) Share with other students. Recentely (er... 90 and above) developing an app has become more and more a team activity;
6) Block Slashdot's webpage access;
7) Write useful stuff, for you daily activites. Like a tool to perform any desirable action at the school network, to administer your books, to share knowledge better (Personally I would love somekind of P2P Knowledge-tree sharing system);
Well, that's it for now.
Buy a Nintendo DS Lite
Ohwell, after trying out a few i just joined a nice beginning project with a few friends, basically starting it out. You may exagerate the time that it costs to start a project, a good idea and your almost there. After coding on the project on and off for the lasts 3 months, i can say i've learned a great deal. Think up an open source project that doesn't fullfill your wishes and build apon it or start your own :)
Oh, and about the project, we're working on an msnclient that doesn't suck in GTK+ (sorry, but kmerlin and ccmsn just don't do what we want :) Everything has been coded from the ground up, we wanted to start clean. Chatting is being rouned up and work resonably, filetransfers are now being tested, after which we'll open up development and officialy make it public.
Bottom line: just try try try, and if that doesn't work start up one with a few friends. The reward in knowledge is far greater than the time that it costs to get involved!
This sig is intentionally left blank
There are some large OSS projects that actively encourage feedback and bugfixes and so on. Even contributing small bits to them or minor bug fixes would show some experience in being able to deal with isolated portions of enormous programs.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
As someone who has hired a large number of software engineers in the last decade, I'd like to give a little perspective on this issue.
It is a very difficult market for engineers. There are far fewer companies than there were 24 months ago and those that remain have cut hiring right back. When I can hire I get flooded with applications, many of which are from people with a lot of relevant experience. A newly minted graduate is going to come up short against someone who has been building commercial software for 5-10 years.
Getting on a successful open source project and showing you can make a real contribution is going to help you stand out from the crowd. Choose your project wisely - if you want to be an operting system engineer then getting on board with one of the core Linux projects will be much more impressive than building yet another Quake level editor, and vice versa. You'll need to have people on the project who can vouch for you and the contributions you have made. The higher the profile the project and reference it provides you the better: having Linus tell me what a great job you did on the kernel extensions you built will help you a lot.
Bear in mind that to really make an impact on a substantive project, whether its commercial or open source, is going to take a while. Spending a week adding a couple of printlns isn't going to cut it.
Be aware that a good commercial software engineer has more than just technical skills. You need to be able to work under pressure, to a deadline and in a team. Just being a great hacker isn't enough. Use your time to demonstrate that you have these skills in addition to your coding abilities. One of the disadvantages of an open source project is that many (not all) of them aren't run with the degree of close teamwork and tight deadlines that are the staple of commercial software development. And of course, the one's that have established teams working on them may be the hardest for a newbie programmer to get into.
Yes, its rather Catch-22, but it takes a while to build up the reputation that will carry you into the better companies, roles and projects.
Sailing over the event horizon
When making hiring decisions, I do not take anything on the resume seriously. I have found there is no relationship between quality of resume and quality of coder/employee. [However it usually must get through resume screeners who dont know anything about programming, so make it look sharp!]
Working on a large free-source project would probably be very good experience. However, working on your own can also push your boundaries. I suggest doing both. Best of all is to get a co-op or internship at a real software company.
In an interview I would ask you specific programming questions which should be simple and obvious for you. If you pass that, I will ask you more difficult obsure questions that will (hopefully) require you to think on your feet. Failure to pass this interview will not get you hired no matter how good your resume looks. If you pass with 'flying colors', you will be hired no matter how skimpy your experience.
The only way to become a good programmer is to write lots of programs so in this respect I suppose writing code for an OpenSource project is just as good as any. From a corporate job marketability perspective it's virtually useless however. Most employers will not know what OpenSource means and will probably think you're some kind of communist code hippie if you try to explain it to them. Best leave it off the resume unless you know the reader will appreciate it. Rather than procrastinate working on another worthless runlevel editor for Joe-Bobs-Great-But-Kinda-Slow-Desktop-Environment, you would be much wiser to make your skills available to a professor writing ulitmately useless code. Right now, students should be worried about grades and diplomas, certs, and boring stuff like that. It all comes down to peices of paper folks. Don't fool yourself into thinking your enthusiasm for writing Free code will help you.
You list a million things you do voluntarily as evidence that you're busier than most people with a 40-hour-a-week job. What makes you think these people don't have things they want to do voluntarily as well? Sports, running, beer, piano lessons, activities, etc. are not limited to college students.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
Part-time work as a waiter is probably more valuable than open-source development credit. Even better would be vounteer work at a homeless shelter, rape-crisis hotline, after-school mentoring program, or similar social work.
While I'm sure there are still a few employers out there looking to exploit a fresh college grad with a completely technocentric mindset, most have learned that it pays to choose a well-rounded individual instead.
Sometimes it's hard to decide what to do and not do with my time, and it seems like the few things I sign up for right away just eat up my time and so I decide not to take on any more activities or start any new projects until 'the schedule clears up' ...at the end of the term! I'm really looking forward to reading the replies to this article once it settles down a bit...
If there's anything people underestimate in software projects it's face2face communication between software developers. It's all fine and nice to send off an email when someone's made a bad checkin, but when your coworker is sitting right beside you, it's pretty tacky.
I found people who can communicate fine over IRC or email are often completely hopeless at expressing even the simplest of messages in person.
For this, you need real-world experience.
If you have NO work (i.e. paying) experience, the human resources department won't care about any Open Source experience. And even if you do have some work experience, HR won't really count Open Source projects as work experience.
Sure you might have some hope for a small tech savvy company, but any large company is controlled by the HR drones and the Open Source projects mean shit to them.
Get used to saying "Want fries with that?".
I'm a soon-to-be CS grad. Working at a bank for an intership. Just wondering how bleak is the job market? I've been told for us entry level (read cheap) workers there is still quite a job market. Thing is I'm starting to believe that there aren't all that many jobs available as I have been looking for job leads without much success (note my job search has been primarily focused on the midwest ie Chicago area). Any thoughts from seasoned professonals or other soon to be grads?
Firstly, as much as I dislike MS, I hardly see how you can blame MS for this mentality (as you see it).
Secondly, very few universities are indebted to MS. Try backing it up with some facts. I'm certain you'll find that any money MS gives them, in any reasonably arguable form (whether that's free/reduced licensing or what have you), is much less than 1% on average.
Thirdly, you are assuming that anything that is not programming for money == "Open Source." Open source is just one sort of "free" ideology and its not an ideology that everyone happens to agree with. For instance, someone may choose to develop code for a non-profit and/or at a reduced salary since they believe that open source is largely a waste of time. i.e., it's not "all" about the money.
Lastly, the attitude that money is unimportant is generally afforded to the few that have the luxary of not working. Try this when you get out of college and keep it up when you're trying to raise a family, just don't complain to others that it's not fair that you're not making enough money to lead a comfortable life.
I have to agree with this article. I'm a three year student at Virginia Tech majoring in Computer Science, and even though I've tell everyone I've take a break due to "finicial" reasons, it's really because the curriculum isn't taking me anywhere. Pretty much all the teach is calculus and C++, and every computer related job in my area (a fairly rural one)has asked for experience in everything EXCEPT calculus and C++. More frequent questions are "How is your database experience?" and "What is your web experience?". Maybe in a large city, being a strict programmer will get you somewhere, but in a rural/suburban area, C++ and intense math are about as useful as underwater basketweaving.
Jesus Saves! And takes half damage (shouldn't the Son of God have improved evasion?)
http://unmaintained.sourceforge.net/
Leave the gun, take the cannoli -- Clemenza, The Godfather
As far as I can tell, most of the people who have made significant contributions to Mozilla, who weren't already a Netscape employee, whose contributions were high quality and who appeared to be a reasonable person has eventually at least been offered a job interview at Netscape, and many of those people are now working there. (It's one big reason why Mozilla doesn't have as many "non-Netscape" contributors as you might expect.)
If you think about it, it's a no-brainer from Netscape's point of view. They get a chance to hire people who are pretty much known quantities, who already know most of the codebase they'll be working with, and who for whatever reason are interested and motivated to work on Mozilla.
Things might change if Mozilla gets flooded with "wannajob" people of course... hasn't happened yet.
You could legitimately argue that open source experience is worth more. IMHO many of the biggest challenges in large-scale software engineering are social. If someone can succeed in the less-structured environment of an open source project, where more depends on inidividual initiative, dilligence and respect for your (unpaid) colleagues, it's an excellent indicator of qualities that are desirable in a "typical" environment but are not guaranteed merely by having performed acceptably in previous jobs.
If I was trying to help a college student ...
...
get a real job. I would suggest
Get some real coding experience, preferably paid, but volunteer if needed. People pay more attention to paid experience. Nothing wrong with open source for experience (its just another form of volunteer work), biggest problem compared to other vol. work suggested below is that it does not have a local presence, but it tends to use more hot skills than some of the local work.
Call local software companies and and if you can have any fixed-bid job that can be done off-site, and do a good job on them, including being done on time.
Volunteer some programming work for the church, or the local youth center, or whatever you prefer -- just make sure it's real programming experience. Do a good job, and have that person vouch for your work. Some volunteer organizations are run by people with lots of solid business contacts.
Join some local programming user-groups to match your interests. There is likely to be Linux, Windows, Java, C, Delphi, etc. groups in your area. Volunteer to help, make presentations, etc. Make contacts with these people.
More generally
Be flexible, if the job involves knocking off some VB screens, do it well. The boss remembers that you did a good job, more than he remembers you did a good job with some VB screens.
Learn more and work harder and faster than the next guy. Listen more than you talk.
Be friendly. Brush you teeth. Use mouthwash if necessary. Take regular showers. Wear clean clothes without holes.
Use common sense.
I was curious as to the number of jobs out there for Windows versus UNIX/Linux. So I did a search in the U.S. for the term "windows", another search for "unix" and a third one for "linux".
My results surprised me, but they were consistent across all the websites. The number of UNIX jobs available were consistently greater than the number of Windows jobs out there. Sometimes it was close, sometimes it wasn't. But UNIX always won. And the number of Linux jobs out there was about 20% of what was available for Windows.
I was surprised, but you can check the results for yourself. Note also that this is not the number of current jobs already filled; just the ones currently being offered.
So if you don't have UNIX or Linux skills, you'd do well to broaden your marketability by aquiring them; and a great way to do this is via help out in Open Source Projects.
DAMNIT! Haven't you seen the movie ANTI-TRUST? This is exactly what they want you to do. DON'T DO IT!
What are we? CONSUMERS!
How about looking at the Sourceforge Help wanted section?
Working on the education side (Engineering) of this discussion, I have something to add.
Students come to me all the time in their senior year telling me that they don't know how to do anything and don't know what they should do for a job.
The reality is that they do know _how_ to do a great many things, but we don't have time practice all of them in the structured environment of a course. There's so much for an engineering student to learn to prepare them for employment. Most employers will take a new student and provide additional training in the specific area that they'll work in and it's our job to make sure that they have a good foundation to add to. (Training has been less common in the computer field the last few years compared to Civil, Mechanical, etc. but my guess is that'll swing around pretty quick here.)
The best thing for students to do is to take the initiative (that's important right there) to use their summers and free time to pursue internships, or participate in projects like open-source ones or maybe volunteer on a public service project.
What we cannot reproduce in an academic environment is the real-world. (We can on a small scale, but not for 2,000-40,000 students...) Students need to understand that the diploma is NOT the whole package, just a typical element of the package.
What if my grades suck and I don't have experience? I'm good with computers... better than most 'A' students. WTF am I going to do? I know, Gas Jockey. meh, *shrug.
If you want an easy place to start where you're likely to find a good job I suggest you pick a web project and offer to maintain the db code of that project especially if you can work with both MySQL and Oracle. Being a DBA might not be the most fun but it seems to pay well and companies seem to always be looking for such help. Having Perl, Python, and PHP are also good languages to make sure you know. Any admin or web programming jobs you take will exercise all three heavily.
Have a web page with your resume and a list of projects you've worked on and examples of your programming. Pick some of your best work.. something of decent size and complexity that's implemented well.. and include it as a tar/gzip file when you submit your resume. Doing so greatly increases responses.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
I actually have always been a geek and programmed heavily before actually getting a job. In fact, I had more programming experience than most people at the first job I worked on.
But that didn't make me more productive. Working on a team in a production environment is very different than just programming on your own. I have always been told to leave Open Source stuff off of my resume. That doesn't mean you can't use it to refine your skills. I learned most of what I know on my own.
Now, by the same token, most college curriculums suck as far as CS is concerned. Realize that if you only rely on college to teach you how to program, your essentially going to an employer without knowing how to program.
I don't want to discourage OS programming, but do not do it with the expectation of having it help you get a better job. Do it because you either believe if in or because you really enjoy it. The last thing the OS community really needs are people who are just looking for resume builders (especially ones with little useful experience). If your really concerned about getting a job, get a co-op or internship.
int func(int a);
func((b += 3, b));
Yeah, our school is on that track. We have business majors with MIS degrees and we have computer science majors. Of course the MIS people were in bed with Microsoft from the beginning. The CS people here, which are typical Slashdot geeks, fight to have UNIX/Java/Oracle as the campus standard, but in the end they too adopted MS Visual J++ (they eventually switched to VisualAge for Windows) and lost the war on the campus web standard (JSP? Sorry, you'll use ASP and you'll like it). Computer Services pushes them to have Windows on every box so they can have control over them, or they get no support. And sorry CS students, our laptops only come with Windows even though you check out more laptops that any other major (with the exception of the MIS kids). But, Macintosh is available for the departments that "need" it like Music and Art.
With OSS code around, it's a fantastic opportunity to *read* lots of other people's code. Writing some HTTP protocol stuff? Take a peek at the Mozilla, Konq, curl etc source for some pretty wildly different ideas at how others have tackled it, and compare it with your own ideas.
Books and professors never seem to teach you about ideas for debug, error handling, build systems, using profiling tools etc. Also, by dipping into lots of projects you can get a feel for what's good and what works for different situations, much quicker than the usual company where you'll tend to stick to the same tools and systems, not to mention a small pool of opinions.
The environment / requirements of your software will no doubt be changing quickly so you need to keep getting wider experience than your job generally gives you.
Speaking of which, Jensen, you'd better get the hell off Slashdot and get on those TPS reports. I want them on my desk by tomorrow, 7 AM.
~~~
Explain to me how 3d software engines can survive as OSS. If Carmack's toy chest were laid open for all the world in minutes instead of months, the people learning from his code would be his competitors, not just his admirers.
id makes a fair chunk of change off of each license of their engines (I believe it's a quarter of a million dollars, though I might be mistaken, plus there's a royalty percentage.) That's two million off of one engine (let's assume they made as much off of Quake III as they would have another licensed title.) Not a bad chunk of change. If they had opened their engine, I doubt they would have made nearly as much.
I think Carmack's done a great job of giving to the community, but to say that he has no need to create proprietary software is insane. No one would license an engine ever again if the best ones were available for free.
That sounds pretty messy.
::Ralph Wiggam voice::
"The ground's squishy!"
whatever you decide to contribute to, dont make the journey into the reward. in other words, dont just set out to gain experience. find something where you can make a quantifiable difference.
it will help your resume to have items like this: "helped implement improvements to the server that doubled simultaneous capacity, while using less RAM and CPU per user"... rather than "worked on various open-source projects".
open source or not, find something that you can improve in such a way that the difference is obvious, and could only have happened because of your superior skillz.
Throw a rock and you could hit an open-source project. Do me a favour though -- throw it hard.
I am not a number! I am a man! And don't you
I know a lot of people that take on interns. Might not be paid experience, but it is work experience and looks good on a resume.
I've had interns use me as references to get jobs plenty of times. Mainly it takes a little effort on the employers part, but several of the companies I work with have similiar programs... It's merely a matter of students contacting us and asking for free training in exchange for helping out.
Keep in mind that there are a lot of small computer companies out there, even now... We've had our incomes cut because it's been hard to sell with the internet crash and then 911. Most of us know what it's like to be at the bottom and are willing to help give experience.
Keep in mind as well, going to work on an OSS project is just as valid to most of the computer programming firms I know. It probably won't help getting you a job at Big Blue, ATT or any other fortune 500 company, however most software companies are not that big and while a cvs/resume gets you a chance to be heard, pulling out a software package that you helped to produce can blow anything else away.
Lando
/* TODO: Spawn child process, interest child in technology, have child write a new sig */
If I were an employer, I'd certainly look for people that know how to set up a CVS Repository and set up a mailing list. Jobs aren't all about writing de coolest MMORPG, a lot of time is spent filling out insurance forms, and finding how an organization works.
I just don't think the real world is much like college. There's no dropping the real-world when you're not sure you'll pass. You jump in and hopefully you can swim. Doing things you don't know how to do simply because you need to know how to do them is THE BEST WAY to get experience. In that light, it doesn't make much sense to say it's too hard to do something.
There a tons and tons and tons of popular Open Source applications that need work. I don't think that anyone needs to reinvent the wheel or discover the next "killer app". Just a little poking around should yield many possibilities.
If I was to start looking I would find "old" KDE apps and port them to KDE2. I am tired of my old apps not working with KDE2.
My $0.02 for whatever it is worth.
I'm 13 years old and am involved in the Mozilla project and somewhat in the parrot (parrotcode.org) project as well. If you don't believe me, do a google search on my name (Zach Lipton)... I got involved with Mozilla two years ago and as they say "On the internet, no-one knows you are a dog."
Mozilla has had some exiciting work done by students (including one high school student who is 15 years old who interned at Netscape last summer) and http://www.mozilla.org/school shows that open-source as an assignment really does work.
Instead of wasting time with small example programs, simply getting involved with a project and keeping a record of what you do may be one of the best ways to really learn about software development. I am the Quality Assurence Contact for 3 components and the Owner for 2 in mozilla.org and I am able to communicate with other developers around the globe on irc.
So come on in and join the pool, many opensource projects are standing by for your patches!
go ahead and mod this down for bitching
I know the original comment didn't intend to ask, "We are lazy, what can we do that is easy but looks good?" But this is something I run into SOOOOO often, it's crazy. I have many hobbies. I take 3D photos. I render scenes in POV-Ray. I build robots and various other gadgets, etc etc. And you know what the first question is that I hear, whenever I show these to people? They say, "COOL!!" Followed by, "What class is this for?" To which I reply.. "Umm... it's... for fun." Seems to be a concept few people understand. (Although lately I've resorted to saying, "It's for the Robotics Club", which seems to make it all "normal" again in most peoples' eyes. They no longer question the fact that I'm doing work because I want to, because I enjoy it immensely. Good thing I never mention that I founded the club. They'd never understand that.)
Again, no disrespect meant to anybody. I just find it a bit odd that here I am, a Junior in college, and any time I do anything fun (or hard), it's immediately assumed that I'm doing it for credit. How about finding something you love to do, and WORKING YOUR BUTT OFF ON IT, and putting THAT on your resume? (Says the guy who'll probably NEVER find a career.. ;)
The streets shall flow with the blood of the Guberminky.
I'm in college taking a full load and I'm the administrator of a project on sourceforge. Yeah it's hard but if you don't love coding enough to get involved in a project then you need to switch majors
"Can't sleep. Clowns will eat me"
I am about to graduate soon. I had an intership, a job, and side work that has given me experience in computer science. Myself I a math major with a cs minor but I know I will have no problem finding jobs out there (because I already have one). I known people who got jobs because of a website they developed. You can think of OpenSource project like a profilio. Also there are plently of small businesses who need someone to do some type of programming work for them. You can either do some pro bono work for them or charge them. There are plenty of chooses out there for you to show you got the stuff you just have to look for them.
Well, I'm a CS student at Virginia Tech as well, currently in my second year, so I know what you're talking about in reference to the math intensive curriculum they give here, but I disagree. A good math basis is extremely important for anyone planning on going anywhere in with Computer Science. What exactly does math teach you? It's not as much the nitty gritty calculus stuff that's important as it is the skills you learn from doing math - being able to analyze problems, problem solving, and the most important skill a CS person can have, thinking logically. It's skills like those that make you a good programmer.
In terms of them teaching C++, you're going to learn C++ at first at most schools you go to, and after you learn C++ and the basics of programming, you can use those skills to pick up new languages quite easily. If you really do have an interest in doing well in CS, put some outside effort into it, do some pet projects in other languages.
And also, I'd say Virginia Tech has one of the best CS programs in the nation, so if you aren't getting anything out of your classes there, you might want to rethink your choice of majors.
Yes i believe OSS can be used to help educate in the mere areas of programming alone. Most OSS projects already have a design and simply need implementation (the dirty) work. My second year at RIT had me thrown into a class known as SE-361, software engineering. 20% of the class was code, if that. We focused primarly on the actual life line of a piece of software that we create from the ground up. Starting with analysis design to actual design to implementation to the presentation of the product ( with testing being weaved in an out of every step of the way ). We would weigh risks, analyze and re-analyze every decision we made. To me this class was the first step in making me valuable to the working world. No longer looked at as 'someone who knows code' but as someone who has a better idea of how much time each step of the software process takes (thus helping a company develop a budget and time frame for when a product will be ready for release) These are the things that will be more valuable to you in the long run, the coding skills just come along for the fun. I have yet to really get my hands dirty in any OSS devlopment, maybe i should start... but from these threads it seems more roughneck coding than it does organized maturing of a software system.
-jricci.
I find that being good-looking and personable helps immensely in the interview process. I routinely get picked over people who have more technical knowledge. That first impression is all important. A person will judge whether they want you as part of their company or not by their initial impression of you. That boils down to how you look, and your personality. The technical stuff is secondary.
In the interview, establish rapport with the interviewer, show that you understand the company's unique problems and show that you can pick up the requirements the company will have of you as an employee quickly.
Develop your people skills, and you will never be unemployed. I have rarely left a job interview without a solid offer, and I assure you its not because of my tech skills. Granted, those are necessary, but if you think that is what gets you hired, think again.
I would suggest looking at the Jabber Instant messaging system. It's is a very welcoming crowd, and there is much work to be done. If your into C then you can help with the server. Perl, XML, Java, Python, and whatever else your niche might be, there is a need for it.
Jabber.org
Is this really a problem? Is there really a shortage of jobs out there? I imagine it is hard for goofballs with nothing going for them to find work, but real CS'ers should be able to find work.
If you really love CS, you'll get the experience and knowledge you need. People who love CS (the kind of people I want working for me) do cool stuff because it is cool, not because it looks good on a resume or a Prof assigned it. People who study CS for reasons other than a love of the subject matter just go class and work on thier assignments. They never get under the covers. This lack of depth is apparent to employers. If you love it, employers will respond.
If you have even decent technical chops, but also show enthusiasm for learning about and understanding the business (be it insurance, banking, retail, etc) that your employer is in, goes a *long* way toward getting hired, staying employed, etc...
/. on your Palm Pilot the whole time, you can do very well in the corporate world, even if your coding skills are not up to 'elite' status...
If you are a programmer sitting in a large conference room with the end-users for 3 hours listening to and understanding what it is they really want and need in "Accounting-Wiz 14.7", as well as asking good, pointed questions every so often, and not sitting there reading downloaded
If you want some real experience working on software development, try asking your professors. After all, many of them are working on large software projects and could always use your slave labor. The resources and projects are there. It sounds like you just haven't taken the time to look in your own backyard.
If you really want open-source, then professors are still a good person to ask because they are probably working on open-source software projects funded by the NSF or some other government agency (well, at least those at public institutions probably are, since the private ones may have deals with industry). I've been working on Open Mash, a very large open-source project, for two years now because my faculty advisor is the guy heading that project.
Aren't young minds supposed to come out of college with all these fresh ideas with the potential to revolutionize the world?
Most CS programs are producing drones...no brilliance, no passion.
If I were in position to hire any of these guys, I would rather send the work to India where fierce competition and the course work produce better drones that get the work done for less.
Please think, think, think! Use your brains.
And don't give the excuse that these kids need experience, b'se the best time to get a cool idea is now before your mind gets corrupted by the old way of doing things.
Here is a challenge, make me an IDE I can sing pseudo code to and compile my project while in bed.
Or if I'm out skiing and find a solution to a nagging problem, I want to yank out a cell-phone, talk to my IDE (no typing here) and get the job done right there and then.
Get the idea?
Now can you do that for me please?
And further (to continue my last reply), it's not like I have any free time in my schedule. Because I don't. And it drives me absolutely crazy that I don't have time to do this stuff. I do it on weekends after I get off work at 9pm, in the odd few moments between homework and trying to get enough food, or any other time I can. You can make time for what you love. (Maybe not very much time, but you can make time.) And if you can't make time, perhaps you have bigger problems to deal with than what to get on your resume. (And anyway, I don't know what you're complaining about, it's not like they won't see that internship on your resume.)
The streets shall flow with the blood of the Guberminky.
Actually, if you are getting paid to write software most likely that software is not your IP. It belongs to the company that pays you. This is called work for hire.
Don't believe me? Try take the source with you to the next job.
...richie - It is a good day to code.
did I?
Look for the last 3 years.
I'm sure they are to busy studying to care. And will be to busy working to enjoy life and family.
And will die a early age from stress related to their job. Their rich spoiled children will be the one's enjoying their dad's money.
Fuck that.
As Chef (from soutpark) says "There is a time and a place for everything, and it's called College"
damn right.
The entire BSD Unix(tm) source code is available /usr/src. This includes
in the FreeBSD distribution and buildable with
a single 'make world' in
all the C libraries, compilers, kernel, utilities,
and even games. BSD makes a great source of
free source code to study---all unified and
complete source for everything, even the installer
which is proprietary closed software with many
*linux distributions.
A Canadian man was having coffee and croissants with butter and jam in a diner when an American man, chewing gum, sat down next to him. The Canadian ignored the American, who, nevertheless, started up a conversation.
The American snapped his gum and said, "You Canadian folk eat the whole bread?"
The Canadian frowned, annoyed with being bothered during his breakfast, and replied, "Of course."
The American blew a huge bubble. "We don't. In the States, we only eat what's inside. The crusts we collect in a container, recycle them, transform them into croissants and sell them to Canada." The American had a smirk on his face.
The Canadian listened in silence.
The American persisted. "D'ya eat jelly with the bread?"
Sighing, the Canadian replied, "Of course."
Cracking his gum between his teeth, the American said, "We don't. In the States, we eat fresh fruit for breakfast, then we put all the peels, seeds, and leftovers in containers, recycle them, transform them into jam and sell it to Canada."
The Canadian then asked, "Do you have sex in the States?"
The American smiled and said, "Why of course we do."
The Canadian leaned closer to him and asked, "And what do you do with the condoms once you've used them?"
"We throw them away, of course."
Now it was the Canadian's turn to smile. "We don't. In Canada, we put them in a container, recycle them, melt them down into chewing gum and sell them to the United States."
ICQ# : 30269588
"I used to be an idealist, but I got mugged by reality."
Just an observation. If college is good, why do
people need to stress that fact over and over?
1. Reformat the open source code to suit your indenting, spacing and bracket preference and submit your changes as a patch. The Linux kernel has all sorts of poorly indented code - start by reindenting the IDE disk driver. Your peers will value your initiative.
2. Make suggestions to the team about why they didn't do this or that like that other project that's way better. People will admire your candor and insight.
3. Delegate! Delegate Delegate! Why code yourself when others can do it for you? This will help you gain valuable management skills for a future job.
...for one, stop reading and posting silly questions to Slashdot, and just subscribe to any one of the mailing lists of the many open source projects around. Pick something that sounds interesting. Or find a pyschologist if you don't know what is interesting to you. Sheesh.
It's 10 PM. Do you know if you're un-American?
As I approached completion of my undergraduate degree, I was lucky enough to get a graduate student level internship at NASA. While I was there, I learned that I could make important contributions by applying the theory I had learned in school; essentially doing graduate level research while still an undergraduate. Speculating that there were others out there like me, I came up with the idea that we could come together to form a online research society. The society would differ from the open source community in that it would be based around a process. People would submit proposals, contributors would then offer resources for implementing the proposal, and the project would start when it had enough resources. The only constraints on the project proposal would be that it describes its goals, the process it will use to acheive these goals, and that it would have a deadline. The society would track proposal status and require a postmortem at the end of the project duration. This system is somewhat similar to the (failed) commercial ventures CoSource and SourceXchange, but would be not-for-profit.
While I understand that such a system is hardly any kind of substitute for a "real" job, the research would be public, and citation of such material would be valid resume fodder. Of course, you could be lazy like me and look for work in your school. What started my resume was not the internship at NASA, but work I did for a professor, namely C++/Win32 application development at $6/hr!
Save the Wild Thoughts and Ideas! -wildideas.org
-smirk
P.S. I just checked the link to find it didn't work anymore...then I found out that I had let my name registration lapse! If the above link doesn't work, wait for the DNS change to propigate. Thx.is all we are good at in Canada - but we sure kicked your sorry asses.
here's a tissue for your pathetic US crybaby women's team.
HA!
Most non-profit agencies have a need for help in this area. Most are on a tight budget which is gettng tighter this year. The expereiecnce you will get is working on a team, meeting deadlines, and working with people who have minimal experience in IT (forcing you to translate what you know in ordinary people language.) The project maybe small or large, maybe sysad, maybe documenting what they have and fine tuning it. In the end you get great experience, grateful people, and great references,
One's a dog house where just about every piece can stand on its own, the other is a 300-meter-tall skyscraper with massive interdependencies where a single fuck up can break everything.
And I doubt New York is planning on hiring the World's Best Dog House Builder to replace the WTC...
And it's a big negative if you haven't.
I don't want any wet-behind-the-ears tit-sucking toddler who has to learn to write maintainable code on my watch.
I'd ignore the applicant with the MCSE - like he's not there.
That's a difference :-)
At my university, we started a class called "Open Source Software Development" this spring. In it, we are actively working on an open source project, and are learning about the methodologies and philosophies that go along with this development model. On the practical side, we are also learning to use some of the most common development tools (SourceForge, CVS, Lists...). The class is student led with a professor overseeing the whole thing. So far it has been going really well. We are three weeks into the semester, and the students are already contributing quite a bit to the project. Looks like it's going to be a winner!
Luke
That being said, it is useful to have a background in Calculus, multiple programming languages, etc. Learning these things helps you more quickly absorb other things later, and being a quick study is really important. I program sometimes, and I do use Calculus for some of my work.
And yes, I think that unpaid experience with open source projects will help someone gain a job in developing software. I would certainly consider it as evidence of someone who was willing to go an extra step, and I could even look at their contributions to consider how well that person created code, interacted with others, and so on. But there are many factors, in particular, it'd be better if the open source project was related to the work that the person was applying for. And yes, there are open source software jobs!
- David A. Wheeler (see my Secure Programming HOWTO)
LinuxBox:~$ fortune -m Kerr
%% (fortunes)
Kerr's Three Rules for a Successful College:
Have plenty of football for the alumni, sex for the students, and parking for the faculty.
LinuxBox:~$
I'm still waiting in line for this promised sex...
What does Open Source have to do with College? Not a God damn thing.
First, let me qualify my post:
* I regularly evaluate candidates for employment in a disciplined software development environment.
* I fully support Open Source Software.
That being said, the open source code that I have reviewed has been of low quality in the areas that I look for in evaluating candidates, including:
* strong OO principles
* rigorous design
* excellent documentation
The few open source projects that I have tried to contribute to (freenet being one) actually scoffed at these points, claiming them to be the stuff of over-educated highbrows, stuffed-shirt engineer etc.
If that is the culture of open source software, then so be it. However, in the world of commercial software development, these are very real, very important requirements. The best hacker is useless if he creates an unmaintainable system.
The point is that, from my experience, OSS projects and commercial development are two very different environments (granted, many commercially-developed codebases are poorly engineered, hackfully constructed and are devoid of documentation). OSS projects will get you acclimated to integrated your work with that of other developers', but may also indoctrinate you in an unrealistic development environment.
In other words, it produces a lot of cowboys. Don't expect your bazaar approach to be successful in the cathedral.
www.equinox3d.com
:) ).
It's a pretty decent sized project (~250000 lines of C code and growing rapidly).
Experience with:
-3D programming (modeling, rendering animation)
-GUI design/programming
-large system core design
-API design.
-or even 3D artwork
would be very useful.
If it ever becomes a commercial product, I'll let contributors in on the profit (promise, boyscout's honor
From there I'd suggest doing what everyone else is suggesting...goto sourceforge, find something of interest and go for it.
A couple of key points you should keep in mind first though.
- Learn how to work off/with IRC! This is very important b/c *almost* every project uses IRC as a key point of communication...this is where you'll meet the developers of said project and they may "task" you to do something.
- Be relaxed! I got in there and started throwing around the computer science terminology I was learning from class. Turns out I was annoying some of the developers on the project. They thought I was taking my work (well, their work really) too seriously. Some people just do this stuff for fun. Keep that in mind.
- Email one of the developers! Find someone within the project that is working on something that maybe your strong point or interest area. Make sure to be up front with them about your "newbie-ness".
That about covers it for now - just remember: sourceforge, freshmeat, and open projects are good starting points - I'm sure people will add to this thread if it's interesting enough. I've recently delved into open source work and it's been really enjoyable.In my experience (as a college grad and TA) is that you don't really become a Software Engineer until you spend a year or two in the Software Industry.
Too big to fail? Does that make me to small to succeed?
" but it'd be one heckuva commute"
It ain't 4-5 hours; you can make it from DC to NC in 4-5 hours. I've done it in about 2 (the original poster was exaggerating), but the point is that VT is in a little no-where burg. Its fun there, but its a college town.
If he wants to get a job, he's going to have to move either north or south. He's a whiner by saying "well you have to go to the big city..."
Well, yeah. You have to do a lot of things to get ahead in life. The whining about calculus is just that...whining. He needs to buckle down and study and stop pretending that a 20 year old is smart enough to decide what should and shouldn't be in the CS curiculum.
While I personally take note of programming done outside of school, or on the side in open source projects as an interest... I don't count "3 years contributing / maintaining some open source package" as 3 years of expierience. It does put you ahead of the pack if you're equal in all other respects, though. It also lets me check the quality of your work. This is always a good thing!
I know a few lead engineers in our building figure candidates have 1 year "practicle experience" for every 3 or 4 spent playng around as a hobbyist or in their own time after school / work.
i don't know how you can say this which such a fine counter example, the KDE team work beautifully together, that's the kind of action you should be getting in to.
Isn't it ironical that students will help develop projects which compete with businesses they want to make a living from?
:)
(If the projects were small utilites that don't compete, the experience on small projects wouldn't matter much anyway.)
As someone pointed out, the only way to "earn" from OSS is in an indirect way, that is consulting, etc. But two points to be noted:
1. Why give your product for free (open) while charging for consultation? Aren't they conflicting ideals?
2. If your product requires too much consultation, it's probably time to redesign it
(All said and done, I have myself contributed a bit to OSS, and use its products extensively. But somewhere I feel something is wrong)
I started last October working after I got my master's degree in CS.
The only thing really learned during this study, is to learn quickly new programming languages, development methods, etc... No real substantial development experience. (all the team development we had, was pair programming!)
While the company I started working for has also some difficult times (yes, they also had sent home several people), they still hired me based on the ability to be useful for a project in a short period without having any experience in the project (field/programming languages/SE lifecycle).
I think it depends on the type of company you're applying, but there are several companies which find it very important to have flexible employees that can aquire new skills fastly and do not specially have to be specialists in the field.
Daniel.
- For every winner, there are dozens of losers. Odds are you're one of them -
"However, starting their own project is a hard and time-consuming task."
Another case of how i can i get something for nothing. Classic open source ideal.
technical system design from functional system design. Of course now all the OSS crowd will ask what the word "design" means :-)
We do need your help for the KDE Basic Project. The final goal is to create a kind of VB-replacement. KBasic is 0.8 and the milestone is to support Qbasic - language. Programmers that are interested in language design, compiler and this stuff... The project now lacks of developers, but it is of stretegic importance for the KDE Desktop.
www.kbasic.org
Being apart of the Clarkson Open Source Institute can earn you actual credit hours, we have projects that we do for the community and for the school. Linux training and tutorial sessions that provide newbies with a jumpstart into running linux. We also have several software projects underway that will help the campus and Open Source community at large. We provide a CVS server to the campus with tutorials on how to properly use CVS, as well as a central meeting place for recruiters looking for linux talent and others interested in linux in general.
The students here are not doing any of this for money, rather just fun and experience, I have a great time hanging out with the guys programming into the wee hours of the night. You're more than welcome to check out our webpage that explains a little about COSI (Clarkson Open Source Institute)
I think the idea of harnessing students to help out with OSS projects is a great idea. Now a lot of people on this thread have argued that OSS projects may be unsuitable to student involvement for various reasons. I would argue that while that may be true, the project leads running OSS projects should do what it takes to get students involved.
If you get a bunch of students working on OSS in school, there's a decent chance a few will stay with OSS after they graduate. This is the same concept used by industry to justify summer student employment programmes. And it works. You want to attract top talent to your organization whether you're for profit or not. That should extend to OSS. Why not compete to get the best minds working on your project in the future?
Now that being said, it does require some effort. Having hired summer interns in the past (I run a small IT dept), I am aware that you can't just expect them to be productive when they show up. It requires extra planning and patience. You have to take time to explain how things work in your organization, how they can help and what they need to do. But invariably, this patience is rewarded once they get on their feet and start being productive. Typically these students do the work nobody else wants to do, but having been one myself at one point, I can attest to the enthusiasm with which this work is met. As a student you are starved for real-world work, and working for any organization that isn't school seems exciting.
So I urge project leads to seriously think about how they can encourage students to join their projects.
Because in order for a software project to have any effect it has to be judged by other people interested in open source software. These people are also the same ones you compete with to get jobs and are usually more intimidated than impressed.
Instead of writing free software to gain experience you should use open source software to interact with other programmers who can then get you leads. Most open source projects are created for social value not for software production.
sorry, no.
One thing I always love about "Ask Slashdot" is that people ask questions who seem to have already made up their mind about the answer. This questioner is no different. A more useful question would have been: I'm a CS undergrad and I'm getting ready to graduate. What weapons do I need in the interview process to land me a job given the current economy? See how that question doesn't presuppose an answer?
I'll answer the question you should have asked, rather than the one you did ask. So, what is important for the job-seeking CS undergrad these days? The first thing would be to find a company that is actually still hiring undergrads. Don't let the fact that some company XYZ was at your college's job fair imply that they are looking to hire you. When I went back to my alma mater in October to assist with the recruiting effort, there were several companies at the job fair who were there basically to save face. Many weren't hiring and were simply collecting resumes which I can only assume went straight to the nearest recycling bin. You're wasting your time pursuing a company like this. If they don't have the budget to hire people, then it doesn't matter how intelligent or skilled you are, you won't be hired there. That said, there are still some companies that are hiring. The key difference is that now they are looking for the absolute cream of the crop. This is opposed to just a few years ago, when software companies were hiring anyone who was remotely qualified.
So what makes you the cream of the crop? Obviously, intelligence and raw ability are very important. If you have shitty grades, you might as well start looking for a job in another field; however, your intellect alone is not going to get you a job.
Experience is also very important. You touched on this with your original question, but I think that you're looking in the wrong place to gain experience. While you can certainly argue that OSS experience is better than no experience, I would say that working on an OSS project doesn't really give you the kind of experience that commercial software firms are looking for. Hiring managers want to see that you've worked in a close knit, team setting; they want to see that you can communicate effectively with your teammates (in both oral and written media); they want to see that you have solid design skills. Basically, they want to see if you have a structured approach to designing, writing, documenting and testing software. In contrast, OSS projects seem to take a more freeform approach which is orthogonal to how commercial firms do business. There are exceptions to be sure, but I think that by and large the majority of OSS projects aren't going to provide you the right kind of experience. A better approach would be to secure an internship or co-op position. Not only do you get some experience in the "cathedral", but you also get your foot in the door for when you do graduate.
Something else to consider is your prospective employer's attitude towards the OSS movement. Some companies are outwardly embracing OSS because they see the business climate as heading that way - basically, an "if you can't beat'em, join'em" attitude. Even if the company is outwardly a supporter of OSS, the individual hiring managers may not be. My former manager was very skittish about OSS, despite the fact that IBM is embracing it with more or less open arms. Here, you have to be able to get a read on the person who is going to be responsible to making you the actual job offer. Feel them out first before you launch into the OSS experience you have.
A passion for the technology is also important. Are you really excited about the field, or did you just pick CS because the monetary prospects looked good at the time? People who are really into technology wear that enthusiasm on their sleeves. It really comes through in an interview, and can make all the difference between otherwise equally qualified applicants. Find some area that you are really excited about an concentrate on it. Have some demos to show in the interview. Interviewers love to have something to back up the resume, and a portfolio CD is a great way to do that.
When I graduated nearly ten years ago from a respected engineering school there were three recruiters on campus for over 100 CS grads. Most of us didn't even get to see an interviewer, much less get a shot at the job.
We didn't waste time looking for some neato project to keep us busy so we could try to con someone into thinking we had experience. We went to work for the government. We did real work for much less pay than we might have found in the corporate sector.
And in the end, after two years of that, guess what! We had two years of experience when the market turned around! And we went to work in the corporate world ahead of the guys just out of school and ahead of the guys hacking in their basements on BBS and lame ass game software while working at the grocery or building decks for old folks.
The market doesn't owe you anything just because you now know what made people rich five years ago. Do your time and pay the dues. The smoke and mirrors that this idea presents is akin to that which made the dot coms go bust.
- Sig this!
That's pretty funny.
There is nothing wrong with honing your skills or getting some experience with doing some open source work. Its not the route I took (I did a Co-Op) but how could it hurt. Find a project that interest you at Sourceforge or wherever and get to it! Sometimes employers ask for examples of past work and those types of projects wouldn't be bad to show. Plus it shows some initiative on your part. I hope you're not looking for someone to say that you'll get a job or more salary because of it though, no one can predict that. Either way, it never hurts to learn.
My second suggestion is to NOT ask slashdotters!
With the obvious exception of those out there who generally want to give good advice or help someone out here... the rest of the posters are either smart asses, off topic, or unconstructively critical. Instead of ANSWERING 'how', we like to ASK 'why the hell'.
In my experience, recruiter's and HR people exhuberently overlook this as something that count or matter.
It sounds like you were looking for a job in the middle of the internet/dot-com boom back when mosaic or netscape where king. Things have gotten a little more difficult for new graduates of late. So I don't know why the fact that you got a good job out of college 3 or 4 years ago has anything to do with the current situation...
When interviewing candidates, I want to see one major project that they've worked on to which my immediate reaction is, "cool." If they want to write games, saying "I worked on Unreal2" is pretty cool. As a student, you probably can't say that. But a final or independent project you worked on that blows me away is going to get you a job where a 4.0 (5.0 for the MIT crowd) average, good letters of recommendation, and knowing 200 digits of PI will still get you dumped out the door if I don't think you have coding experience.
OSS is appealing to some people, and I support open software development in cases where it has a chance of being superior. But if I'm interviewing you, I don't care what your ethical standing is toward OSS-- I care if you worked on something cool and will help make our product cool, too. So if the choice is making a patch to the Linux kernal, a new GIMP filter, or working on something closed-source (or a personal project) but relevant to what you want to do professionally, ignore the OSS/closed distinction. It matters to you, not your employer, and they're the one making the decision.
-m
In a project that everybody is allowed to contribute it's a hard thing to gain faim, almost as hard to start your own project. Put otherwise, how nuch gain you expect to get from a project whose quality is the result of many hands' effort? Probably in a project where the community is very closed and consists of few people, personal contribution can make some sence...
There are fewer jobs, but obviously they are for the people willing to compete for them.
One way of enhancing your chances during the competition is acquiring new skills and experience.
The guy that does has a better chance than the guy that does not.
IANAL but write like a drunk one.
Helping out on the Debian project will provide that sort of experience. Check the website for information about how to join the team and help out.
If i were teaching again at a university, i would run an open-source project as follows.
1. To do an open-source project requires 2 semesters (1 year) of work. There just isn't enough time to do something worthwhile in 1 semester. Therefore, to do a project with me, you'd have to agree (in principal) to sign up for two semesters of independent study.
2. In the first 20% of the project, the student would pick a topic area and write a thorough survey about what is available in that area. To save time, i would make available good surveys from previous students (if any). The survey would also contain a proposal for how to write something new and/or innovative in the domain.
There are many tired over-worked areas in computer science, such as real-time OS kernels, or C compilers, etc. To do a project in one of these tired areas, you'd have to present a really honking great idea in the first week or two of the class in order to be able to work on these dead topics. I would have a set of 10 canned idea areas but would not turn to these until the student had failed twice with their own ideas.
2. In the second 30% of the time, student would write a spec and pull together a development environment, including writing any software or hardware tools or developing ideas for any testing tools needed to complete the task.
3. Last 40-50% of the time is devoted to writing the code.
This is sort of what happened with my B.S. thesis in 1984, and it became a pretty successful open source project (the PC/IP multitasking TCP and SMTP).
This is a very hard thing for a faculty member to support because there is a lot of risk in step (1) that the student fails to find something interesting, and becaue of the need to hand out a grade at the end of the first semester, and allowing for the possibility that the student drops out of school, transfers, gets into a car wreck, hates my guts, or whatever, and gives up.
"Mustfuq, Iran".. HAHAHAHA. Quality trolling, really quality.