How to Prepare For GSoC (Google Summer of Code) – A Complete Guide
Do you have any interesting ideas to add a feature to 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 September for Medium Size Projects and May to November for Large Size Projects (nearly about three to six months of the program based on the size of the project) 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 Does it Work and When to Apply?
Students who are interested in taking part in GSoC, select the organization they are interested to work with and 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 the GSoC competition. You can check the statistics on Indian student participation on the 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 the organization list most of the time in February’s 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. Working professionals are also allowed to participate in GSoC 2022
- You must be eligible to work in the country you will reside 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 yourself 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 to all the above questions is “Yes”. If it’s no….then don’t worry you can give some time to yourself learn 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 is 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 matter 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 with selecting an organization to participate in. 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 check 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 prepare a list of organizations and projects you want to contribute to 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 evaluations 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, and 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 their 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 as a contributor you can start with fixing easy bugs or writing documentation. Start with small contributions and then move to the major ones. So once you spend some time on the project you can move on to add new features to 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 the organization carefully for contributions 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. Break down your proposal in different sections like why you want to work with the project, and 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 points 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 break down 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 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 the 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 in the world. You learn a lot of technologies, tools, and version control and you also build a strong network with good mentors and programmers during this journey.
- The stipend is huge which is 1500 USD for Medium Size Projects, and 3000 USD for Large Size Projects, for Indian students(the 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: