About me
My name is Soham Gupta, I’m a fresher from Sir M Visvesvaraya Institute Of Technology, Bangalore. I’m pursuing my B.E. in Information Science and Engineering. I got introduced to programming when I was in ~9th standard. Back then I had no clue about what Open Source was or how it worked. So if you're curious 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, Cal.com etc are a few examples. Even large multinational companies make use of open source software in one way or another.
Why should you care?
Well, imagine if the person who created a specific programming language had never decided to open source it and to use it you'd have to buy or rent a programming language just to learn how to code. Scary right?
Open source software(OSS) is software with source code that anyone can inspect, modify, and enhance. People prefer using open source software rather than proprietary software for several reasons. It provides control, stability as well and security to the users.
But if all the code is available for free for open source software, shouldn't it be susceptible to malicious threats? Eh, not really! Consider Linux as an example. Linux, overseen and maintained by its creator Linus Torvalds and continually improved by contributors from all over the world, is less prone to software viruses compared to Windows which isn't open sourced.
Why Open-Source? 🚀
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? 🌞
In Google Summer of Code, college students and working professionals are encouraged to contribute to existing open source software. It matches up with free software and technology-related organizations to get mentees familiar with the open source community and help them to put their summer break to good use. As a guide throughout the entire process, the organizations provide mentors who assist you in learning about the community and contributing code.
The program exposes students to real-world software development and employment opportunities related to their academic interests. Participating organizations can identify and bring in new developers. The best part is that more source code is created and released for the benefit of all, all code 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 and benefit — how cool is that!
What GSoC 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 remotely.
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 for 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 can draft up to 3 proposals and get them reviewed by mentoring organisations if there's a Slack/Discord/IRC channel. Google Summer of Code moves in phases after you are accepted into the program.
Refer to this article for upcoming GSoC Timelines: https://developers.google.com/open-source/gsoc/timeline
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 receive a digital certificate of completion and of course the lovely stipend :) at the end of the program.
When to start preparing? ⏰
Right now would be a good time. Your main focus should be towards learning new things and getting involved with the community irrespective of whether you get selected for GSoC or not.
When to start?
Start as early as possible. People usually start early in the Web Development domain as there's a lot of competition present. You can start contributing right now as well. You can find out more about past GSoC projects and organisations on their website.
How to start? 🚀
You should be familiar with what the project that you want to work on actually does.
The next step should be to set up the environment on your local system. If you get stuck somewhere, you should always
Google it yourself > go to the Forums/Discussions page > Org's Slack/Discord/IRC channels
and at the very least join their mailing lists to stay updated with the latest changes on the project/codebase.
For example, you will find it very hard to work with Discord's software if you don’t know what channels and roles are there for. So the first thing to do is to get familiar with the use case of the product either exploring by yourself or taking the help of the community.
Join the mailing list📧
Join the mailing lists, you can find the links to those on the organisation’s page mentioned on the GSoC website. Interact with the community and ask your doubts on the public channel. And more importantly, be polite and patient.
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(one with the "good-first-issue" labels) 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(if possible). You can find templates for proposals on the organization’s website and can find many sample proposals online as well. One such good resource is gsocorganisations.dev! Note that these should be used as a reference to understand the format and not plagiarise.
Your proposal should contain adequate information about yourself, an estimated timeline and the implementation plan that you propose. Have a realistic plan and remember that quality matters more than quantity. Break up your tasks 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?
Keep contributing :)
Thanks everyone!🤍
That is all for this post! Thank you for taking the time to read it - I highly appreciate it. I hope this Blog was helpful and you could take something out of it.
Leave a comment if this article helps you in any way... I'll see you next time!