Sunday, September 16, 2007

Summer of Code: The Big Picture

(Introduction and table of contents)

The idea of Summer of Code is simple. Students choose open source projects they would like to work on and write applications, the open source projects evaluate those applications, the selected students spend their summer working on what they wanted to and Google pays everybody. Everybody wins. The students get experience with application writing and open source development, attention and help with their projects, potentially useful contacts for the future and some money. Organizations get new developers - their lifeblood - and some money. Google gets opportunity to help FOSS developement (FOSS is used a lot in Google), positive publicity and some (very little) recruiting done for themselves.

Note that in the long list of the benefits for students (that means you), money is just one thing, even if it is the first thing you hear about in relation to the program. And in the long run, it's probably the least important benefit. Think of it as a necessary means for Google to win your time away from other potential summer employers. That's it. The really important benefits you get are the skills and contacts, these will serve you well into the future. Funnily, mentioning in your application that you are doing this just for money will surely fail it. And no, I'm not suggesting lying about it – if you do, your application will show it in thousand other ways, with the exactly the same end result. But more on application writing later.

What's more? If you ever wanted to join an OSS project but it seemed daunting and complicated, here is your chance, with added bonus that the project developers will be extra-nice to you. If you have never participated in a successful team OSS project, or any team software project for that matter, this will be a very interesting and useful experience. There is a major difference between coding an application alone and doing a project in a team. So you are going to learn a lot of exciting stuff about having to deal with other developers, how and when to communicate with them, what kind of support infrastructure every project needs and many other things. Again, what you learn is for lifetime.

This concludes the big-picture benefits of SoC for you. The other big-picture thing which you have to be aware of is the time planning. If you are accepted to SoC, do not plan any other full-time commitment for the summer. The project will expect you to commit about full-time worth of effort. This is a perfectly reasonable requirement, since three months of single developer time is not much in the software world. You will need all of this time to create something substantial. But don't get upset – the "working hours" are extremely flexible and you will be able to plan some time for holidays as well.

Next: on choosing an interesting project idea.

No comments: