How to Prepare For GSoC (Google Summer of Code) – A Complete Guide
Do you have any interesting idea to add a feature in the VLC media player, the most popular media player used by millions of users around the world??
Are you new to the open-source contribution or do you take interest in contributing to open source projects??
If you are interested in open-source projects and if your developer’s mind can generate good ideas that make the software more valuable for its users by adding some features then Google Summer of Code is the best platform to showcase your skill.
Google Summer of Code which you can also consider as Oscar of Coding World is the annual global program to promote open source development with the help of students and Open Source Organizations like Apache, Eclipse, Mozilla, GNOME, and many more.
Google matches mentors and programmers from universities to work on important open source projects that create value for its users all over the world. It’s started first in 2005 and it’s a very good opportunity for students to utilize their summer breaks learning and getting involved with open source projects. Google organizes this every year from May to mid of August (nearly about three months of the program) where students work with the organizations and projects of their own choice. They contribute to a wide range of projects like Cloud, Graphics, Programming Languages, Operating Systems, Robotics, Science, Security, Medicine and many more.
How it works and when to apply?
Students who are interested in taking part in GSoC, select the organization they are interested to work with and they get in touch with them. A lot of open-source organizations apply to GSoC and once the shortlisting is done Google announces the name of these organizations. When the organizations are shortlisted, students submit their project proposals to the selected organization. These proposals and ideas are shortlisted by organizations and once it is done they start working together on a proposal and ideas. Students then code for these organizations and get guidance from mentors and work on the project during the summer break meeting the deadlines agreed upon with their mentors.
Statistics reveal that India is really doing very well and becoming more good in GSoC competition. You can check the statistics of Indian student participation on Google Open Source Blog. Below is the list of the most accepted students for GSoC 2018. These lists also include Non-IITians so you don’t need to underestimate your capability if you are not from IIT and if you are ready to work hard in GSoC.
To check the deadlines and program timeline every year for GSoC visit on Timeline page of Google Summer of Code.
Note: The application process officially starts around March and Google announces organization list most of the time in February first week. It’s good to start as early as possible.
- You must be at least 18 years of age when you register.
- You must currently be a full or part-time student (or have been accepted and committed to the fall term) at an accredited university as of the date accepted student proposals are announced.
- You must be eligible to work in the country you will reside in during the program.
- You have not already been accepted as a student in GSoC more than once.
- You must reside in a country that is not currently embargoed by the United States. See Program Rules for more information.
Okay…But How to Start and Am I Good Enough to Participate?
We know that you will definitely ask this question to you if you are a beginner in programming or if you think that GSoC is only for top programmers because this is a worldwide competition and participating in it is not easy. First of all, keep in mind that it’s not rocket science if you really enjoy the complete process and programming, also you don’t need to be a Computer Science or IT major. Students from all subject areas are successful GSoC students and we have already discussed the stats where Non-IITians are also included. So now we would like to ask a few questions for you…
- Do you have the knowledge of at least one programming language like C, C++, Java, Python, Ruby also do you have experience in it at the university level?
- Are you familiar with the version control (How to use Git and Github…)?
- Do you know how to contribute to open source projects?
- Are you comfortable with Linux or Ubuntu?… Sorry to be honest but if you will use windows you will get stuck in the middle. Lots of development tools and technologies don’t run well on Windows and almost all of the organizations in GSoC code for Linux systems or servers.
The above things really matter a lot before you jump into GSoC. Your GSoC journey will become a little bit easier if your answer for all the above questions is “Yes”. If it’s no….then don’t worry you can give some time to yourself learning all the above things.
If you are a beginner then firstly you need to be good in at least one programming language. Once you learned it select a specific domain like android development, web development or whatever you love to pick a specific one and make projects in it. Explore the field and get familiar with version control (Git and Github). Learn how to contribute to open-source projects and explore some projects on Github. Start contributing and get more experience in your domain. Learn to love Linux and get comfortable with it, explore its command and understand the file structure. You can also choose Ubuntu is beginner-friendly, so you also choose it.
One more thing you need to keep in mind that your soft skill is also important in GSoC. You will be interacting with mentors frequently through email, Skype, Slack, Discord, IRC, etc. You will be also preparing documentation, report, and blog posts. You may have to attend conferences or workshops and you will also need help from mentors during your contribution to your project so here your soft skill or communication matters a lot in GSoC. You will be able to understand and respond well to the feedback as well.
Done with most of the above things???… Now let’s see the GSoC journey and how to apply?
Start Your Journey With GSoC
1. Select Organizations:
The first step starts from selecting an organization to participate. This is an important and confusing decision for students because there is no guarantee that Google will select their organization for GSoC or not. We will talk about this for sure but to select an organization you need to visit the GSoC Organizations page and you can shortlist the organization as per your domain and your skillset. You can filter out the categories as per your choice of project or domain.
Once you shortlist the organization checks out their open-sourced projects on Github, other resources, and what they actually do. Check if the project is something that suits you or not then prepares a list of organizations and projects you want to contribute and collaborate with. Below are some tips while choosing an organization…
- It’s good to start as early as possible. So try to finish this step preferably by November-December.
- We have already mentioned that there is no guarantee that your organization will be shortlisted by Google so you can choose 2-3 organizations but make sure that you don’t increase the number else you won’t be able to focus on multiple projects simultaneously.
- Shortlist the organizations which have been selected continuously in GSoC for the past few years. Those organizations have higher chances to get shortlisted again. You can check out the list of the shortlisted organizations from the archive page.
Once you select the organization you can connect (For Example: Amahi) with them, chat with the mentors directly and understand the project, talk to the past participants, see the projects that came in past GSoC evaluation and you can check out the codebase of these organizations. Join the organization channel through Slack/Gitter/IRC. Introduce yourself there and tell them about yourself, your skillset and let them know that you want to contribute to their repo. They always welcome newbies or contributors and they are always ready to help. Stay active in their channel and ask relevant questions. Ask about the feature they would like to see in their project. Understand their expectations and discuss the ideas.
2. Start Contributing:
Once you select the organization and project start contributing to it. This is the most important phase of GSoC. When you newly enter into as a contributor you can start with fixing easy bugs or and writing documentation. Start with small contributions and then move to the major one. So once you spend some time on the project you can move to add new features in the project because you will have some idea about what language, platform, or software are used in the organization, how things work around there, and will be able to connect the dots. You can also raise some issues if you find something and fix those issues. Take everything step by step but contribute as much as possible. Below are some tips when you start contributing to the projects…
- Contact the mentors through IRC and subscribe to the developer mailing list. Stay active on channels and get updates all the time about the project.
- Read the guidelines of organization carefully for contribution like how to raise an issue or how to submit patches.
- Fixing the bug or adding the feature will give you more weight than raising an issue and writing documentation.
- Learn some skill and technology which is required for contribution, clear your basic doubts.
- As a newcomer don’t be afraid to make a pull request and don’t be afraid to ask for help. You will get support and help from people out there. Also when you fix your first bug let people know about that in IRC. Your confidence will boost up when you will be appreciated by them and people would start knowing you in the Organization.
3. Keep Contributing Until the Organizations are Announced:
If you start contributing to the project in the month of Nov-Dec then till Feb-March you will see your good contribution chart on Github and you will find yourself as a confident developer. So keep contributing by the time the organization list gets announced by Google (Feb-March month). Once the organization list is out, filter out the projects they offer and finalize the one you wish to work on during your summer break. Now you need to work with full dedication during your summer break and contribute to the project you have selected. Your chances to get shortlisted will increase if you have been already contributing to the organization for some time.
Note: If unfortunately your organization didn’t get selected, start contributing to any other organization and don’t lose hope.
4. Make Your Project Proposal:
You need to send your project proposal as soon as possible and request feedback from the mentors. Your project proposal is complete documentation or a detailed description of your project. Breakdown your proposal in different sections like why you want to work with the project, what would be your contribution during your summer break of 16 weeks. Your complete plan and how would you build the project step by step within that coding period. Think about your proposal carefully and write it giving all the descriptions. Your proposal will play a major role in ensuring your selection. Read the Elements of Quality Proposal and below are some tips when you make your proposal:
- Keep an elaborated proposal so remember that number of pages/words doesn’t matter. Try to add technical details in your proposal and if you had ever contributed to any other organization or open-source project then do mention them in your proposal.
- It will be great if you get your proposal reviewed by past GSoC students. (They will tell you the strong and weak point in your proposal)
- Mention the language or framework that you will use, you can include the diagram if there is any frontend project. Also, include your goals there.
- Your project timeline should be well-formed so breakdown your plan in weeks. Mention your task from 1st week to last week.
- Your proposal is going to be an advertisement in GSoC so you need to convince your mentor to give reasons that why you are the right person for the project.
Once you are ready with the proposal, share that with the community and ask for feedback. Feedback from them will help you to make your application better and will increase your chances to get shortlisted. After making improvements submit your final PDF and wait for results.
Check out some below proposals and get more ideas about them.
5. Keep Contributing and Wait For the Result:
You don’t need to sit idle once you submit your proposal. Keep contributing, it will make a good impression and it will create an image that you are a serious contributor. Wait for the result from Google and look back that how much you have learned during your open source contribution.
Benefits of GSoC
You will find yourself a more confident developer after completing the journey of GSoC. Below are some benefits we would like to mention:
- You get more exposure contributing to open source projects and you learn a lot about the open-source culture and community. You get the chance to interact with the greatest developers around the world. You learn a lot of technologies, tools, version control and you also build a strong network with good mentors and programmers during this journey.
- The stipend is huge which is $1500 for Indian students(amount varies according to country).
- Participating in GSoC opens a lot of job opportunities for you. The members of your community can refer you somewhere or you can also get the internship opportunity. You can also get a referral for the application in Google for an internship or full-time job position opportunity. A lot of people have been contacted by Google and offered internships/jobs.
- Definitely tag of Google or GSoC gives you international credibility and helps everywhere from attending the conferences to boosting up your resume.
Some Helpful Links For You: