What is Google Summer of Code? How to prepare for it?
We will talk about Google Summer of Code but before that let’s talk about what Open Source Development is. Yes, it’s very important.
What is open source development?
Open-source software development is the process by which open-source software, or similar software whose source code is publicly available, is developed. These are software products available with its source code under an open-source license to study, change, and improve its design.
I strongly believe that reading few lines of code is worth more than reading 500 pages of a book. When you follow code written by great programmers, you automatically tend to pick up some great practices while coding.
Even before I studied some of the important core computer science subjects in college, I had practical knowledge of version control systems, debuggers, issue trackers, continuous integration tools and this was all because of contributing to open source projects.
There are many advantages to contributing to open source — You can make a great resume that stands out from the crowd. It helps you in building an online presence.
Where to find Open Source software? Any pre-requisite? How to contribute?
These are some of the questions that might be coming in your mind, don’t worry I will answer each of them.
Where to find Open Source software?
Github — The largest open source community in the world. There are millions of open source projects on GitHub. I would suggest making an account on Github before reading further.
Yes, you should be familiar with Git and one Programming Language. I would suggest you take this free course “How to Use Git and GitHub” to get familiar with both Git and Github before you proceed further.
Not to worry if you don’t know any programming language, you just have to learn one. It’s pretty easy. There are a lot of free programming language course available on the Internet. Just select any course from these website (Udacity, Coursera, Free Code Camp) and start learning. Few more can be found here.
Get your skills and abilities listed
First, you have to analyze yourself. You have to figure out what you actually want and what are you comfortable with. For example, you may be an expert in Web Development and want to contribute to a project related to the Web. Or else you may know the basics in Web Development, by contributing you want to get more experienced.
How to contribute?
I am assuming that by now you are familiar with at least one Programming Language, Git, and Github. Now you have to find a project for yourself and start contributing. I have made a list of links that will help you in selecting a project:-
- Up For Grabs
- Embrace Open Source
- Awesome First PR Opportunities
- Github//: amarlearning [You can also contribute to my projects as well]
Note: Every project repository has a
contribution Guideline file present make sure you read it once before you start contributing to that project.
Since you are now familiar with open source development, you can now read about opportunities that one can get with that.
Though there are many internships opportunities available for Open Source Contributors, we will talk about Google Summer of Code.
What is Google Summer of Code?
Google Summer of Code is a program to promote open-source development. It is organized by Google every summer since last decade. It runs for 12 weeks from mid-May to mid-August. Students contribute to open-source repositories and get paid by Google in return. It’s a great way to spend summer vacation.
First, the interested open-source organizations apply. They are shortlisted by Google. In the next phase, interested students will submit a project proposal to the selected organization.The selected students will then code for these organizations and the organization has to mentor the student. In GSoC 2017, around 201 organizations were selected including the big organizations like Mozilla, KDE, etc. The list of organizations selected is announced around mid-February.
You must be at least 18 years of age and must currently be a full or part-time student (or have been accepted for the fall term) at an accredited university as of the student acceptance date. That’s it. No other criteria. , Country, Qualification — no criteria.
This is not a program where you fill up a form and get selected.
Every Organization had an Idea’s Page or a Wiki Page in which they publish the list of possible projects. Some even have a to-do list. You can browse through organizations and check out their projects. If you like any project, you can contact the organization or the mentor itself via the organization’s Mailing List.
You can also come up with your own project, which is even better. Generally, each organization wants the student to show some background in the area of the project (fast learning abilities + keen interest is fine too), and familiarity with tools like version control system (GitHub is the most popular). One has to demonstrate his/her skills which can be achieved by fixing some bugs.
Generally, there will be a list of known bugs/issues in a repository and some of them are really simple to fix. You can even try to find, report and then fix a new bug. You have to install that particular repository on their system, get comfortable with it and understand (at least the basics) what’s going on.
Student application period is from 1st to 3rd week of March. Once the student has demonstrated his/her abilities, they have to write a project proposal. This proposal should outline the project objectives, technical/implementation details, timeline and end deliveries.
You should always ask the concerned mentor to review your proposal before submitting. One student can submit up to 5 project proposals. However, at max only 1 project is assigned to each student.
On an average one has to devote at least 30 to 35 hrs each week during the summer for their GSoC Project.
- In GSoC 2017 2400 USD were given to those who successfully completed their project.
- Learning a lot — Working with large code bases, debugging, optimizing, testing profiling, tuning, fixing bugs, etc. You can learn a lot.
- Work from Home — No office. No Attendance. No reporting. Work from anywhere, anytime.
Some useful links
If anyone wants any kind of help, do let me know. I will help you.
— Stay Hungry Stay Foolish