Google Summer of Code(GSOC)
My name is Pawan Gupta. I’m pursuing my B -Tech in Computer Science and Engineering at GLA University, Mathura, India. I got introduced to programming when I was in 11th standard. Back then I had no clue about what Open Source is or how does it work. So if you are like me or want to learn more about open-source, you’re in for a treat…
Alright, that’s enough about me…
What is Open-Source?
“In real open source, you have the right to control your own destiny.”
— Linus Torvalds
We’ve been using open-source software in one way or another and we might not even realize it. Linux, VLC, Firefox, Android, WordPress, NodeJS, etc are a few examples. Even the large multinational companies make use of open-source software one way or another. Why should you care? Well, imagine that the person who created a specific programming language never had decided to open source it. Imagine if you had to buy or rent a programming language just to learn how to code. Scary right? Yeah…
Open-source software is software with source code that anyone can inspect, modify, and enhance. People prefer using open-source software rather than proprietary software for many reasons. It provides control, stability as well as security to the users.
But if all the code is available for free for open-source software, shouldn’t it be vulnerable to malicious threats? Eh not really. Take Linux for example ;) Linux is far less likely to get a software virus as compared to Windows which isn’t open sourced. Linux is still managed by its creator, Linus Torvalds, and has contributors from all over the world trying to make it better every single day.
Open source is a great way to get real-world software development experience from the comfort of your home. The open-source community is very helpful and encourages new developers to take part in their organizations.
One gains exposure, can test their skills, gain knowledge, and bond with the community to produce quality code that helps people around the world.
Getting started with open source for a developer is easy. Yes, it is. The problem is that most people don’t know where to start and if you’re one of those people, you’ll get your answers in this blog.
What is Google Summer of Code?
Google Summer of Code is a global program that encourages open source development among college students. It matches students up with free software and technology-related organizations to get the students familiar with the open-source community and help them to put their summer break to good use. The organizations provide mentors who act as guides through the entire process, from learning about the community to contributing code.
Accepted students gain exposure to real-world software development and employment opportunities in areas related to their academic pursuits. Participating organizations can identify and bring in new developers. Best of all, more source code is created and released for the use and benefit of all; all code produced as part of the program is released under an open-source license. The fact that you get to write code that people from all over the world can use — how cool is that!
What Google Summer of Code is NOT!
Google Summer of Code is not an internship. You are not a Google employee if you get selected for Google Summer of Code. You are not required to visit any of the headquarters, all the work can be done online.
Also… Google Summer of Code is not like your JEE exam! I see many people taking it as a competitive examination. That’s the exact opposite of open source. Learning not for the sake of learning and exploring new things but for the sake of getting selected into Google Summer of Code. The internet is flooded with questions like “How to crack Google Summer of Code” which is the wrong way to say it. The term you’re looking for is “How to get selected?”.
You don’t have to wait for Google Summer of Code to arrive to make open-source contributions. You can start contributing right now!
How does it work?
After the selected organizations are announced, the student application period begins. The students draft their proposals and get them reviewed by mentoring organizations. Google Summer of Code moves in phases after you are accepted into the program.
Community Bonding Period: This is the first phase and a very crucial one, in which you get to know your community and get familiar with their code base and work style. You set up your development environment and discuss the implementation plan with your mentors of the organization.
Phase 1: This is the initial phase of coding. The work done during this phase is evaluated with Phase 1 evaluation a month into the Google Summer of Code term.
Phase 2: The second phase is evaluated two months into the program coding period. The final phase is your time to complete your project. There will be a final evaluation at the end of the term when you need to submit your final work.
After you successfully pass the Google Summer of Code, you may receive a t-shirt, sticker, and a digital certificate of completion at the end of the program.
When to start preparing?
Right now would be a good time. Your main focus should be on learning new things and getting involved with the community irrespective of whether you get selected for GSoC or not.
How to start?
Start as early as possible. People usually start around December but this doesn’t always have to be the case. You can start contributing right now as well. You can find out more about past GSoC projects and organizations on their website.
Use the product
You should be familiar with what the project that you want to work on actually do. For example, you will find it very hard to work with WhatsApp’s software if you don’t know what blue ticks are there for. So the first thing to do is to get familiar with the use-case of the product.
Join the mailing list
Join the mailing lists, you can find the links to those on the organization’s page mentioned on the GSoC website. Interact with the community and ask your doubts on the public channel. Be patient if they don’t reply instantly. And more importantly, be polite.
Start solving issues
This is a good way to get familiar with the codebase of the project. You can start by solving minor issues mentioned for the project and work your way up. You don’t have to be an expert in the technologies being used in the projects. There might be a learning curve involved but you must have the will to learn and give your best.
Draft your proposal
You should be able to convince your mentors that you’re the right person for the task, and that will reflect in your proposal. Start as early as possible and get it reviewed by the mentors/community members. You can find templates for proposals on the organization’s website and can find many sample proposals online as well. Note that this is just to see the format, don’t plagiarise. Your proposal should contain adequate information about yourself and the implementation plan that you propose. Have a realistic plan, remember that quality matters more than quantity. Break up your task into individual phases and mention those phases in your proposal. Avoid statements like “I’m passionate and hardworking, motivated to the fullest and will do everything right”. Stay technical, if you have made previous contributions to the project then do mention the references to those. Usually, it’s not very beneficial to work with say 5 organizations at a time, stick to one or two projects, and give your best.
Didn’t get selected? No worries!
You don’t have to be a GSoC student to contribute to open-source projects. You can still contribute even if you didn’t get selected. This shows that you actually care about open source and were not there just for GSoC.
What to do after Google Summer of Code?
May the source be with you