Introduction
Before I begin to tell you about my journey in Open Source till now, let us first understand what Open Source and Open Source Contribution mean.
The word Open Source is referred to Open Source Software (OSS) which is basically a type of software whose code is available publicly to use and modify. Simply, we can put this as software that can be freely distributed and the codebase of the software is available publicly.
So, Open Source Contribution means a contribution to the development or improvement of the open-source software. There are multiple ways to contribute to open-source software like contributing to development, documentation of the software and even reporting any issue is also a contribution.
So, this is all about what Open Source and Open Contribution mean.
Just a disclaimer😉. The things that I am about to talk about are all based on my experience. There could be right or wrong according to someone else.
When did I start?
I came to know about Open Source contribution way back in mid of the year 2020. But I didn't know anything about its importance or benefit or what it brings to you. I thought contribution was all about writing some code by ourselves and contributing to the development of the project. In that year, I did my first contribution to freeCodeCamp project.
You can find some of my PR in freeCodeCamp.
So, the mistake back I made back then was I didn't try to explore and learn more about it and after some PR in freeCodeCamp, I stopped doing it. Because it was too overwhelming by seeing such a big codebase and I felt like it is not something for me.
Then, in 2021 I started exploring Open Source again and came across Kubernetes open source community and attended a Kubernetes Contributor Workshop.
You can check out about the workshop.
You can find me in the below picture in a blue T-Shirt smiling😅. This was a picture from that workshop.
After that workshop, I started making a small contribution to Kubernetes docs. Believe me, It was so overwhelming looking at such a huge codebase and not able to understand a single thing. But this time, I understood that it is not something that is happening only with me but with everyone. Eventually, I understood that even other contributors who are contributing to the project for a long time also don't know about the whole codebase. And it is okay to not know about the whole codebase because it is really difficult to understand everything about such a huge codebase.
I am still learning and exploring and trying to be as active as possible.
You can find some of the PR that I made in Kubernetes docs.
Why contribute to Open Source?
You learn a whole lot of new things while contributing to open source.
Here are few things-
- You get to learn how to contribute and collaborate in a project
- You will get to learn how to approach and understand such a huge codebase
- You get an experience similar to doing an internship
- You get a firm understanding of a whole lot of things related to how production-ready software development works
- Community is one of the best things that comes with Open Source. Everyone is always ready to help you and there you get to meet a lot of new people and learn from them.
- It brings a lot of opportunities if you are active and really helping the project and community
These are some of the things that you learn when you start contributing to open source. I hope this motivates you enough to make your first contribution.
Some important questions that I like to answer which I also had when I started contributing.
-
Is there any prerequisite to contribute to open source?
There is no prerequisite to get started in open source. You just need some basic knowledge about Git and those technologies being used in the project that you want to contribute but not necessarily, and readiness to learn things on the way.
-
How to choose an open-source project?
It completely depends on you and what you like. You can find a project which suits your interest because it is really important to have your interest in that project to stick with that project for a long time. And choose such projects who have an active community and there is constant improvement happening in that project.
-
The codebase is very huge and I don't understand how to contribute.
This is something everyone faces and there is nothing wrong with it. Don't try to jump directly into the codebase and try to understand things. First, pick a good first issue and look at what is required to understand to solve that issue and try to understand only that part of the codebase which is related to that issue. Doing so every time, believe me, at some point in time, you will start understanding the project bit by bit.
-
How do get help or communicate with anyone from the community?
Almost all open source projects have some kind of communication channel like Slack or Discord or might be something else. You can find the channel link in the readme of the project for most of the projects. Join the channel and don't hesitate to ask anything because the community is already ready to help.
How to find projects?
I would highly encourage everyone to try to explore and contribute to some open-source projects not necessarily freeCodeCamp or Kubernetes that I mentioned above. There are a whole lot of open source projects out there.
There is some website which can help you find good first issue or project for you to get started in.
Here are some good resources for finding beginner-friendly issues:
Open Source Contribution is an opportunity to broaden your horizon and learn a whole lot of things in the process. It is not necessary for you to be an expert to start contributing. You just need to get started, that's it. You just need to be curious to learn things in the process and others will be there to help you.
Be generous and kind in the community.
Thank you.