The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to students who successfully complete a free and open-source software coding project during the summer. The program is open to university students aged 18 or over. It was first held from May to August 2005. The amount of the stipend depends on the Purchasing power of parity of the country where the student's university is located. Project ideas are listed by host organizations involved in open-source software development, though students can also propose their own project ideas.
Google Summer of Code is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 10 week programming project during their break from school.
Students:
Students contact the mentor organizations they want
to work with and write up a project proposal for the summer. If accepted,
students spend a few weeks integrating with their organizations prior to the
start of coding. Students then have 10 weeks to code, meeting the deadlines
agreed upon with their mentors.
Organizations:
Open source projects apply to be mentor organizations. Once accepted, organizations discuss possible ideas with students and then decide on the proposals
They wish to mentor for the summer. They provide
mentors to help guide each student through the program.
Mentors:
Existing contributors with the organizations can
choose to mentor a student project. Mentors and students work together to
determine appropriate milestones and requirements for the summer. Mentor
interaction is a vital part of the program.
Eligibility Criteria
- You
must be at least 18 years of age when you register.
- You
must currently be a full or part-time student (or have been accepted and
committed to the fall term) at an accredited university as of the date
accepted student proposals are announced.
- You must
be eligible to work in the country you will reside in during the program.
- You
have not already been accepted as a student in GSoC more than once.
- You must reside in a country that is not currently embargoed by the United States.
- See Progarm Rules for more information.
How it works and when
to apply?
Students who are interested in taking part in GSoC,
select the organization they are interested to work with and they get in touch
with them.
Note: The application process
officially starts around March and Google announces organization list most of
the time in February first week. It’s good to start as early as possible.
What skillset or prerequisites require for GSoC?
You require almost no
skills for GSoC, just a lot of enthusiasm and dedication to reach your goal.
Every project requires very different skills, and often, these are things you
learn when you start working on a project rather than learn beforehand. Look
out for projects that interest you first. Some organizations are very
supportive and might entertain candidates with missing skills and help them
gain expertise along with GSoC, and some organizations have a strict no
spoon-feeding policy. Take “appleseed” for example, and they require their
candidates to have a basic knowledge of what they’ll be working on and can work
independently during GSoC. Still, their community is very supportive and ready
to clear doubts.
Apart from all this,
I will recommend you to have some basic knowledge about a version control
system; git is the most popular one. Having experience with git will
decrease the friction and learning about the programming language, and the
technology stack of your dream project will do wonders for you.
At last, don’t forget to check the eligibility criteria of GSoC before you start working on a project. To get more info about the eligibility criteria, check GSoC rules.
We know that you will definitely ask this question
to you if you are a beginner in programming or if you think that GSoC is only
for top programmers because this is a worldwide competition and participating
in it is not easy. First of all, keep in mind that it’s not rocket science if
you really enjoy the complete process and programming, also you don’t need to
be a Computer Science or IT major. Students from all subject areas are
successful GSoC students and we have already discussed the stats where
Non-IITians are also included. So now we would like to ask a few questions for
you…
1. Do you have the knowledge of at least
one programming language like C, C++, Java, Python, Ruby also do you have experience in it at the university level?
2.
Are you familiar with the version
control (How to use Git and Github…)?
1.
Do you know how to contribute to open
source projects?
2.
Are you comfortable with Linux or
Ubuntu?… Sorry to be honest but if you will use windows you will get stuck in
the middle. Lots of development tools and technologies don’t run well on
Windows and almost all of the organizations in GSoC code for Linux systems or
servers.
The above things really matter a lot before you
jump into GSoC. Your GSoC journey will become a little bit easier if your
answer for all the above questions is “Yes”. If it’s no….then don’t
worry you can give some time to yourself learning all the above things.
How can you start into open-source? Why is it
essential for GSoC?
It’s never been easy
to learn to program. But despite several ways to learn how to code, trust me,
the best way to improve your skills and abilities is by contributing
to open-source projects. For those who do not have any idea about
open-source, at the simplest level, open-source is merely a writing code that
other people can freely use, modify, and enhance.
For someone with no open-source experience, one of the best ways to get started is GSoC, irrespective of if you are a GSoC aspirant. First and foremost, you should select a programing language of your choice. Once you choose a programming language, explore for a project that matches along with your interests and passion. GitHub is the most popular platform for open source collaboration;
therefore, you will
probably use it while exploring the world of Open Source. First, you need to
create an account on GitHub and read the guide that helps you get started.
Developers strictly stick to the general and coding practices of their organizations. Therefore, while contributing to an Open Source project, one learns about what a “clean code” is, and how to write quickly readable and maintainable code . The main reasons why a developer opts for contributing to an Open Source project are to get recognition, to improve their programming skills, and to become a part of this vast community.
Done with most of the above things???…Now let’s see the GSoC journey and how to apply ?
Start Your Journey
With GSoC
1. Select Organizations:
The first step starts from selecting an organization to participate. This is an important and confusing decision for students because there is no guarantee that Google will select their organization for GSoC or not. We will talk about this for sure but to select an organization you need to visit on GSoC Organizations page and you can shortlist the organization as per your domain and your skillset. You can filter out the categories as per your choice of project or domain.
Once you shortlist the organization checks out
their open-sourced projects on Github, other resources and what they actually
do. Check if the project is something that suits you or not then prepares a
list of organizations and projects you want to contribute and collaborate with.
Below are some tips while choosing an organization…
- It’s
good to start as early as possible. So try to finish this step preferably
by November-December.
- We
have already mentioned that there is no guarantee that your organization
will be shortlisted by Google so you can choose 2-3 organizations but make
sure that you don’t increase the number else you won’t be able to focus on
multiple projects simultaneously.
- Shortlist
the organizations which have been selected continuously in GSoC for the
past few years. Those organizations have higher chances to get shortlisted
again. You can check out the list of shortlisted organization from
archive page.
Once you select the organization you can connect
(For Example: Amahi) with them, chat with the mentors directly
and understand the project, talk to the past participants, see the projects
that came in past GSoC evaluation and you can check out the codebase of these
organizations. Join the organization channel through Slack/Gitter/IRC.
Introduce yourself there and tell them about yourself, your skillset and let
them know that you want to contribute to their repo. They always welcome
newbies or contributors and they are always ready to help. Stay active in their
channel and ask the relevant questions. Ask about the feature they would like
to see in their project. Understand their expectations and discuss the ideas.
2. Start Contributing:
Once you select the organization and project start contributing to it. This is the most important phase of GSoC. When you newly enter into as a contributor you can start with fixing easy bugs or and writing documentation. Start with small contributions and then move to the major one. So once you spend some time on the project you can move to add new features in the project because you will have some idea about what language, platform or software are used in the organization, how things work around there and will be able to connect the dots. You can also raise some issues if you find something and fix those issues. Take everything step by step but contribute as much as possible. Below are some tips when you start contributing to the projects…
- Contact with the mentors through IRC and subscribe to the developer mailing list. Stay active on channels and get update all the time about the project.
- Read
the guidelines of organization carefully for contribution like how to
raise an issue or how to submit patches.
- Fixing the bug or adding the feature will give you more weight than raising an issue and writing documentation.
- Learn
some skill and technology which is required for contribution, clear your
basic doubts.
- As a newcomer don’t be afraid to make a pull request and don’t be afraid to ask for help. You will get support and help from people out there. Also when you fix your first bug let people know about that in IRC. Your confidence will boost up when you will be appreciated by them and people would start knowing you in the Organization.
If you start contributing to the project in the
month of Nov-Dec then till Feb-March you will see your good contribution chart
on Github and you will find yourself as a confident developer. So keep
contributing by the time the organization list gets announced by Google
(Feb-March month). Once the organization list is out, filter out the projects
they offer and finalize the one you wish to work during your summer break. Now
you need to work with full dedication during your summer break and contribute
to the project you have selected. Your chances to get shortlisted will increase
if you have been already contributing to the organization for some time.
Note: If unfortunately your organization didn’t get selected, start contributing to any other organization and don’t lose hope.
4. Make Your Project Proposal:
You need to send your project proposal as soon as possible and request feedback from the mentors. Your project proposal is complete documentation or a detailed description of your project. Breakdown your proposal in different sections like why you want to work with the project, what would be your contribution during your summer break of 16 weeks. Your complete plan and how would you build the project step by step within that coding period. Think about your proposal carefully and write it giving all the descriptions. Your proposal will play a major role in ensuring your selection. Read the Elements of Quality Proposal
and below are some tips when you make your proposal:
- Keep an elaborated proposal so remember that number of pages/words doesn’t matter. Try to add technical details in your proposal and if you had ever contributed to any other organization or open-source project than do mention in your proposal.
- It
will be great if you get your proposal reviewed by past GSoC students.
(They will tell you the string and weak point in your proposal)
- Mention
the language or framework that you will use, you can include the diagram
if there is any frontend project. Also, include your goals there.
- Your
project timeline should be well-formed so breakdown your plan in weeks.
Mention your task from 1st week to last week.
- Your
proposal is going to be the advertisement in
GSoC so you need to convince your mentor giving reasons that why you are
the right person for the project.
Once you are ready with the proposal, share that
with the community and ask for feedback. Feedback from them will help you to
make your application better and will increase your chances to get shortlisted.
After making improvements submit your final PDF and wait for results.
5. Keep Contributing and Wait For the Result:
You don’t need to sit idle once you submit your
proposal. Keep contributing, it will make a good impression and it will create
an image that you are a serious contributor. Wait for the result from Google
and look back that how much you have learned during your open source
contribution.
How to make a good proposal for GSoC ?
Start as early as possible! The earlier you start working on your proposal, the higher are the chances of getting your proposal selected.
You can take a look
at previous accepted GSoC proposals, get in touch with former GSoCers, and ask
them to share their proposals. That should give you a decent idea of what’s
expected in a good proposal. Make sure to be clear and concise in explaining what’s
in your mind regarding the project. Try using images and flow charts where
necessary. Use a good template (not too decorative, but sober and
straightforward) instead of typing in a simple word document. Discuss your
education, work, and previous open-source contributions. List your skills that
are relevant to the project along with the evidence of your work in that field.
Describe your idea in as much detail as possible, along with a complete
timeline. List your previous work (if any) in the organization you are
targetting. Give the reasons why are you a perfect candidate for that
project.
Always get your draft
verified by someone you know and has a decent grasp over English. Your mentors
might be from English speaking countries or people who do not have English as
their first language. You shouldn’t take the risk of using grammatically
incorrect language here as your sentence might mean something different
altogether. Use simple language. Don’t try to make your proposal flashy by
using complicated words, and try not to be repetitive .
Finally, submit the
draft and ask for suggestions from your mentor. Make sure to discuss your
project with your mentor. Change your proposal according to the opinions of
your mentor.
Benefits of GSoC
You will find yourself a more confident developer
after completing the journey of GSoC. Below are some benefits we would like to
mention:
- You get more exposure contributing to open source projects and you learn a lot about the open-source culture and community. You get the chance to interact with the greatest developers around the world. You learn a lot of technologies, tools, version control and you also build a strong network with good mentors and programmers during this journey.
- The
stipend is huge which is $3000 for Indian students(amount
varies according to country).
Participating in GSoC open a lot of job opportunities for you. The members of your community can refer you somewhere or you can also get the internship opportunity. You can also get the referral for the application in
- Google for an internship or full-time job position opportunity. A lot of people have been contacted by Google and offered internships/jobs.
- Definitely tag of Google or GSoC gives you international credibility and helps everywhere from attending the conferences to boosting up your resume.
0 Comments