One stop guide to Google Summer of Code
Probably not the best time to be writing this blog considering Google Summer of Code 2019 / GSoC 2019 is still almost a year away, but yeah this was long overdue.
Getting bombarded with tons of messages and requests on the same topic over and over again, I was about to post a “If I had a penny for …” joke on my social media handles.
But then it struck me, why not write a blog instead containing all the ifs, buts, whys and hows on Google Summer of Code.
So if you are a student who is wondering about getting into Google Summer of Code or someone who has been pestered with questions regarding GSoC, hang on tight, while this is going to be a long one, I can assure you that this is going to helpful.
Let’s first get the basics out of the way :
What is Google Summer of Code?
Simply put, it’s a 16 week long program by Google aimed at promoting Open Source Software development among college and university students.
You work with one of the many Open Source Organizations on a language/framework of your own choice.
In return you get :
1. An excellent experience of working on a real world project
2. A chance to get mentored by some of the best software developers from tech giants like Facebook and Google
3. The Google Summer of Code Tag, that will benefit you immensely with all your job hunts and not to mention a Golden referral to apply for any role at Google!
4. Of course the money and the bragging rights! 😎 💰
What Google Summer of Code is not?
- An Internship!
Google Summer of Code isn’t an internship and it definitely isn’t you interning at Google.
It’s merely Google providing you and the Open Source Organizations a platform to work together.
- A direct entry into Google
While it’s true that you get a referral to apply at any opening in Google, GSoC does not give you a direct pass into Google.
You still have to go through all the interview rounds, it just gives you an extra edge over the competition.
- A trend that you **have to** be a part of
Please, don’t treat GSoC as an IIT JEE entrance exam that you have to crack in order to be successful.
I’ve seen folks achieve wonderful things without even doing GSoC and vice versa, so preparing for and applying into GSoC just because every other Tom, Dick and Harry is doing so it ridiculous.
Students, especially Indian students need to understand the essence and the deeper meaning behind the program and only go for it if it’s something you truly resonate with and are willing to continue long after the program ends and you are not getting paid for it.
When does Google Summer of Code happen?
The application process officially starts sometime around March, but the selected organizations are announced sometime in February first week.
So students can start looking into the selected organizations and shortlist projects which interest them.
How do I get into Google Summer of Code?
Getting into GSoC is not a one step process; rather it’s a multi-step process ranging from February - April and you need to perfect each and every step to maximize your chances.
I’ll outline the major steps below :
1. Start early!
Since GSoC isn’t a one step process as mentioned beforehand, you need to get started as early as possible which means shortlist the organization(s) and project(s) which interest you and start contributing to them as soon as they are announced by google.
However, some students also start way early on in November/December. Instead of waiting for new organizations to be announced, they shortlist few organizations which have been selected continuously for the past few years.
While this is risky, if done properly and carefully, it does give you an edge over others, since the number of contributions and interactions you’ve had with the organization factors in a lot while applying for GSoC under that organization.
P.S. While you have to work with one, to maximize your chances, you can apply for 3 organizations/projects, so select them carefully.
This is probably the most important phase of GSoC.
Once you’ve shortlisted, you have to focus on contributing as much as possible to the organization(s) you’ve selected.
Pro Tip : Don’t select more than 3 organizations, it’ll only diminish your chances since you won’t be able to focus properly on any one of those.
What does a contribution mean?
Anything from fixing/reporting an issue in the project or implementing a new feature to writing documentation for setting up and using the project counts as a contribution.
Granted each of them has a different weight attached with them, for example fixing an issue/adding a new feature is generally contains more weightage than reporting an issue or writing documentation.
But as someone newly exploring to a project, starting off with filing issues and writing documentation is a good idea.
3. A good proposal will help you hit it home
A proposal is a document which you submit to the organization(s) you’ve selected in the above step which outlines a detailed breakdown on how you plan on enhancing/building the project in the 16 week coding period of Google Summer of Code.
Your proposal is going to be the secret key towards ensuring your selection so ensure that you are putting in extra efforts towards making it as detailed and informative as proposal.
P.S. Please do not float the same proposal across multiple projects/organizations, each project should have a separate proposal of its own.
I won’t be outlining the best practices on writing a good proposal as I believe the following blog does a fantastic job at it, so I encourage you to go through it before starting off with your proposal.
Also, here’s my proposal, in case you want to refer to it and get a general sense of how a proposal should be made. ;)
After you’re done with submitting your proposal, don’t sit idle.
You get a window of 1 month from the day when you submit the proposal to the day when the selected students are announced.
Make the best of this opportunity to contribute even more to maximize the chances.
P.S. Interacting with the organization members publicly and giving them your feedback on upcoming features and releases is also a potential contribution that can be done.
You can generally find the contact link for an Organization at it’s page in the GSoC website.
FAQs and Mythbusters!
As with everything that’s tough to achieve, there are some obvious questions and myths surrounding Google Summer of Code and I’ll try by best to bust them here.
- I should be from a CS background to be selected in GSoC
No, not at all. As a matter of fact, a lot of Google Summer of Code participants I know (Garvit Khatri, Arnav Gupta, Umair Khan, Harshit Dwivedi (me), and many more) are from non-CS background.
- My College will help me get selected in GSoC
No, it won’t.
- I should have a kickass profile for organizations to consider me as a student developer
While having a good profile helps, it’s just an icing on the top.
Organizations will judge you based on the the proposal and contributions you have done to their project prior to GSoC.
- I don’t have enough knowledge to apply for GSoC
Honestly speaking, you will never have enough knowledge of any technology in your entire professional career.
Even some of the most experienced developers out there don’t know everything and that’s fine!
Learning is a lifelong process, you can never be truly ready for something.
My rule of thumb is, if you can read and understand (not write) the code written in the project you’re trying to contribute to, you already know enough.
I only started with Android 5 months before I applied for and got selected into Google Summer of Code 2016, so take it from me that you really don’t need to be a pro. :)
And even if you don’t know enough, what’t the worst that can happen? You’ll only get tons on exposure while trying to understand that code.
Doesn’t sound too bad, does it?
- Does the organization want me to work with them?
Of course they do!
That’s the reason they applied to get selected into Google Summer of Code (yes, organizations have to apply to get selected as well)
- I need to understand the entire codebase to be able to contribute to it.
No, you don’t.
It’s practically impossible for you to understand the entire codebase from the get go without spending proper 3–4 months with it.
So instead, break the codebase in modules and start understanding and contributing to a specific module instead.
Also building and using the project personally can help you find out tons of issues and optimizations in the project, so try doing that as well ;)
- Will I will be able to complete the task assigned to me during GSoC?
You should believe in yourself hard enough to ensure yourself that you will be able to, but in case if you aren’t there’s no need to worry as there are many mentors available to help you out with situations exactly like these!
- I have exams in summers, how can I contribute?
Like others who get selected do! ¯\_(ツ)_/¯
- As there are around “X” days more before the organization lists come out, Do you have any suggestions what should I do in that time?
Right now what you can do is select 2–3 organizations who were a part of earlier iterations of GSoC and start looking at their projects and interacting with their members.
Such organizations have a good chance of selection this year as well and if they do get selected, you have a head start.
- How should I interact with the mentors/organizations and what things should I do to impress them, do you have any tips?
You can start with building the project and reporting any bugs that you find (you’ll find a lot of them).
Once you have reported the bug, ask for a mentor’s review on it and in case you are unsure how to solve it; ask for their help.
- How should I read the large code base of their projects, as they are really large?
Start with a single module.
For example, an android project that has 10+ screen has an entry screen. So I’ll start by looking at the code for that screen in particular and then move on to the next screen.
That way, you can easily modularize the huge codebase and understand it eventually.
- Do you have any other piece of advice?
Be consistent, that’s the key.
A lot of people give up because they think that maybe they aren’t cut for GSoC, but don’t do this; even if you don’t get in, you’ll learn a lot of things if you are consistent and persistent :)
Tips for a smoother ride
This section will contain few general tips, gotchas and do’s and don’ts that you can follow to ensure a better chance at getting selected.
- Don’t ping (direct message) everyone in the organization for something you need help with, instead post it in the pubic channel so that you can get a response quickly.
- Search before posting!
- No unhealthy competition
That means, no unfair work, barging in and fixing issues that you have not been assigned to, copying code without proper attribution, etc.
Chances are the org admins will notice you doing this and you won’t get in regardless the number of contributions you have.
- Don’t be a d!ck
I guess this is applicable to all aspects of life 👼
Bonus! Open Source programs other than GSoC
As mentioned beforehand, Google Summer of Code is not the only open source program out there. While it’s the most famous and respected one, but there are tons more that you can still participate and be a part of
- Season of Code, KDE (Everyone, including college grads!)
- Hacktoberfest, DigitalOcean and GitHub (Everyone!)
- CodeHeat, FOSSASIA (Everyone!)
- BOSS, Coding Blocks (College Students only)
- Winter of Security, Mozilla
Well, that’s it!
If you have any questions that were not covered in the blog post above, feel free to comment them down below and I’ll try my best to answer them.
Interested in learning Android Development, Fullstack Web Development using Nodejs or Machine Learning and Deep Learning ? Check out our online courses on https://online.codingblocks.com
Thanks for reading! If you enjoyed this story, please click the 👏 button and share to help others find it! Feel free to leave a comment 💬 below.
Have feedback? Let’s connect on Twitter.