If you’re a developer, you’re probably aware of the benefits of open-source technology (software that’s licensed, publicly posted, and free for developers to use and contribute to). One of the big ideas in the open-source community is that it’s good for all developers to give back. In return for using software that others spent time writing, you can contribute to the code to help the rest of the community.
But doing that may seem intimidating and overwhelming. Many developers put it off, saying they will start helping out when they can offer more.
I’m here to tell you that open-source work doesn’t need to be scary. It doesn’t need to be intimidating. It doesn’t even need to be in the form of writing code. The opportunities are broader than you might think.
Here’s my quick guide to three different levels of open-source contributions that you can make.
1. Start Small: Join the Conversation
The easiest and quickest way to get involved in open-source projects involves no code whatsoever. All you have to contribute is your thoughts.
Joining in the conversation involves prompting discussion, offering your opinions, and encouraging others. It can take the form of posting issues in a repository for a bug you’ve encountered. Even if you find an issue that is outside of your skill set, you can still help by asking clarifying questions. This helps the person who will eventually solve the problem by providing a better understanding of what issues they need to fix.
Another option is to perform code review. If you find an open pull request for a fix, but none of the repository maintainers have had time to review it yet, you can take the time to get the process started. Pull up the coding guidelines for the repository and make sure the added code meets those standards. Suggest ways to improve the logic of the code. This helps everyone involved. The poster gets feedback even faster, and the maintainers have less work to do when they get to the request.
These contributions may seem small, but they can be incredibly beneficial, and they help increase your comfort level with getting involved in this virtual space.
2. Help Out: Contribute to an Existing Project
This is what most people think of when they imagine open-source contributions.
Here are the basic steps:
- Find a project that interests you, preferably in a language you know.
- Look for an issue that is available for work.
- Make sure to ask any clarifying questions about the issue.
- Fork the repository and make your changes.
- Submit a pull request and wait for review.
- Once your code is reviewed, it’s merged in.
And there you have it! Code that you have written is now in the public domain, available for anyone and everyone to look at, benefit from, and continue to improve upon.
But how do you pick a project? There are so many open-source projects out there! How could you possibly narrow it down to one that’s worth your time and effort?
Well, thankfully there are a few criteria you can use to narrow down your search.
I was not kidding when I said you should find a project written in a language you know. Learning a new coding language is challenging enough, and trying to parse through an entire code base of that new language is likely to overwhelm and frustrate you.
That’s not to say you can only work in languages that you’ve mastered. Let’s say you’ve been teaching yourself Go in your free time. You’ve done enough tutorials to say you’re dangerous, but you want to keep growing. Instead of forcing yourself to work on a personal project that doesn’t excite you, you could find an open-source project that is written in Go and make a contribution to it.
This has the benefit of letting you flex your Go skills. It also exposes you to code that was written by more experienced Go programmers and provides you with better context for what a larger Go project could look like.
Lists are the best
There are many lists that have been designed and maintained with the intention of connecting developers to open-source projects that match their skills. Searching through these lists can help you narrow down your search and find a project where you can contribute.
Here are some lists that I’ve found helpful:
Watch those tags
Most open-source repositories have a specific tag or set of tags that they use for newcomer-friendly issues. Tags like “Good First PR” or “Needs Help” allow you to filter projects for issues that would be more manageable for someone who’s just starting out.
3. Go Big: Own Your Own Project
This is obviously the most work-intensive option in this list, but it also provides the most freedom. When it’s your project, you get to choose everything from what language you’re working in to the tech stack, to what the code actually does.
You choose where to host your repository. You choose the license for your project (which determines the contexts where people can use your code).
It’s even your choice to decide how actively you want to maintain the project! Do you want to be very involved? Block off a few hours a week to engage with your user base and work on improving your code! Would you rather post it and forget about it? Just add an MIT license and set it up on GitHub! The choice is entirely up to you.
Open-source software is a great tool—and not only for you as a developer to use in the software you write. It also helps you learn and grow.
I encourage everyone who’s thought about contributing to give it a shot. It makes sense to give back, and it will help you build your confidence as a developer.