I am writing this blog entry for sharing some of my personal opinions about this awesome open source program, Google Summer of Code or simply GSoC. I will address various common questions related to this program i.e., What it is all about? and How to achieve it? I hope you can form a reason of yours to participate in it.
So, let’s start with getting to know more about GSoC. Basically, it is a program funded and organised by Google LLC. Google first asks various open source organisations to apply to their portal. After shortlisting, selected organisations are published on their website. These organisations cover a variaty of areas like mathematics, biology, artificial intelligence, web development and much more. However, software development is at the core of these organisations. Students are then expected to apply to the organisations of their interest. I will be covering more about this part later in this blog entry. Organisations then select some really good applications to work on, the following summers.
So, in short, it’s much more of like match making between students and organisations for the projects in summer. Note that it is not an internship.
Now, let’s see how you can be a successfull GSoC student. I have mentioned some points below, which you can consider to aim for the same,
Selecting the right organisation - This is the most important aspect of getting accepted. You should select the organisation which you find most interesting, and most comfortable to work with. For example, I was interested in mathematics and software development, so I went for
SymPy. I would suggest you to go through
ideas list of some organisations which work in your areas of interest. If you find them interesting and you think that you have the right skill set to form a nice project out of those ideas then you have found your “the right one”. For example, take a look at ideas of list of
SymPy at https://github.com/sympy/sympy/wiki/GSoC-2020-Ideas. You should be able to find similar such pages for other organisations too.
Contribute as much as possible - Now you have found your right one. Let’s start fixing some issues. As we know, bugs are the most friendly enemies of any software. They are there with the code always. Many organisations list their issues/bugs on github issue tracker. You can take a look at that list and pick the ones which you can think you can fix by making a pull request. In addition, not all issues are bugs, some are about adding new features to the software too. For example, issues of
SymPy are available at, https://github.com/sympy/sympy/issues. Something similar is available for other organisations too.
Make a proposal - Now comes the hard part of writing a well organised proposal. I will mention here some of the tips to make a good proposal which may increase your chances of getting accepted. First of all, mention about yourself in your proposal, your programming experience, past internships, if any. Then come to your idea which you want to work on in the summers. May be it can be working on improving a module like making the code more efficient or bug fixes. Describe, in detail, the theory related to that idea so that anyone not working in that field should be able to get something out of it. Providing draft code is a big plus. Mention the details of your plan for the official GSoC timeline. There are usually three phases other than the community bonding period. Write about what you will do in each phase. Mention your weekly goals and be reasonable and practical. Optionally, you can write about your plans for the project after GSoC ends officially.
Don’t forget to discuss your ideas with your potential mentors and community, otherwise it will be like firing a shot in the dark and anything can happen. Follow the application template if your organisation has any. You can take a look at my proposal which is available here.
Interact with the community - Your attitude matters a lot. Be respectful with the members of the community. Follow their code of conduct, and ask your doubts irrespective of the fact that they sound trivial.
Well, that’s all from my side. Best wishes for your GSoC journey. Don’t think much about the results until they are announced. Whether you are accepted or not, just know that you have made a difference even by making a simple comment on one of the issues or PRs. :-)
I have provided some resources which might be helpful for developing your skill set for this program,
- Git tutorials
- Introduction to Computer Science and Programming in Python
- Object Oriented Programming in Python.
A lot more of such resources are available at https://codezonediitj.github.io/resources/
Want to add something? Just make a PR. Bye.