The Beginner's Guide to Contributing to Open Source
Open-source projects are software whose codes are made public and are free to use, study, modify, and distribute for any purpose. Contributing to an open-source project is one of the best ways to receive immediate feedback and grow your development and programming skills.
In this article, we are going to cover:
- What open-source is
- Benefits of contributing to open-source
- How to get started with an open-source contribution
- Open-source communities to join
- Categories of people in open source projects
- How to contribute to open-source without writing code
- Resources and further reading
What Open-Source Software is
Open-source software is one whose codebase is free and open for everyone to use, modify, contribute or distribute. Some popular open-source projects you may have come across are Linux, Mozilla, VideoLAN (VLC), ReactJs, Firefox, Android and many more.
Benefits of Contributing to Open-Source
By clicking on this article, I assume you already made up your mind to go the ‘open-source way’ and may have varying reasons for doing so. However, here are a few of the reasons why I am pretty sure you’re set out on the right path:
Improve on your existing skills: The only way to truly learn and perfect your craft is to practice. However, few professions provide the means to practice on real projects. With open-source projects, you don’t just get to practice but will be provided with the opportunity to receive valuable feedback from more accomplished experts. Most organizations label their issues with tags like “good first issues”, “first-timers only” to encourage newbies and beginners to contribute and gain industry experience.
Increase community recognition: Recognition from members from the OSS community encourages and motivates you to improve your skills, it can also create several opportunities, such as job offers and invitations to attend conferences and events, etc. For example, Ruth Ikegah, Nigerian, got recognized by Github and has emerged as the first female Github star in Africa. This was possible due to her active participation in helping newbies get started in open-source.
Self-recognition and personal achievement: If you are extremely determined to become the best developer you can be, having your code accepted by a big OSS project would be a massive achievement. Check out this tweet by name celebrating a merged code to Mozilla Firefox.
Get paid: You can also get paid by contributing to open-source projects! By participating in internships like Google Summer of Code, Outreachy, Google Season of Docs, bounty program by Open Collective, etc. you can gain new skills, solidify existing knowledge, meet amazing people, and get paid while doing this. You can also find some paid open-source projects by browsing WorksHub's issues page.
Increase job prospects: In the same way, contributing to OSS can help you increase your chances of landing an internship, it can also improve your job and career prospects. Nowadays, when many tech companies receive a CV from a prospective developer, they spend less time going through the CV and spend more time investigating the applicant’s Github account. The fact that OSS is visible to the public means that prospective employers can inspect your code and assess your skills as a developer based on the code you have written. Moreover, by contributing to a company's open-source projects, you establish a relationship with them, making it easier to stand from the crowd when applying to their jobs.
Find mentors and teach others: Working with others on a shared project means you’ll have to explain how you do things, as well as ask other people for help. By contributing to open source, you have the opportunity to learn and teach which not only are fulfilling activities but also helps you develop important personal and professional skills.
How to get started with an open-source contribution
When getting started with open-source, Github is a good place to start. If you don't know anything about GitHub, git, or version control, then start by following some tutorials on them. Git is a version control system that allows you to manage changes to your source code. GitHub is a hosting platform for git. Once you are familiar with git and GitHub, try making pull requests to some repositories. There are a lot of repositories that allow users to contribute a small piece of code ( e.g. an HTML file for your profile ) to get them familiar with the whole process. Check out First Contributions and get yourself comfortable with the process.
Here are some platforms where you can find open-source projects to work on
- GitHub Explore
- Open Source Friday
- First Timers Only
- 24 Pull Requests
- Up For Grabs
- First Contributions
- Your first PR
Find a project you can contribute to
One way to find projects to work on is to look for open-source software you use often and like. Is there a tool, package, framework, or language that you work with regularly and enjoy using? Find out whether it’s an open-source project by checking its license, if it accepts contributions and is active. You can try using the Github explore page. Github suggests projects you may like based on people and repositories you follow, star, and watch. Another way to find projects is to use Github’s search tool by entering beginner-friendly contribution tags like good-first-issue, good-first-bug, beginner-friendly, easy, low-hanging-fruit, first-timers-only, etc
Identify an issue to solve
After identifying the open-source project, the next thing you need to do is identify an issue to solve. Most open-source projects already have available issues listed, while others don't. You can visit our Open Source Issues page to find issues that are actively looking for contributors. If you happen to work with an open-source project that has raised issues, notify the maintainers of your interest in the project, read through the project documentation, and start working on it. If you don't see available issues, then try using the project and identify things that should be fixed but haven't been. Then fix it and submit a pull request.
Send a pull request
Before submitting the pull request, try to understand the open-source project's review process and how they expect to submit pull requests. Ensure you follow the style guide when submitting your pull request.
Categories of People in Open Source Projects
A typical open source project has the following types of people:
Author: The person/s or organization that created the project
Owner: The person/s who has administrative ownership over the organization or repository (not always the same as the original author)
Maintainers: Contributors who are responsible for driving the vision and managing the organizational aspects of the project (They may also be authors or owners of the project.)
Contributors: Everyone who has contributed something to the project
Community Members : People who use the project. They might be active in conversations or express their opinion on the project’s direction
Open-source Communities to Join
Open source communities are organized collections of contributors to a project (software). These communities bring people with shared interests together to collaboratively build something, which can be shared with anyone inside or outside of the community. You can join an open-source project by subscribing to the mailing list for that project, joining their workspaces on slack, discord, or IRC.
GitHub is home to the largest open source community in the world with millions of open source projects hosted on the web-based platform for working on software projects.
How to participate in Open Source Communities
- Research on the project, community, or organization before joining,
- Ask questions,
- Offer help to others,
- Follow community style guides and guidelines.
How to contribute to open-source without writing code
A common misconception about contributing to open source is that you need to contribute code. Here are some ways to contribute to open-source other than contributing to the codebase.
- Advocate for Open Source Software: As an advocate, your main duty is to invite contributors to the project through events, hackathons, digital communication and make it easy for people to get started.
- Use Open Source software: As a user, you are arguably the most important part of an open-source project, for if it were not for you, why would anyone build it? As a user, you will deploy the solution, download or install, and attempt to use it. You’ll also be among the first people to give feedback, discover bugs, and caveats in the software, and report to the maintainers.
- Educate others on your favourite open-source projects: You can create content around the software - how-to’s, usage, tutorials, and walkthroughs which can be used by developers to learn about the open-source solution and acquire skills at the same time.
- Design graphics and interfaces: Contributing to the design of an open-source is not as straightforward as contributing to the project’s codebase. Before you venture into contributing, you’ll need to reach out to the creators or maintainers of the project. They may not always be willing to accept your changes especially if it would affect the architectural design of the project. As a designer, you can contribute to open-source projects in any of the following ways:
- Critiquing their project's usability,
- Critiquing the layout/flow,
- Coming up with a colour scheme or even the visual identity of the application,
- Finding new ways to improve the user experience,
- Choosing a better typeface,
- Creating a logo,
- Coming up with a new design/layout for components or even the entire application,
- Coming up with alternative themes.
- Translate open-source software to other languages: Sometimes it can be challenging to contribute to open source when your primary language isn't English, but this can also be a very valuable asset. Translation (or internationalization/localization) is an extremely valuable contribution that can open up the software to a much larger user base.
- Improve the knowledge base: The documentation of an open-source project is arguably as necessary as the software. Writing and improving the project’s documentation, curating a folder of examples showing how the project is used, starting a newsletter for the project, or curating highlights from the mailing list are good ways to contribute to open-source projects as a writer. In this article, Edidiong Asikpo breaks down how you can get started with contributing to open-source as a technical writer.
- Donate and sponsor Open Source Communities: Last but certainly not least, open-source software are mostly free to use, however, these communities need money to pay current contributors, cover the costs of running the project (such as hosting fees) or investing in new features and ideas. Many projects allow companies to sponsor or join a project more formally by contributing funding and/or people in exchange for some advisory role in the project or enhanced visibility.
Contributing to open-source is for everyone, and comes with huge benefits. In this article, we’ve been able to cover the basics of contributing to open source as a first-timer. Working with Git is an essential skill you must have before you start contributing to open source. You can practice contributing to open-source for the first time by following the step-by-step guide in this article
Resources and further reading
Sign up now and apply for roles at companies that interest you.
Engineers who find a new job through Python Works average a 15% increase in salary.Start with GitHubStart with TwitterStart with Stack OverflowStart with Email