Lucy Wyman, a software engineer in test from Puppet Labs, gave a talk at OSCON in early May on a topic that's near and dear to my heart: "How Can I Contribute?"
The first question you might be asking if you're new to open source is: Why should I contribute? Here are several answers:
- A practical reason is to avoid reinventing the wheel. Why develop your very special operating system from the ground up when you can use the Linux kernel as your base?
- A more touchy-feely reason is to give back to a project you love. This is certainly what got me into contributing to open source in the early days and kept me contributing for many, many years. If you're using something every day, why not give back? When you contribute to something you already know and love, it can have so much more meaning, because you know how the tool is used and the good it does for you.
- Being part of an open source community opens you up to a broader range of people to interact with. You can learn from people with similar skills, but different backgrounds.
- If for no other reason, it's a great way to learn something new.
If you feel you can't contribute because you're scared, or you feel like you have nothing to contribute, or you don't write code, or you're just a "fill in the blank here," don't let this stop you! There are lots of ways you can contribute; you probably have at least one of the skills open source projects need.
5 ways to contribute
- Filing bugs: Remember that bugs are not just something wrong with the code; they are also suggestions for improvements in code and user experience.
- Writing documentation: This doesn't mean writing long guides—it could be as simple as adding a README to a project that doesn't have one. Adding comments to code is also a way you can help document the product and make it easier for others to contribute in the future.
- Answering questions: Be on IRC and help people who pop in. You can also help on GitHub, StackOverflow, and Reddit.
- Educating others: Give a talk about your favorite project at a conference or meetup.
- Designing: So many open source projects need help creating a clear design or logo.
Are you ready to find a project that's looking for contributors? Try one of these sites:
If you're an open source contributor and have other suggestions for new contributors, or are just getting started and have questions I haven't answered, please share your thoughts in the comments.