After I shared my journey to GSoC, many aspiring students reached out with the same questions: What exactly is open source? What is GSoC? And how can I get started?
This post is for you. It’s the guide I wish I had when I was just starting out.
What is Open Source?
Imagine a chef has a secret recipe for a fantastic dish. In the normal world (called “closed source”), they keep that recipe locked away. You can buy the dish, but you can never see how it’s made.
Open source is the opposite. The chef publishes the recipe for everyone to see. Anyone can look at it, try it out, suggest improvements (“This would taste better with a pinch of salt!”), and even share their modified version with others.
In the software world, the “recipe” is the source code.
Open-source software is software whose source code is publicly available for anyone to view, use, modify, and distribute. Projects like Linux, Android, Python, and Apache Fluss are all built this way.
Why should you care?
- You learn from the best: You can read code written by expert engineers at top companies. It’s like having a free library of real-world, production-grade projects.
- You build a real-world resume: Your contributions on platforms like GitHub become your portfolio. Instead of just saying you know Java, you can show a merged pull request in a major Java project. This is proof of your skills.
- You join a global community: You get to collaborate with developers from all over the world, learn from them, and get mentored.
A common myth is that you need to be a coding genius to contribute. That’s not true! You can start by fixing a typo in the documentation, reporting a bug, or helping with translations. Every contribution matters.
Creating a 10 personal projects is better than contributing to one open source projects
What is Google Summer of Code (GSoC)?
Google Summer of Code (GSoC) is a global program where Google pays students a stipend to work on an open-source project for the summer.
It’s not an internship at Google. Instead, you work with an open-source organization (like The Apache Software Foundation, Python Software Foundation, etc.) on a specific project. You are assigned a mentor from the organization who guides you throughout the summer.
The goal of GSoC is to introduce students to the world of open-source development. It’s a fantastic opportunity to get paid to learn, contribute to a real project, and get mentored by experienced developers.
How to Get Started: A Step-by-Step Guide
Here is a practical, step-by-step plan to go from zero to making your first contribution.
Step 1: Learn the Tools of the Trade
Before you can contribute, you need to know at least one programming language and how to work with code collaboratively. The most important tool for this is Git, and the most popular platform is GitHub.
- Learn the basic Git commands:
clone,add,commit,push,pull. - Understand the GitHub flow: Forking a repository, creating a new branch, opening a pull request.
- There are tons of free resources on YouTube and websites like freeCodeCamp to learn this.
Step 2: Find a Project You Genuinely Like
Go to the GSoC organizations page. You will see a list of hundreds of organizations. Don’t be overwhelmed.
- Filter by programming language and year. Select languages you know (e.g., Java, Python, C++). I suggest choosing an organization that has participated in the last five years, as they have a high probability of returning. Make sure you have completed the first step before doing this.
- Look for topics that interest you (e.g., Web, Operating Systems, Data Science); filters are available on the GSoC website.
- Many YouTube videos will suggest picking 2-3 organizations, but I recommend choosing only one that seems interesting to you. Going deeper is better than going wider. (Even if you don’t get selected for GSoC, consistent contributions can lead to an invitation to become a project maintainer, which is an incredible achievement in itself.) Read their “About” page and explore their projects. The key is to find something you are curious about, as that curiosity will fuel you through the challenges.
Step 3: Make Your First Contribution (Start Small!)
This is the most crucial step. Your goal is not to solve a massive problem on day one. Your goal is to learn the contribution process of the organization. I suggest start contributing early (e.g., November-December).
- First, read the documentation (you know what happened to me when I didn’t! 😅) and set up the project locally.
- Look for issues labeled “good first issue”, “beginner”, or “documentation”. Some projects use Jira and others use GitHub for tracking issues; you will learn which one by reading the contributing guidelines.
- A documentation typo is the perfect first contribution. It’s simple, low-risk, and helps you understand the workflow of creating a pull request and getting it reviewed.
- My first PR to Apache Fluss was a small documentation fix. It got merged with a celebratory emoji, and it gave me the confidence to continue.
Step 4: Join the Community
Open source is about people. You can’t just be a silent coder.
- Find the organization’s communication channel. This is usually a mailing list, Slack channel, or Discord server.
- Join the channel and introduce yourself. Say you’re a student interested in contributing for GSoC.
- Be polite, ask questions, and listen to the discussions. This is how you learn about the project’s culture and roadmap.
Step 5: Write Your GSoC Proposal
After you’ve made a few contributions and engaged with the community, you can start thinking about a project for the summer.
- Look at the project’s “Ideas List” for GSoC. Join the community calls, listen silently to understand what the community needs or is planning, and look at their roadmap.
- Come up with a project idea (it can be from the list or your own).
- Discuss your idea with the mentors! This is non-negotiable. A proposal written without feedback from the mentors has a very low chance of being accepted.
- Write a detailed proposal that outlines what you plan to do over the summer, with a clear timeline.
Final Words
My journey into open source was not a straight line; it took nearly five months. There were moments of doubt and frustration, but the key is consistency. As Virat Kohli says, “The only time you truly fail is when you decide to give up.”
Don’t be intimidated. Don’t do anything blindly; understand every scenario. The open-source community is incredibly welcoming to newcomers who are willing to learn. Start small, be consistent, and don’t be afraid to ask for help.
Good luck, and I hope to see you on GitHub!