Everything You Need to Know About Contributing to Open Source
The world of open source is huge and still growing rapidly. Everyone is encouraged to contribute! It's time to give back — and we've put together a list of what you need to know to make your mark on the open source movement.
"But I can't code!"
Let's clear the air first about what open source contribution can look like. Reading this post's title, your first thoughts probably revolved around writing code. That's great for all the developers out there, but for the rest of us, it feels like a game that we are left just to watch.
This game, however, is one that everyone gets to play! Any open source project has multiple areas where you can help: Documentation, marketing, user experience, QA, website design, organizing the community, translation — and the list goes on!
Think of Wikipedia. The site's backend runs on open source software (which you can contribute code to), but the site would be useless without folks writing, moderating, updating, and translating articles. Adding to Wikipedia content is a perfect example of contributing to the open source world without having to write a single line of code.
We're going to focus on coding from here on, but remember that every point that's to come applies to both coding and any other area of contribution. Keep your areas of expertise and interest in mind as you read on.
Why Contribute to Open Source?
There are plenty of reasons to give back to the open source community. Whether it's a project as ubiquitous as the Linux kernel or a more niche Chrome extension, we all use open source software. None of it would exist or be refined without contributions from the community.
For personal growth, open source provides a great opportunity to increase your skills, stretching yourself on a new language or expanding your abilities in a language you already use daily. Stuck doing a specific type of work every day in Python? Find a project doing data visualization, web APIs, or even a game, using new libraries that your 9-to-5 job would never require.
Each project also represents an opportunity to add experience to your resume. Rookie coders can benefit hugely from promoting projects they worked on, demonstrating initiative, teamwork, and a base of knowledge of the languages and platforms used in the project.
Finally, it's empowering to say, "I helped build that," especially for a young coder just getting their feet wet!
If you're ready to jump into the open source world. you'll need to get familiar first with GitHub, the universal standard for source code repositories and version control management. First time working with GitHub? Working through this tutorial will be essential.
Once your GitHub account is set up, you'll need a project. This site compiles projects actively seeking out help. Another source is the first-timers-only label on GitHub. These are issues that should be easy first victories and ones that a project owner is willing to hand to a newbie. The project owner can probably fix the problem themselves in minutes but is instead using it as an opportunity to mentor someone like you through the contribution process.
If this isn't your first rodeo on a GitHub project, look for the CONTRIBUTING file.This will describe how contributing works for this project, what the current needs are, etc. While optional for the project owner, a CONTRIBUTING file also flags any project welcoming help.
Once you have a project with open issues and start reviewing the existing code and documentation, inevitably you will have questions: How things work, how to reproduce or best fix issues, sticking to existing code standards, and so on. While you might have (or are gaining) a pretty good grip on the hard skills of working an issue, an essential soft skill for this process is communication.
Your first mantra approaching the project's owner or community is: "Don't be afraid to ask questions." You're not going to have the same experience as everyone else, and you might feel intimidated to speak up. A healthy community, however, expects and welcomes all skill levels — and they will want to return your willingness to contribute with any reasonable help and support you're willing to ask for. Remember to make your questions smart ones, though. Give context and show the effort you've attempted to put in, not expecting everything to be explained for you.
Your First Fix
You found an issue, decided to jump head first into it, communicated with the community, and your fix was accepted! Congratulations, you've taken your first step into a larger world!
As we've seen, open source software is important, those who maintain it help keep the technology world turning. By entering this world you're contributing not only to valuable projects and communities but also to your own personal and career growth, a win-win for all!