How to start contributing to Open Source?

Anubhav Sinha
5 min readJun 10, 2020

--

In this article, we will discuss how can you start contributing to Open Source. I will try to clear all of your doubts and problems which you face when you are about to start contributing to Open Source. All those who are facing problem contributing, after reading this article you will be able to contribute.

whoami

Myself Anubhav Sinha, currently I am pursuing B.Tech from Jaypee Institute of Information Technology, Noida and I am in 3rd year. I was selected as the Google Summer of Code student in 2019 in my 2nd year under the Oppia organization. And I successfully completed all the three milestones, and I can say that contributing to Open Source is really worth, it boosts your programming skills to a different level.

What is Open Source?

Open Source refers to any software whose source code is made available for use and modification. Anyone can contribute to that source code by resolving some bugs or adding a new feature. Even you can adapt the software to suit your own needs. Examples of few Open Source Softwares — Chromium, VSCode, Ubuntu, Firefox, VLC Media Player, etc.

Credits: Google

How to start?

Many people have questions like how should I start, how can I understand the whole codebase, how can I pick some good beginner-friendly projects, and what are the prerequisites.

So let's talk about the prerequisites first. First of all, you should be familiar with any one programming language, it can be C, C++, Java, Python, Javascript, Ruby, etc. Now being familiar means you should know the basics of that language, and you have made a few self projects in that language, 2–3 projects will be fine. If you have made projects, it means you have got a good knowledge of that language. The next thing you want to know about is Version Control i.e Git. After learning git (at least basic git commands as git clone, git branch, git commit, git pull, git push), you can learn about how to operate the GitHub(at least creating an issue and pull request). I am attaching a few links you can take a look at it to learn Git and GitHub.

Git & GitHub Crash Course For Beginners — Traversy Media

Git and GitHub Tutorials for Beginners — The Net Ninja

Set up git on your computer

Also if you can learn Web Development, Android Development, or any kind of development, then it will be better.

(If you want to master Python, here is the article on “Learning Python from scratch!

Now, once you are familiar with a particular language, then you can pick a beginner-friendly project before you dive into a big project. Few websites which can help you choose your first beginner-friendly project.

Up For Grabs

MunGell/awesome-for-beginners

Code Triage

Choose your first beginner-friendly project and start contributing. In the starting, it will take some time but don’t give up. Try to pick up easy issues in the starting (it can be a typo only :-)), and once you solve some easy issues you will get familiar with the project and you can solving now medium or hard level issues. One can easily sort issues according to difficulty because these organizations attach the label to most of the issues. You can select the label, according to your difficulty. For easy issues, the labels widely used are beginner-friendly, good first issue, easy, newcomers, etc. And once you got an experience of contributing to a beginner-friendly project, you can easily shift to now a good and big project.

Choose the project which is of your domain or interest. Like in my case I liked Web Development and my preferable programming language was Python so I started my contribution in Oppia(Fact:- Oppia is an open-source project of Google and it is maintained by Google engineers). Once you have selected the big project of your interest then follow the same technique i.e try to solve some easy issues at the starting. In your starting phase, it will take some time to resolve issues, as you are new to the codebase. It may take you up to 15 days to solve an easy issue(depends on what the issue demands) in starting. If the issue is of medium or high level, and it requires some research work so it may take up to one month also. But don’t give up, try to solve the issue. In my case, I solved the first issue in Oppia in about 10 days and the next one in 5 days. And once I gained the flow, I continued with it and solved many issues.

Now the question comes if you are stuck and you are not able to understand how to solve the issue then what to do. Feel free to ask on the issue thread on GitHub, that how can I proceed, and if you have a solution you can even discuss in the issue thread about that. Also, the most important part, join the community channel of your organization(it can be on Gitter, IRC, Slack, Discord, Hangouts, etc.) and ask your doubts on that channel. Try not to ping someone personally unless it is very much important.

And once you are able to solve 2–3 easy issues, you can move to some good issues. It will take you around 2 months to get familiar with the codebase, and after that, you will be able to contribute easily. Do participate in different Open Source programs like Google Summer of Code, Outreachy, etc. These programs will help you to evolve as a good developer.

Here is the list of different Open Source programs — https://github.com/tapaswenipathak/Open-Source-Programs

Benefits of contributing to Open Source

  • Improves your programming skills
  • Get the insight of actually how the code is written at an industrial level.
  • Your network increases, as you work with different people from different places.
  • Learn the process of software engineering.
  • You create a code that benefits the community!

And many more are there…..

At last, I just wanted to say —

Stay motivated!

Never Give Up!

Consistency is the key!

I hope you liked the article, feel free to reach me out LinkedIn for any help.

LinkedIn: Anubhav Sinha

Also, read the article How I got selected in GSoC 2019?

Thank You

Follow me, for more such awesome articles.

--

--