Getting Started With Open-Source
Open Source — Not a new term! Right?
We love to use free softwares because why to pay if you can get things for free. And what makes it possible is open source.
So what is open Source?
Open-Source or open-source softwares are the softwares/services for which source code are publicly available. That is, any one can view the code and compile it and run it like a software. There are many open source softwares out there, that we use constantly without even knowing. A best example would be, VLC Media player, Atom Editor, Visual Studio Code and many more. The Source for most of these can be found on the famous free Repository Hosting service provider, GitHub.
Why Open Source?
It takes time and effort to build softwares right, so why open source? How to get benefit out of that? See, Making softwares open source can be beneficial in many ways. One example being, it makes softwares Robust, efficient and More secure, because Now not only your company developers but whole world can see and contribute if they find any breaking changes/ issues or an additional feature.
Okay, But why should I Contribute? Like, whats my benefit?
As a developer, contributing to open source is considered as best thing a developer can do because here you are getting nothing (physically), that means you are contributing on your own. That shows your enthusiasm and passion toward coding. And many of tech giant admires and appreciate the open source contribution. So, By contributing to open source you are providing a way to yourself to get into these tech giants.
Moreover, You get to learn and know many things, the writing styles, and learn from peers. Best part is, even you do something wrong, at it worst, your Pull Request wont be accepted and code wont be merged. That’s it. But on positive side, you’re getting hell lot of things to learn.
So, Ready? and inspired enough? Let’s get straight into it.
Starting with Open Source Contributions
My first contribution was as simple as forking a repo and start the service in a cloud service provider. All the steps were written in Repo’s Readme.md and All I had to do was just to follow the steps and start a service. It was, a python project, and quite straightforward. Just, there were some package updates over time, and I needed some StackOverflow searches to figure it out to run it smoothly. And after that, I just created an issue on original ticket and it was accepted. ( Will write in details in some other article)
So, here is the thing. Starting with Open Source can be done from anywhere, any stage. No matter whether you are a college student or beginner or in corporate.
Next, In further discussions with people around and some research, I could found that, Open Source Contribution is as simple as Creating Issues and Solving Opened Issued if you can. Most of the known open source repositories are on GitHub, but its not exclusive. All you have to do is,
- Open any public well known Repository.
- See, Issues tab.
- Look for any issues that you can solve.
- Clone the Repo, Make changes
- Run the test, and ensure all test cases are passing, and Build is passing.
- Commit, and Push the Changes.
- Raise a Pull Request ( PR as jargon, or Merge Request)
- Your contribution is reviewed ( if you follow the contribution guidelines, in case the have provided, mostly mentioned in their Readme file.)
- If everything is fine, with non-breaking changes, your PR might be merged and Yes You made your first Open Source Contribution.
- If there are certain things to be changed, they (the Repo Owner and maintainers) will comment and you will have to address those comments. Once again make changes, run it, ensure all test cases and build are passing, and your contribution will be eventually Merged. Bingo!
- You’re now Open Source contributor, you can mention it on your Resume/CV.
Now it was easy to write as points right, but is it that simple? Definitely not, ( not saying it’s hard, anyway)
The main and first task is, the first step, Choosing an Open-Source Repository to work on. This is most important step and significantly depends upon what you know. In the sense, like what all languages you know, what all services are you aware of and testing libraries, CICD technologies. Not all of these are mandatory, but might be necessary as we go.
- You should be knowing any good programming language well and good. In depth knowledge is required.
- You can choose a project only if you know the programming language it’s written in. For example, if you know python well, you can work any of the famous python libraries, ( if they are written is python), like pandas, numpy, matplotlib etc. At the time of writing this article, there are around 1.4k open issues on matplotlib and 2.0k open issues on numpy, (so how can we say like we don’t have opportunity to contribute to open source?)
If You are more into nodejs, you can contribute to NPM packages. There are N no. of packages and thousands of open issues. and thousands of issues are resolved( PRs are merged). All you have to do is to find something you can work on. Some famous packages are, axios, monaco (VScode is based on it), http, express, loadash, and a lot more, ( just google — “Top 10 npm/python packages”)
Apart from that, if you find interesting, you might want to contribute in open source softwares like, VLC, ATOM, VSCODE etc, ( will add more examples eventually).
Other examples: tensorflow,
Additional Info — Lately, I found an ad on stack-overflow, that landed me on this open source contribution advertisement page, where people are looking for open source contributors. Please visit and Start Now.
End Note — It might be intimidating at first, You might feel low during development and you it may take a while for your first PR to get merged, but don’t loose Hope. Stay focussed.
Hit Clap if you like it. :)