Freshman Guide - Cracking GSoC Wide Open
Freshman Guide - Cracking GSoC Wide Open
Just like the selfie trend caught up in India like a wild fire in no time, there is the new trend in NITH that's
emerging really fast. But the unlike selfie trend, this one comes with a lot of money and a lot of experience (
and potential fame in the programmers' community ). This is the trend of clearing GSoC (Google Summer of
Code). The list of famous personalities on campus most definitely includes all the GSoCers. GSoC is an
internship program that is funded by Google. It gives students a chance to spend their summer ( 3 months or
so ) coding and get paid for it a whopping 5500$. Before you underestimate that figure, it equals to 3, 80, 000
Rs. This is equal to 12 PS4s or 2534 nail paints. I think I've got your attention now. It is widely rumored that
the guys who have cleared GSoC ( yes there are no girls! ) are the Coders who have worked day and night for
this. Let us bust this rumor, it is not so. They are just regular guys who had set their priorities straight.
So what is Google Summer of Code hype anyway ? : Open this video and start finding out for yourself!
So what happens ( in real brevity ) is that Google partners with a bunch of open source organizations, whose
list one can see here. You get to work with them directly. There are many names which wouldn't be very
famous for you right now ( in fact most of them ). But slowly and steadily ( a little faster if you get yourself to
talk to previous GSoCers ), you'll find the importance of every organization and the worth of privilege of
working with them ( especially if you are an ECE or CSE student, but don't worry! People from all disciplines
have successfully completed GSoC before! ). So at the end of the GSoC term, you'd have actually contributed
a significant part in that software or technology!
GSoC's coding session starts from May, 25th and ends on August, 25th. During this time all the selected
students will be assigned a mentor ( who'll work remotely from their respective countries ) to guide them
throughout the whole 3 months contribution time. The project that a student has to work on is proposed ( one
can send up to 5 proposals, i.e to 5 different organizations ) by the student himself ( isn't that cool! ). Students
are expected to give atleast 40 hrs a week during GSoC. You receive an initial payment of 500$ on 30th May,
2250$ on 25th June after the mid-term evaluation and 2750$ after the successful completion. The
performance of the student is judged by the mentor.
Apart from giving buckets worth of money, GSoC also gives some things that people only get to appreciate
later.
Contacts - The contacts that you make during GSoC can help you land a high paying job in, for example,
a foreign country, very easily. Also if your organization happens to have mentors that are professors they
might give you a LoR ( Letter of Recommendation ) for your MS ( Masters in Science ) directly! All you'd
need then is a passport, a good GRE score and you'd be set to go!
Experience - It is not a surprise that the GSoCers are the highest placed guys of their branch. The reason
is very simple, a tag of Google on your resume and the valuable real world open source experience that
you get from working on a project in GSoC is more than enough to clear the interviews that are taken at
NITH.
Foreign Trip - No need to envy those guys whose pointers are more than the number of fingers on your
hands and are chilling in US or Germany ( during their internship period, mostly after 3rd year ). If you are
lucky and your organization organizes a post GSoC meet up / conference, then you might just get a tour to
a foreign country.
Pro Tip : Avoid choosing organizations of Nepal for this reason, unless you want to see Mount Everest.
Still want more motivation! If yes here is a picture saying a thousand words.
Chill! Yes that's exactly what you should do. Roam around the campus, get saturated by the natural beauty of
the college. While you are having this awesome time, you should also be getting a good doze of learning and
having good knowledge about a language ( a programming language of course ). The best way to do this is to
read/watch the tutorials and then build something a little challenging using it. Try to finish it ( your self taken
project on the programming language you are learning ) completely and polish it. Also you should have basic
knowledge of git ( git is like google drive or dropbox, but instead of saving files by dragging and
dropping them, git helps you stores different versions of a file ( when you save it ), so that even if you
have to go back to previous version, you could ;). So it would be better to put the project that you are
working on Github ( github is the actual place where those versioned code files live ( just like drive and
dropbox ) ) and commit ( fancy word for making a new version of a code file after making changes ) there. Also
get a good experience of working with some editor ( not notepad ), like Eclipse for Java / C++, Sublime or
Atom for others. Vi, Nano, Emacs etc. if you are really the "Russian Hacker" kind of guy.
Now is the time to choose an organization. This is the part where your decision making should be at its best,
but in the end it also depends on luck. Look for the organizations that were selected to be a part of GSoC last
year ( you'll find this info easily, just google it ). First, filter the organization based on the programming
language you know. Then try to select an organization that has been consistently selected for past 2-3 years
with about 4-5 students. If it has more students then there would be a lot of competition and the results might
be a surprise catering to your selection). If there had been only 1-2 student with that organization before, those
might be the guys that have been working before and might get selected again this time ( so beware of that ).
Another filtering criteria is the community of those organizations. See whose community is more active. To
measure this go through the github page of the organization, visit their forums, etc. The organization in which
issues keep opening or PRs (Pull Request, pull request is when, for example, I've taken someone else's code
and found a fix for a problem, or added a new feature, and I want the original owner(s) of the code / software to
add it to their main code, for others to use the better version of it ) are made or questions are asked/answered
on forums, is generally active. Now there would be about 4-5 organizations left after all this filtering. Now
comes the most important step that you should perform very carefully.
Now that you have finalized the organization it is time to let loose the money-hungry ( read, knowledge hungry
) coder inside you. This might be the most difficult step in the whole process, so have a little patience. Go
through the organization's website, forum and github page. There will most probably be a link on How to
Contribute. Go through that in detail. Build the code ( building the code, for now, is essentially running and
executing it on your computer after downloading that code from github ( where all the code is stored, like
google drive, remember? ) ) of the organization using the instructions that are given. Introduce yourself to the
community on forums or IRC ( Internet Relay Chat, it's where the real programmers chat with their funky nick
names ;)) or any chat room ( for example on gitter ) that they might have. State directly that you are willing to
contribute and are a GSoC 20xx ( xxxx, if this guide happens to be existing for centuries to come ) aspirant.
Ask for their help, in any problems that you face while building the (right now, you haven't actually started
coding yourself yet ) code. This step is important before actually applying for GSoC because, GSoC isn't a
apply and get selected kind of internship. You've got to show that you love open source and you have passion
to contribute to the project that you've ( now ) selected. It's highly unlikely that you'll get selected to contribute
to that particular organization if you aren't a contributor from before ( even a small but persistent way of
contributing counts ). So you're with us till now?
This would be the month of the end of semester(s). You guys will be very busy and hence dedicating most of
your time watching Prison Break, Game of Thrones or Friends, or The Dark Knight's PC ( you'll get to know
what that is sooner or later. For now, hold your horses ). So I would recommend buying this pen and like a
sincere student go through all the seasons of whatever series you'd happen to be watching. On a serious
note, study to the brink of the night and do not flunk, otherwise it would be an overhead to your efforts of
getting selected for GSoC.
Now is the time to get serious. It would be better if you could skip that long walk that you took to Gate 1 to
have Chai. Just start reading through the code. At first you wouldn't understand a thing. But some super wise
people have said that It keeps getting easier with time and perseverance. Don't give up! Try to change
something and what changed / broke in the output. Now as your confidence start growing ( slowly and
steadily, hang in there buddy! ) try to fix something. Something as simple as a spelling mistake in a README
file, would do for your first commit. Also a good commit might be adding documentation to a function as that
also shows that you understood the code. This commit doesn't improve your chances of your selecting much
but at least you would be on your way familiarizing yourself with the process. Now comes the second commit.
Go through the issues of the organization. Select a simple one. Try to reproduce it and find the code that is
responsible for it. Once you have done this, its just a simple matter of fixing it. Don't be afraid to ask the
members of the community if you get stuck anywhere or are not able to find the cause of the issue. You
should at least submit and gotten 2 pull requests merged at this point of time. ( If you are unfamiliar with git,
learn it ). Also find and report any issue that you might find about the software / project to the organization, no
their github page. There are a lot of bugs in every software so finding one is just a matter of testing rigorously.
Push more commits to the organization try to push one every 3 days. Interact a lot with the community. Be
responsive on the comments made on your PR's. Also, Google releases the list of selected students at the
end of February.
Your organization is selected - Congrats! The road is easier for you now. You would see a lot students
entering your organization and the mailing list will be full of introductions. But you are already the Rajnikant
of your organization. Let the kids play among themselves. You just have to keep doing what you were.
Make the number of patches ( fancy word for fixes / adding small features ) so huge that no one could
reject your proposal
Your organization is not selected - Congrats! Now you have the chance to contribute to another
organization ( better for the resume ). DON'T GIVE UP NOW! Select a new organization within a couple of
days and start repeating the steps. You already are quite familiar with the process so you know the path to
follow now, just walk on it.
Google requires you to submit a proposal. Most of the organizations already have a list of ideas that they want
to implement during the summer (called the roadmap). You just have to get DIBS on that. Your proposal
should contain the current implementation of the feature ( if it exists ), description about what you would do
and how you would do that feature enhancement / add that new feature of whatever that you've in mind to
submit in the proposal, introductions about yourself, the time-line that you would follow (your personal
roadmap), number of hours that you would dedicate ( 40/week is the minimum required ), the links of all the
Pull Requests and Issues that you have opened in all the open-source organizations till date. Make this
proposal ASAP and send it to the big guns in your organization to review first (this is the reason why you'd
want to start contributing to open source way before actually submitting proposals to Google. You get
help/advice/suggestions/feedback from the experienced! ). They would propose some modifications, do that
and once they are satisfied submit the final proposal. A simple search would give you many templates for the
articles. But remember your contributions matter a lot than how you write about them ( though presenting
them is important, even if you are not able to write properly, the big guns, your friends in the open source
organization(s) you'd be contributing to, would help a lot )
Also this would be the time for mid-semester. So again, you have to focus all your energy on F.R.I.E.N.D.S. But
don't stop the contributions keep them coming. Even after you have submitted the proposal keep
contributing. Every contribution matters.
Keep contributing! The results are going to be announced so this would be the best time to take that long
pending trip to Kalinjadi. You are going to require it, no matter what type of result comes.
You are selected - Congratulations! Now get ready for the GPL/BPL that your friends are going to do. But
the pain would be less when your body parts are numb ( Remember this advice, even if you don't know
what GPL/BPL means, you soon would, trust me ).
You are not selected - Hard luck! Still you are at-least at the right place to deal with this. Don't give up
buddy, all that you have learned during this will still be very useful and relevant. Try again next year. Look
for some other good internship opportunity now. People will be more than happy to keep a open-source
contributor as a intern. Use your profile to apply for these internships.
Pro Tip -> The following is not a good idea!
Chill! Just relax enjoy the fame that is coming. Convince yourself that you are going to become rich! Make
plans as to what you are going to buy. Start those walks to Gate 1 for that Chai again. Who knows you might
get better reasons to visit ;) . Keep talking to your mentor once a week. Get to know him/her, communicate
with them . Receive your first payment of 500$, though most of it would go into parties. Also you might have
to convince your parents that your are earning this by legal means, since they might be baffled about the
amount their kid is making.
Most of this will be dictated by the mentor you've been assigned. If you got a chill dude/dudie ( mentor ), you
are very lucky as you might have to work like 10 hrs/week only. But this is totally situation dependent.
I think you know what I am going to say here but still Chill! You would already be in the college. You would
have earned the reputation of a "Coder". Now is the time to live up to the reputation that you have earned.
Look for freelancing projects and get involved in those. These give you some cool projects to add to your
resume and also some extra cash to spend on what/who you want.
You could also send these open love letter to every girl in NITH (English Club organizes such types of literature
events).
For the next year remember -> You have done it once, do it again! (Isn't this what she said?)