A roadmap on how to prepare for GSoC
I have been asked the following questions a lot of times:-
How to contribute to Open Source Projects?
How to prepare for Google Summer of Code?
So I thought of compiling all the things in one place.
0. Why Google Summer of Code?
Please have a reason behind it. The reason can be very lame too, and there is really no issue in having that reason.
For Eg:- For me, the reason was very lame, as lame as, that “I haven’t got any big brand internship, and GSoC is the only way to have a good brand on my resume”.
Because, the quality of reason does not matters, but how the intensity behind it does matter.
1. Choosing the Organization to contribute to?
Now, this is a difficult and very important question. This is one of the important questions which needs to be pre-decided.
It depends on various factors:-
If you have an interest in some specific field, back from school like in Astronomy, History, etc. then you can go for it. Then search for Organizations that work in that field.
Are you specialized in any one technology like Python, JS, Android, etc. then search for organizations that use this technology as a tool.
Do you personally know someone who has contributed to the organization? (It just gives hope, there is someone whom we can rely on to understand the code, the errors, and the and structure of the organization in a better way) … still, this is not a very important thing.
For me personally, the last 2 points have helped me a lot.
You must also have to consider some other factors like
Size of the Organization
No. of students Participating this year
No. of seats in the last GSoC
If you are starting before February, i.e. the time before the Participating Organizations are not declared yet, then, please filter down 2–3 organizations as some organizations might not participate that particular year. (I am not saying to contribute to 2–3 Organizations parallelly, I am just telling to filter out and remember them.)
Congrats!!! you have cleared one of the major decision-making steps and you are 1 step closer to your goal.
2. Install the software
This is another big hurdle that needs to be cleared and it is the installation process. This process can be sometimes really frustrating.
Have a look at the installation guidelines
Start installing the software
If you face any issues ask on the IRC channel of the Organization (While describing the issue, it would be nice if you elaborate on the issue completely)
Don’t lose patience (remember that it might take some time for other people to reply to your messages)
Always keep the installation process in mind. You can help other developers with any installation issues they come across.
Further, you can always try to optimize the installation process.
Congrats, you have cleared one of Major Hurdle and you are 1 more step closer to your goal.
3. Use the software
Once the software is installed, use it for some time (like I mean for a few days) as a user of the software.
Record all your experiences with the application, and any errors if you come across any.
Now discuss with the current members of the organization about the errors, and possible improvements from your sides. Further, keep in mind that the thing which you are considering as a Bug might be a Feature.
Read the documentation and about the various features … if you feel that something is not explained well, and you can explain it in a better way, you can surely ask to work on it.
Okay … so by now you will have a good idea of how the product is working.
4. Creating new Issues
For all the Bugs you have seen above and discussed with the Organization members, check if someone has already created such an issue.
If it is a bug and no one else has noticed it, you can create a new issue.
While creating a new issue, be as elaborative as possible. Add steps on how to reproduce the bug. Further, if possible, do add images showing the bug.
5. Learn Git and Github and How to make a PR
Now, since you are much aware of the Product and the Bugs, you can start working on fixing the bugs.
For this, you’ll need to know Git and Github. Further, knowledge on how to make a PR would play a crucial role.
Time to advertise something 😃….
If you want to learn how to make a PR have a look at my two blogs below:-
6. Make your 1st PR
Once you have followed all the steps above, i.e. you have the complete knowledge of Git and Github and making a PR … now you can solve a bug and submit a PR in your Organization.
Your 1st PR might take some time to approve, to meet some standards of the organization. As you put up more and more PRs, you would get aware of these things and it would take lesser time in subsequent PRs.
Congrats!!! You have successfully created your first PR!!!
Don’t sit back after this … Its time to double your efforts and send more and more quality PRs !!!
GSoC has a limited number of seats. So, despite contributing heavily, there can be chances that you don’t get selected for GSoC. So, be prepared for that, and get at least an internship somewhere, on which you can rely on later if anything bad happens.