Last week I attended The Linux Foundation Open Source Summit North America in Austin, Texas. It’s great to see a large group of open source enthusiasts come together to share ideas and and meet each other in person. (I gave a talk there, too.)
A question I hard a few times and was asked was, how do I get started in open source? It’s a great question because getting started in open source can be difficult. I wrote this post to give a few pointers from my background that I think can help you get started. Contributing to open source is a rewarding effort that can teach you and others so much.
I have been around open source for a long time. I remember dual booting Windows 98/2000 with Red Hat. I remember getting Ubuntu CD-ROMs in the mail. I did not become an open source contributor until a few years later when my interest in natural language processing began to spark when I was exposed to large amounts of unstructured text through my work.
I started as a user of Apache OpenNLP and then ran into cases where I needed new functionality or customizations. With Apache OpenNLP’s business-friendly Apache License, I was able to make those customizations. Once I was more comfortable making those changes, I was ready to start committing some of the changes back to the project. Now, I’m the current chair of the Apache OpenNLP project but that’s just a formality. It’s community developed project where all contributions are important.
This process was actually a lot harder that it probably comes across when reading it. There were a lot of things I did not know, and that leads to hesitation and uncertainty. Those unknowns still exist for someone new to open source and looking to get involved. But how do you get past those unknowns and feel comfortable regularly committing to open source?
Find your passion
The first (and most important) thing is to find an area in which you are passionate. If you try to get started in an open source project simply to contribute, you will have a hard time. Pick an area in which you have some interest – maybe it will directly benefit your work, maybe it will benefit your resume for the job you want, maybe it’s just an area you want to learn more about. Don’t let unknowns get in your way before picking an area.
Find a project in that area
Once you have decided on an area, do a survey of the open source projects that are available. You probably are already aware of a few if it’s an area of interest to you. Look at each project, whether it’s on GitHub, GitLab, or some other open source code sharing service. Look for things like, is the project active, how many contributors are there, are there open issues, are there open pull requests? The goal is to get an idea of how active the project is. For a newcomer to open source, an active project can help make getting started earlier.
Get involved in the project
Now that you have a project identified, clone the repository. Set your computer up to be able to build and run the project. Find the project’s documentation and study it. Learn as much as you can about the project. Immerse yourself in the activities of the project – join project mailing lists, Slack channels, watch YouTube videos. Those resources are available for a reason and will help turn some of those unknowns into knowns.
When you’re comfortable, look at the project’s open issues. A lot of open source projects will label issues that are good for first time contributors. Focus on those issues and read them. Is one in an area you feel comfortable getting started? (Documentation issues are a fantastic way to get started because those issues are low risk to the project, help you learn about the project, and give you an easy way to learn about the project’s code contribution process.)
Now you’re ready to go! Get the issue assigned to yourself and get to work! Don’t be afraid to ask the project for help – that’s what the other contributors are there for and they will be happy to help you. However, for your benefit, try to answer questions yourself first. It will help you learn and it will help you find other places where things (like documentation) can be improved.
Once you get that first contribution out of the way you will be ready for your next contribution! It will all seem very easy from then on and you can call yourself an open source contributor!