Open source is often associated with coding, giving the impression it’s meant only for computer geeks. But anybody can become an open source contributor—even if they haven’t written a line of code their entire life. Sounds interesting? Read on.
The beginning of the new year calls you to bring about a change in yourself. It could be learning a new skill, becoming healthy, performing your best at work or studies, or anything fruitful that will improve you. In the process, you also want that change to benefit others. Here is an interesting proposition to help you become an open source contributor.
Why not? After all, it is exciting and will help you achieve your objectives. And, most importantly, you do not need to be an expert in coding. You can contribute without possessing any prior coding experience.
Interested? Let’s do it. But first a bit of basic background. The formal definition of open source software goes like this:
Open source software is a software whose source code is released under a license that grants anyone the right to inspect, modify, and distribute it for any purpose. The two important things to note in this definition are ‘source code’ and ‘license.’
Releasing a source code for free does not hinder you from selling the result of your creation. It is possible to earn money based on open source software and make a living out of it. Companies including GitHub and MongoDB, to name a few, are doing just that. Nevertheless, there is a lot more to simply giving away all your software for free.
There is also a difference between free software and open source software. While free software is part of the larger open source community, the opposite is untrue. Open source software allows everyone the right to inspect, modify, and distribute its code. However, free software also forces you to redistribute any changes you made to it under the original license.
Popular open source licenses
There are essentially two different categories. First, there are permissive licenses that allow modifications to the original software code and sell the modified version. Open source codes can be combined and released with little to no constraints, as long as the original licenses and copyrights are not altered. Some common examples of this license category are the MIT license (MIT), Apache license 2.0 (Apache 2.0), and 3-clause BSD license (BSD-3-Clause).
Second, there are copyleft licenses. The most commonly used one is the GNU General Public License (GPL). If a code is included to a project that is under GPL license, then the final modified version must be released under GPL. The GPL code cannot be mixed with any other proprietary source code. Other examples of this category are GNU Lesser General Public License (LGPL) and Mozilla Public License 2.0 (MPL 2.0).
So, it is the license that separates the general open source community from the free software community.
Why contribute to open source?
Open source software plays an essential part in the functioning of daily-use devices, such as PCs, smartphones, and even cars. Thanks to open source software global tech has evolved at a rapid pace since 2000. Without this transformation, the startup ecosystem would not have thrived.
A key benefit of taking the help of open source while starting a new project is that it saves time and energy spent reinventing everything from scratch. You can simply reuse some of the previous work released under an open source license. By building upon it, you can create something new and innovative. With open source, you can focus on what’s important for your work instead of every time going through the basics.
Another benefit that open source brings is that it can open many new opportunities and careers by helping you become a part of several open-knowledge communities out there. Open source is one of the most efficient ways to learn and hone your technical skills and knowledge because you get to work on highly-technical projects.
You may have heard of open data for sharing datasets for machine learning model training and to access any previous research work. This ‘open community’ approach helps support various sectors such as education, business, creatives, and many more to achieve their objectives. Imagine reviewing and sharing codes for such purposes while also learning to collaborate with very smart people around the globe. Sounds fun?
Speaking of community interaction, by collaborating with other project developers, you come across different people and ideas. And that helps you build your network.
Far from the stereotype
Whenever someone is told to describe a developer, most people think of a person working alone with machines. But the truth is the opposite when it comes to real-life work. A big part of software development is communication. Yes, you have to write code for machines. But more importantly, you need to work with your peers and other developers.
Communication also entails getting information and feedback from end-users, UX team, product designers, and everyone else directly involved in a project. Basically, a developer acts as a central point of communication of a project. All this can be regarded as the first circle of communication.
Outside the immediate circle, a developer is expected to interact with different people outside their project or company, especially with bigger development or open source communities. Doing so exposes the developer to different opinions and constructive feedback, which is very important for improving and building key technical skills.
More contributions=More visibility
As a member of the open source community and by contributing to open source projects, your profile will get more visibility. That means your professional profile will get more desirable views and requests from people looking to hire techies/developers.
Although this is a suggestion and not mandatory, it gives you an edge as it allows you to easily showcase your work results. And if lucky, your open source work can help you skip some of the tricky parts of interviews upon selection for a tech job.
Ground rules before contribution
- Do not fear making your first contribution. You do not have to be an expert to begin.
- Even if you have not written a line of code in your entire life, there are still different ways to contribute to open source. You do not necessarily have to learn to code.
- You do not need to ask anyone’s permission before contributing to an open source project. But it is nice to chat with the project maintenance team to have a better chance of your contribution being accepted.
- Always start small rather than making a big contribution. If you do not know the people maintaining the project, their purpose for the project, and their expectations from your contribution, chances are your contribution will get rejected. You will get less frustrated if you decide to work small and get refused instead of working big for several weeks.
- Never give up if your first try does not work out. Learn from the feedback to your contribution and make relevant improvements to your style of work. Your contribution will surely get accepted next time.
Steps to make first contribution
Choose a project. If you do not know where to start, there are some open source tools you can use. One of them is a website called First Contributions where you can find a lot of open source projects with specific issues that are friendly for first-time contributions. Simply go through them and select.
On selecting a project, you will be taken to the GitHub page of the project into the Issues section that is filtered with good first issues for first-time contributors. Go through the different issues and select whichever one interests you.
After selecting the issue, read the general description to know what you are expected to do. If someone has already assigned himself/herself to the project, look for any other issue to work upon.
If you do not wish to go through GitHub, there is another method for which Node.js should be installed in your machine. Type npx good-first-issue in the terminal and it will give you a list of available projects. For instance, if you choose to contribute to Babel, a random issue will be automatically picked. To start working on the issue, go to the given GitHub link.
Before making any contribution, check whether the project has been actively maintained over time so that your contribution request gets accepted soon.
Work on a project. To make a pull request for starting your first contribution, go to the link aka.ms/first-pr that will take you to the GitHub repository called First Contributions. There you can access a tutorial on how to create your first pull request, which includes forking the repository, cloning the repository on your local machine, making a change to a file (for example, adding your username by creating a new branch), committing the change to a local copy of the project, pushing those changes to Github, and then creating the actual pull request where the project maintenance will be able to review your pull request, give a feedback, and accept/reject your changes.
As stated earlier, coding is not the only way to contribute to an open source project. There are many other ways. The first one is to promote the project and share it on different social media platforms. If you have experience with a particular project, you can answer some of the questions related to it on Stack Overflow or GitHub. It will be very helpful for project maintenance.
Another good way to make the first contribution is to go through the project documentation and fix errors. You can also write tutorials and translate the documentation into different languages. Making the project accessible to a lot of different people is well appreciated.
If you come across any bug, then do report it. If you do not report, then nobody’s going to have a look and timely fix it. Although not a fun way, if you like writing unit tests for projects, especially after witnessing a bug that escaped someone else’s notice, you can do so as it is one of the good ways to contribute to any open source project.
If you are a good designer, you can design a nice logo for a particular open source project. Like this, there are multiple ways to contribute.
If you plan to work on an issue of a specific project, do assign yourself to the issue so that other people can know that someone else is working on it.
Submit your pull request. Certain things can increase the chances of your pull request getting accepted. The first thing is to read the contribution guidelines before submission. It is good to describe the changes made and why for the project.
Just be mindful that some of the people maintaining an open source project won’t be able to regularly check the repository. So, be patient and allow them time to go through your pull request.
Giving and receiving feedback is an essential part of the open source cycle. It helps to understand what needs to be changed. If you receive criticism, do not take it as a personal attack but as a means to further improve your skills. Since hundreds of big open source projects get reviewed every day, feedback on your contribution may take days—even months. Nevertheless, don’t worry, you will eventually receive it.
Get ready for a new adventure
After all your hard work, unfortunately, everything may not work out the first time. May be your contribution did not fit the project’s objective or someone else contributed in a better way. Do not worry, it happens. Remember to never give up. Once your contribution gets accepted, you will be motivated to contribute further.
So, if you love the philosophy of sharing content, receiving feedback, and being a part of a larger tech ecosystem, the life of an open source contributor is meant for you.
The article is based on the talk ‘How and why become an open source contributor’ held at Open Source India 2021. The article has been compiled by Vinay Prabhakar Minj, a technology enthusiast