Anyone can contribute to an open source projects regardless of their availability or level of experience!
You have probably already heard of open source code and used lots of tools built with this type of copyright licensing status.
From Visual Studio Code to Docker and from React to many of the most famous cryptocurrencies like Bitcoin, Ethereum and even the infamous Dogecoin.
But what does it mean that a project is open source, really?
What is an open source project?
Open source projects are shared freely for all to see and developed by communities of individuals that add contributions to it. They are not owned by a company itself but rather the product of the communities’ work.
They are usually published on platforms such as GitHub, which heavily encourage this type of transparent collaboration.
Anyone can contribute to a project if they follow the implemented contribution guidelines on each case. Some are stricter than others but as long as a maintainer of a given project approves your contribution your code will be used in the official version and you will be the proud contributor of your favourite project. Even if it’s just fixing a typo you found!
Not everyone can be a full-time open source developer so someone’s contribution to a codebase can vary from fixing a label on a specific website’s page to developing full-fledged modules of a project.
Advantages of contributing for a developer
1 - Freedom
You are your own boss. You pick what project or feature you want to work on and do it at the time and day it is most suitable to your busy agenda.
Feeling like working on some Python features to review your knowledge? Find a Python project that you like and go at it.
Are you in more of a low-level code kind of mindset today? Go get yourself a C bug to solve with loads of nasty pointers and all else that you deserve.
Of course don’t forget to develop what the project requires and leave your code clean so that you don’t add more problems to it down the line.
2 - Work on something you already use
You might use quite a few open source apps and websites already. As I’ve mentioned, VS Code is a great example of this.
If you have a feature idea, find a bug or just feel like improving the project because you like the tool then you can! And your name will forever be attached to something used by a very large number of people.
After your code is merged and put into production you can go and make use of your own change!
3 - Learn
You will gain a lot of experience in different kinds of problems very quickly after making contributions regularly for a bit of time because you will find all kinds of issues along the way.
There will also be more experienced people (at least when it comes to working on that specific project) reviewing your code before it is merged to the main branch. If they find something wrong with your code or think it could be better written in any way you will be notified and asked to make those changes. Next time your work will come out even better!
4 - Community
As an open source developer, you get to interact with other like-minded people. Everyone can share knowledge, learn from others, discuss possible improvements and geek out over a project.
Who knows, maybe you can end up with a few newly found friends!
How to find a project that fits you
For this, I am going to use GitHub as an example because it is one of the most popular platforms for this kind of work.
There, you can search for keywords in projects’ names, usernames, the code itself, commit messages and other fields using the top-left search bar on the image below.
It is also possible to filter by programming language on the bottom left.
In this example, I searched for the keyword “maps” and selected Typescript as the wanted language. GitHub found me a total of 6,494 different repositories with that keyword in its title or description that I can explore and see if they accept contributions from other developers.
Below the languages list I picked from, you can find an “Advanced Search” label. This will take you to a different page where you can build your own specific query for projects that absolutely match your needs.
To help you even further, there are usually issues with the label “good first issue” to let people, that are starting out their contributing journey, know which tasks they can pick up on more easily.
You can filter through these using the url https://github.com/<owner>/<repository>/contribute. Just replace the <owner> with the name of the organization or user and the <repository> with the name of the repository itself.
Using VSCode as an example once more, you can use the link https://github.com/microsoft/vscode/contribute to search for these issues in its repository.
How to make a contribution?
After you’ve found your desired open source project, read their contribution guidelines so you know how to help.
You can find these somewhere in the project’s README.md file on the repository’s main page or maybe in a separate file specially written for this purpose.
The following is microsoft/vscode’s guidelines for making contributions:
You can contribute by simply creating issues, feature requests or reviewing other people’s changes, remember that.
If your contribution is code-related, then what you will probably end up doing is cloning the project onto your computer, doing your magic on it and then committing it to a separate branch.
After everything seems perfect you can create a Pull Request from your branch to the designated branch in the project and wait for a review.
After your PR gets approved you can officially call yourself an open source developer and will eventually see your code working on the main product!
What if I tell you that you can get freebies, like t-shirts and cool stickers, to show off to your friends and family by contributing to open source projects?
Every year in October GitHub (and in this year’s edition also GitLab) host the HacktoberFest, an event where they’ll give away the event’s merchandise to whoever makes at least 5 contributions to repositories involved in it.
To participate, you need to get yourself enrolled in the event and hack away at your favourite projects.
...should I add this point to the top of the Advantages section? 😁
So, what project are you going to contribute to now?
My contribution here is done and now it’s up to you! Feel free to use the comment section to ask me any questions or to add me on Linkedin! 😉