A Beginner's Guide to Open Source
As a techie, you should have come across the term Open Source, maybe in some random tweet, blog post, or even when learning a programming language or tool and part of the definition says: this tool or language is open source. It's actually everywhere.
In this article, I will be writing about:
What Open Source is?
Benefits of contributing to Open Source
How to start contributing
Open Source refers to software, project, or community where people can modify and share ideas because it's designed to be publicly accessible. A relatable example will be your favorite recipe, you are able to cook that dish you never invented because that recipe was made open by the owner. Most times, you can also cook it your style just to suit your taste without getting choked in the neck (just joking).
Open Source Software (OSS) is software that the source code is available to others who would like to view that code, copy it, learn from it, alter it, or share it.
Some examples of Open Source Softwares and Languages:
Linux Operating system
Android by Google
VLC Media player
Python, PHP, MySQL
In contrast to OSS, we have proprietary or closed source software where it is only accessible to creators of the software and for others to use it, there would be legal permission. Eg Adobe Photoshop, Microsoft office.
Open Source is not just about software or code, absolutely anyone in the tech space can contribute to open source (every role). With open-source, there is transparency, reliability, flexibility, and allows for open collaboration.
Contributing to Open Source projects or software means making that project better for free. You should be asking yourself, why should I even care or stress myself for free. For starters, you can take a look at how Edidiong Asikpo narrates how Open source was a catalyst for growth for her, here.
Amongst the many benefits, here are some:
Open Source helps you improve on your existing skills, especially if you're a beginner as it permits you to learn while doing.
You get to collaborate and work with amazing tech personalities all over the world despite your location.
You are making the world a better place by making open your ideas to improve the software, project, or community.
You get recognized for contributing or being part of the something unique or big (the feel of pride)
It gives you the opportunity to be part of a vibrant community of great minds you can draw inspiration from and meet like-minded people.
I'm sure my last point was interesting to you, So How do you start contributing to OSS? Here's how:
Let's talk about Github
Github is the house of collaboration for OSS projects so it's a great place to start contributing to open source, but this shouldn't scare you as if you don't know how to use it, it is learnable (documentation and guides) noting that learning is a gradual process.
Github houses many open source projects in form of public repositories. So you see a project, you either submit an issue suggesting ways to fix the errors or problems you have noticed with the project (ideas) or create a pull request with your corrections and improvements.
It's going to be quite frustrating if I advise you use the explore area on Github to search for projects cause you would see a lot in your face, although you can streamline your search by languages.
To be more specific, here are some ways you can start:
- First-timers only: A great resource site to find beginner-friendly open source projects, to begin with.
Designers I got you covered! You can check out Open Source Design for beginner-friendly design projects too
You can create your own open-source project bringing your wonderful ideas to life and allowing others to collaborate and contribute. You can check here for a guide on how to start an open-source project.
Joining a community: You can be part of a community as a way of promoting the open-source way. With a google search on local open-source communities and be actively part of them.
Finally, here are some useful tips when contributing to an open-source project:
Do some research on the project, community, or organization before joining, and when you do, ask questions where not clear.
When you join the community, try to be active by introducing yourself and stating areas where you can help the project
Don't think you can't offer anything to the project, kill that thought. You've got wonderful ideas to share.
Scout for issues on the repository(if any) to see where you can help, issues having labels like good first issue, help-wanted, first-timers only is a great place to start.
Before starting to contribute, be sure to go through the contributing guidelines so you won't have conflicts contributing.
Just using an open-source tool is contributing, attending an open-source event is contributing, as well as volunteering or donating to one.
I'd end with Open-Source Africa Festival Slogan: THE FUTURE IS OPEN, so join the train.
Thanks for reading!
If you still have doubts or need help starting, send a message here, I will be glad to talk to you about open source and help you make your first contribution.