As the name suggests, Open-Source is something that is open for all which means there is no genuine owner of it. Open source is defined as software or project for which the original source code is made freely available which may be redistributed and modified/re-modified according to the requirement of the user.
Sounds interesting, right ?… It is pretty much interesting. So an Open source software is basically software with source code that anyone can inspect, modify, update, and enhance as per his/her necessity or work.
“I am a lazy person, which is why I like open source, for other people to do work for me.”
–Linus Torvalds (Creator of Linux Kernel and Git)
Why Contribute to Open Source?
It doesn’t matter if you’re a beginner or an experienced developer, contributing to open source gives you a lot of benefits. Some reasons and benefits are given below:
- An open-source contribution is a great place where you can collaborate with other developers by improving their code or correcting them.
- You get to learn more about programming when you are on your coding journey. During your learning phase, you only learn the specific language or basic syntax but during the learning phase, it’s difficult to understand how things can be applied in real-world projects.
- You know what someone is doing or has done, you can dive deep into his code and it will help you to enhance your skills.
- By raising an issue or even contributing to solving one, you are able to apply what you learn in your coding courses. This makes you understand the concept better and on a deeper level.
- You learn how to use resources like stack overflow, and language documentation to solve the problem.
- You can help other developers or you can seek help from others.
- You can see how a project is done and launched/Published.
- One can enhance his/her googling skills as being a developer, Google is like God.
- Meet people who are interested in the same thing.
- You can even participate in open-source competitions
- Contributing to open source adds experience in your resume and increases the chances of landing up in a good job.
As a beginner, each contribution (though small ones too) is an achievement and is worth celebrating. Indeed, you get the motivation to contribute more and more than you are learning.
While the term “Open Source” often refers to software, but the fact is you can collaborate on just about anything. There are endless things that get developed as open-source projects. Yes, endless thing…
You don’t just need to have coding skills, or building any projects, or even contribute any code yet you can contribute as there are tons of ways in which you can rule. There is a documentation part in a project/software: one can write or improve that, designing part such as creating a logo, you can give examples showing how the project/software is used, you can suggest a new issue or give suggestions, etc.
Important Terminologies and File Names
Open source contribution requires you to know basic git commands and also knowing how to navigate your way on Github. You can check out Git Hub Guides, to get the basics. Below are some basic terminologies that may help you to contribute to an open-source project.
- Author: The person/s who created the project.
- Owner: The person/s who has administrative ownership of the project.
- Contributors: The person/s who contribute to the project.
Common File Names in Open Source Repositories
- LICENSE: It is important for a project to have an open-source license. Without a license, a project is not open-source.
- README: It’s an instruction manual that welcomes new community members to the project. Here you will get the explanation that why the project is useful and how to get started.
- CONTRIBUTING: Contributing docs help people contribute to the project. Here you will get the explanation that what types of contributions are needed and how the process works.
- CODE_OF_CONDUCT: The code of conduct sets ground rules for participants’ behavior associated and helps to facilitate a friendly, welcoming environment.
Here are a few ways in which you can contribute to an open-source project…
- You can submit a bug fix.
- You can add a new feature.
- You can update the documentation.
- You can answer or give suggestions.
- You can review code.
- You can create a new issue
Firstly you need to find some open source projects to contribute. Search for GitHub projects that are open-source and have issues that are been labeled good-first issues, beginners-friendly, easy, e.t.c. Here is my Open source Repository from where you can give a shot for your open source contribution.
https://github.com/amandp13/Cool-Scripts-Python-Nerds (This is/will be a collection of some cool Python scripts from basic to advance.)
How to Contribute?
Follow these Contribution.md to contribute.
- Read the Readme.md file for a better understanding of the project.
- Take a look at the existing Issues or create your own Issues!
(The issue tab on Github repositories is where you can search for labels that you can work on).
- Read the issue carefully and do some research if you are stuck somewhere.
- [Optional] Comment “I want to contribute to this issue” so that it can be assigned to you and after that, you can start working on it. It depends on the owner how he wants to contribute.
- Fork the Repository in your account. (See The top right corner of the Repository)
- Create a Branch for any Issue that you are working upon.
Write a commit message and additional information that is descriptive.
- Add the files using git add (add scripts related to your respective issues)
- Add a commit message!
- Push changes: git push -u origin <name_of_your_branch>
- Check your forked repository and click “Compare and pull requests”.
- Create a pull request which will be promptly reviewed and suggestions would be added to improve it.
Congratulations! You just created your pull request.
- Now, you just need to wait for the pull request to be merged by the owner or assigned members.
Hope it was helpful…
Don’t wait until you are ‘good enough’ to contribute to projects, just get started and you will learn along the way.