Dated: December 20, 2011
Introduction to Google Summer of Code program and what a student needs to do to apply and get selected in the program. This article is an attempt to create a guide for the program out of the personal experiences I have had with the program.
For those of you who don’t know what GSoC is, it is a program (like an internship and you have to work from home) in which you get to work on a project for another existing open-source project. For example, you may work on a project that is about improving some part of Mozilla Firefox or you may work on something like writing a library for OpenCV or you get to work on a MediaWiki plugin. The projects that get get selected for Google Summer of Code are very very good projects and if you get to work on them, you get to learn a lot. You get to learn about best programming practices, how to work in an open-source community, version controlling, development procedures, etc. You will also be assigned a mentor who will guide you through your project and review your work. GSoC is for 3 months. You can work from anywhere in the world. And, the best part is that you get paid. Last year it was $5000, which is a lot of money.
Apart from all that, you get to know good people in your field and you learn a lot. These people may become your potential employers in the future.
The idea behind GSoC is to get more contributors for open-source projects. So ideally, once you are done with GSoC, it is your responsibility to continue to work on your code and improve it or provide patches for bugs when necessary. Ideally, you should also get involved deeply with the open-source project you will get to work for.
So if you didn’t know about GSoC, find out more and try to get in. There cannot be a better way to get involved in an open-souce project. And hey, you get paid for a good cause! :)
For more details, visit this link.
Getting selected in GSoC is no easy task. It is a long process and in a way, it begins now.
Your marks / grades don’t matter
Yes! It is not an issue for them if you have a back or if you are 9 pointer. You can contribute and be a GSoCer.
Select an organization you want to work for
For example: MediaWiki (the software that powers Wikipedia), OpenCV, Wordpress, Drupal, Mozilla, Fedora, etc. There are more than a hundred organisations that participate. Read further on how to select your organisation.
Get involved with the community. Start contributing now and don’t wait.
Talk to people on IRC channels of that organisation. Don’t forget to read IRC etiquette. And honour them. One suggestion from my side is try to be patient. It mostly pays off. Click here to read some general IRC etiquette. The organisation you want to get involved with might have their own guidelines so don’t forget to check that on their website/wiki.
Join mailing lists. Most of the IRC etiquette apply to mailing lists also. There might be some additional guidelines as well so look for those on your organisation’s website/wiki. Click here to read some general mailing list guidelines.
Their can be numerous ways of contributing to a project — coding, testing, documentation, localization, design, promotion, etc. GSoC is all about programming and contribution by coding will count in your selection. So you should work towards contributing by coding.
- The best way to start contributing as a programmer is start solving bugs that are simple or marked for beginners/novices. Slowly you can move to more difficult problems. Don’t directly dive into something very difficult.
- Almost every project/organisation has a page on their website that talks about how you can contribute to that project. For example, Drupal has this page on their website. These pages carry details to ways of documentation and how you can contribute as a programmer (or as a designer, etc.). Go ahead and read about how you can contribute code, the procedure, steps of contributing, coding standards and practices. You must follow the guidelines strictly.
- When stuck somewhere or don’t know where to start, write to the mailing list or talk to other contributors on the IRC. Tell them that you want to contribute but don’t know where to start and if they can lend a helping hand. Remember: be polite and patient! Generally their websites provide names of people who you can get in touch with on IRC for help. If there isn’t one on their website, then try to get in touch with those who are there on the IRC channel.
After a couple of contributions, you can start talking about Google Summer of Code with people who have been helping you out so far. Tell them you want to participate. What is the best way or if there is any idea your contributor would like you to pitch for? Would they like to mentor you? You may also propose a project idea of your own. Read further on how to select a project idea.
- Decide which the project idea you would like to work on. Try to have some people backing you up for your project idea.
- The official process will begin sometime in March when the participating organisations will be announced on GSoC’s website.
- After that registrations will open when you will have to register yourself. When you register, you will have to prepare a detailed proposal of what you want to do, how do you plan to achieve that, and a proper timeline of events: what milestone you will cover by when.
- Then the voting period will begin. Other contributors from your organisation will vote on all the proposed ideas associated to your organisation. The projects getting highest number of votes get selected. Every organisation has a fixed number of seats. For example in 2011 Drupal had 20 seats while Wordpress had around 10 seats. So out of all the proposed projects for Drupal, top 20 project with highest votes will get selected.
- You will get notified when you get selected. You will have enough time before the project actually starts to get more comfortable in the community and communicate more often with your mentor(s).
Selecting your organization
Selecting an organisation is the most important task as everything depends on that. So read carefully:
- A list of organisations that participated in GSoC 2011 is available here.
- Following are some parameters on the basis of which you may select an organisation for yourself:
Your current skills
- You may select an organisation even if its technical requirements don’t match your current skill set. But for that, you must have a strong reason. For example: interest!
- As discussed above, you should also take into consideration what you are interested in. For example, you might be interested in Graphics (the programming part, don’t confuse with Photoshop please) then you should go for organisations related to graphics. If you are interested in networking, try organisations like NMAP. If you are interested in Web Development, try Drupal, Wordpress, Joomla, MediaWiki, etc.
- If you have strong interest in something and you are determined to do it, then your current skills don’t really matter that much. You will be able to quickly learn and catch up.
Projects/organisations you think are very cool
- This is another very important factor. You must believe that the organisation you are going to choose is COOL and DOES COOL WORK. It is a motivational factor. And that is what drives you to work for that organisation.
- It is really the combination of the above three factors that you should consider. Give importance to all of the factors and decide wisely! It is also an important decision for a long term point of view. Google Summer of Code works towards creating new contributors who get involved with the organisation for a very long term and contribute. If you are applying, you are trying to get involved with that project deeply as well. And in my personal opinion, you must continue to contribute after GSoC as well. Work for a good cause! That means that you are going to work on that project and contribute to it in your free time. Therefore, the project you select must be a project that you really like as you are going to work on that for a long time.
- Start working now! :)
Select a Project Idea for GSoC
The second most important thing is select a project idea to work on. The projects that were selected for GSoC 2011 can be found here.
Ideas proposed by the organisation
Some communities propose ideas of their own and asks aspiring students to apply to work on those ideas. Generally these ideas will already have someone from the community who will be the owner of the idea and will be mentoring for that project.
You may talk to the project idea owners about working on the idea you like the most. Consider your skills. Do your homework before talking to them. Read docs about that project idea on their website. Research. Try to formulate a solution for the proposed project idea. When you talk to people in the community about a particular idea, try to be as prepared as possible. Create documents and host them online somewhere like Google Docs or EtherPad so that the docs can be easily shared with others.
Generally the proposed idea will be available on the website of your organisation. And the page may have a commenting system. Voice your opinions there. Discuss ideas.
Ideas proposed by you
You may also choose to propose an idea for GSoC. If you think that you have a killer idea and you think it might be worth working on, then prepare a nice proposal with all the details of your idea: problem statement, current solutions (if any), your proposed solution, how you plan to execute it, how much time you will take to work on it, work timeline, etc. Document it somewhere — Google Docs, EtherPad, or you may also create something like a wiki page on your organisation’s website (read guidelines before creating wiki pages, etc.). Be professional, format properly, indent properly, add links and images/diagrams where necessary.
You should then go ahead and discuss your idea with other contributors. Listen to them. Discussions really help. Other contributors will help you with making your idea even better. Their suggestions are very very important. Talk to them over IRC so that others can also get involved in the discussion.
Getting Selected for GSoC
- The only way to get selected for GSoC is to prove that you will be able to do your project.
- The only way to prove that you will be able to do your project is that show them your work and code.
- College projects don’t help because 1) they might not be related to your organisation’s field, 2) they are mostly crappy.
- The best way to show that you can work is contributing code before talking to people about your project idea or before applying for an idea proposed by the community.
- More the work you do, better are your chances of getting selected as that is the only way communities can judge your capabilities.
- The project coding period will officially begin sometime in May and you will receive your initial payment (in 2011 it was $500).
- There will be a mid-term evaluation. The date will be published on GSoC’s website. You will have to prove that you have done work until then. Your organisation and your mentor will assess your progress. If they think that you have done good work, you will be passed and you may continue for with your project. You will then get another payment (in 2011 it was $2250). If they think that you have not lived up to their expectations, you will be disqualified from the program and will not be allowed to work further on that project as a GSoC project (however you can continue to work and still contribute but you won’t get paid).
- In August, you will have your final evaluation when you will be required to submit everything. Your work will be assessed again by the organisation and your mentor. If you pass that, you will get your remaining payment, the GSoC t-shirt and the certificate (which is really cool). If you don’t pass that evaluation, you won’t get your final payment, t-shirt and certificate.
- The program ends here.
You can directly reach out to me and I will try to reply as soon as I can. You may choose to post your problems on OSDC’s mailing list. That ways, everyone will benefit.
Best of luck!
Originally published at vaidik.in.