In this blog post, I will try to put down my learnings of getting selected in google summer of code 2020, to give you some idea about how to move forward in the right direction.
So if you don't know about GSoC let me summarize it for you.
- Google selects about 200 open-source organizations every year to be part of GSoC.
- The aim is to promote open-source among students.
- Students are encouraged to contribute and give a proposal to make these projects of these orgs better. Ideas can be their own or pre-selected by the org.
- On successful selection, students work during the summer on their proposed ideas. And receive a stipend of 3000 USD (stipend varies year to year and from country to country)
The logic behind selection in GSoC is straight pretty straight forward -
the more you contribute the org the better are your chances of getting selected in that org.
So before you start contributing to an org.
You need to know how to contribute and in which org to contribute.
Apart from being comfortable in the language/framework of your choice, you need to be a master of git.
And learning git is the easiest part of the journey. The best way to learn git is by getting your hands dirty. There are very good resources on the internet to learn hands-on. I will give a link to a repository http://github.com/nishakm/puns. You can find the guide to use git and best practices here.
Try to add new puns file open Pull requests get your hands dirty.
Now searching for an org is a different game itself.
Choosing an org mostly depends on what tech stack you currently know and how much you are willing to learn. So from my experience, I classify orgs on 2 basis.
- Orgs that uses existing Frameworks like react Django etc. to build and maintain existing applications like AOSSIE, FOSSASIA, SUGAR-LABS, SCORE-LABS etc.
- Hardcore Orgs like which have existing large codebases like Mozilla, Django, TensorFlow, Flutter etc.
Contributing to the former is beginner-friendly as there is a plethora of learning material available online about these frameworks and you can understand their codebase more easily. But the competition is also fierce here and some nepotism is also seen here like students of X college are preferred by the mentors who were/are students of X college. Its something to watch out for. Selection in any org depends on how much you have contributed before gsoc to that org. Students mostly start around november. Also, maintainers are somewhat less active as most of these apps never see the production. But again it's far easier to read the codebase once you learn the used tech stack. And if you have enough merged PR's you will be selected.
The second type of orgs have codebases of 10s of thousands of lines and are written in languages you are most familiar with like C++, JAVA, Kotlin, python. But far too advanced to understand without maintainers help. On the bright side, their maintainers are really active and are very supportive and even solve your silliest doubts but you have to work really hard to map the working of the codebase and solve bugs.
And believe me, even making a local build for development is also challenging 😛.
Do read the documentation......
So the key to getting selected is communicating with the maintainers just select any org and join their gitter, slack or Irc channel or mailing list and just ask them where you get stuck if they don't reply and move on to the next org.