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.
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
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.
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.
Would you say that if the project were Mozilla? If the project were Gnome? If the project were XFree86?
-- Who is the bigger fool? The fool or the fool who follows him? --
Now, if I wanted to start my own project, come up with some brilliant idea on my own and work on THAT too, I think i'd get even less sleep...
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
An MSCS with 0 years experience is not going to get a whole lot extra $$$.
But it does open doors that wouldn't be open to a normal undergrad. NSA, being one research facility that would be very interested in a grad with a crypto background.
What makes you think that the tech slump is going to end?
I don't think the slump has actually occurred. I believe that a lot of the money that was flowing into the hands of overpaid, underqualified programmers and web hacks is going to be redirected towards truly qualified people who can contribute to the technology push. India and China will gain a lot of the drudge programming jobs, I expect.
So a Master's would be a much better credential in the long run than 2 or 3 years of extra experience without the degree.
(I do not have a Master's)
Calculus is taught to CS students to give them Mathematical "Maturity". It is worth it to learn your math. Someday, all software engineers may have to prove that their code works. How? Through math.
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.
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.
This might get a little offtopic. As an instructor at a professional college in computer programming (hence the AC-ness), I have to say that this is bang on.
There are schools out there that cost $15000-$20000 and promise to make you employable at the end of a year. For most people this is WASTED MONEY. I went to the school before taking an offer to teach (hey, it's a job, no heavy lifting (unless I have to unpack books)), and by day I was digging into VB/ADO/ASP/MS-SQL, and by night I was refining my Linux/C/PHP/PostgreSQL skills. When I was at school, I was one of the most qualified people on that floor including the instructors, and when I got out there the pickings were very slim.
I have a university degree in another discipline, and this is pretty much a golden rule -- if you rely on your curriculum to teach you what you need to know, you won't learn nearly enough, and certainly not enough to keep up with the people who love doing what you're studying for a living.
Wow. Slashdot is pretty full of people with lots of ideals and no skills or experience, but you completely take the cake.
Bold claim. Got any proof? Got any numbers for how many people are actually doing it? How many programmers actually make a living doing open-source programming full time today? How about a year from now, if the economy doesn't pick up? How many total programmers are there in the world? This "phenomenon" you rant about, this wave that's going to overwhelm us all, was barely even statistical noise even at its peak, and that peak has passed.
Been there? Done that? No, didn't think so. Open source or closed, your zealotry would be fatal in business. Those few people who are making money off open source have survived by learning not to piss off the guys with the money with that kind of extremism.
You might actually be right there. "Need" is a funny word. No, the world doesn't need proprietary software or copyright law. But they exist, and people - real people, not just big corps - benefit from them. You haven't provided any compelling argument that society would be better off without them. Heck, far better programmers and writers than you have tried to make such arguments, and they haven't succeeded either.
That, my friend, is called argumentum ad hominem and it's frowned upon as a fallacy. I'm not just nit-picking either; logic and debate are essential skills in the business world, regardless of whether your source is open or closed. There are myriad reasons why people participate in the creation of open source. Lambasting them all as parasites or cowards is as absurd as characterizing all open-source programmers as thieves. There's a grain of truth in each case, but no more.
Even if I were the most ardent advocate of open source - and I've probably done more for open source than you ever will - I'm too much of a pragmatist to back the losing side in any fight. You'll find that such pragmatism is a common trait among real engineers.
Slashdot - News for Herds. Stuff that Splatters.
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.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.
I have a vested interest in proprietary software. It's how I pay for food and stuff.
I make proprietary software for people. They don't want their competition to have the advantage, so they have exclusive rights to the code.
They pay me. I eat.
'nuff said.
Firstly, the original author was referring to the money mentality, not just the growth and dominance of "non-open" software which is quite a different argument indeed.
Secondly, before Bill G. came along, software was really NOT motivated by the ideas that open source espouses today (and likes to claim were espoused at that time). Quite the contrary, most of it was developed by companies for profit to sell or bundle with their own machines. It was about money from the start. The reason it changed from relatively unrestrictive / complimentary / free is because the nature of the industry changed, not because of a real change in mindset. These companies didn't sell the software or protect it as it is today because they simply saw software as a means to sell hardware. In other words, the entire notion of developing software for its own sake really did NOT exist at that time. The nature of the industry allowed for them to do this, or rather, it was more economical to not worry about protecting their intellectual property when the nature of the industry has its own built in protections and when the software was itself relatively trivial.
The point is that you can no more blame (or credit) Bill Gates for this shift than you can for the Moon rising. It was inevitable. As computers became more and more common and accessible and programs became less and less trivial the method for creating, distributing, and protecting the software HAD to change. Bill Gates just had enough wit about him to catch the wave before most others did [My dislike for Bill Gates and Microsoft is for entirely different reasons.]