Many programmers, both new and seasoned, have heard the advice:
“You should contribute to an Open Source project!”
Despite being solid advice, there’s less information on why contributing to Open Source is a good idea, particularly for women, and then even less on how to go about finding a project and contributing. Github, the most well-known repository for open-source projects is rather daunting to new visitors. Thankfully, Camille spoke to WriteSpeakCode participants on how to participate and why.
Open Source needs more participation from women and minorities. Women make up only 3% of the Open Source community, but those who participate have made a significant impact. In another post, we’ll go over some of the barriers to entry for these groups. WriteSpeakCode is about becoming more visible in the tech community, and participating in Open Source is a great way to do that. Open Source appeals to a nerd’s needs to solve problems, and there’s a “warm fuzzy” feeling you get when adding your contribution. If you’re a “joiner” then Open Source is definitely for you. It’s all about joining in and being a part of something. It’s also easy to get started. Downloading the codebase for a project is only a few clicks, and anyone can comment on bug reports and add to project wikis.
If the actually contributing part is easy, the hard part is finding a project to contribute to. As I mentioned before, github can be kind of overwhelming. There are so many projects listed and languages mentioned. The first thing to think about when finding a project is your goal for working in Open Source. You might be looking to experiment with different languages. Perhaps you want to make a contribution to the community or contribute to a project that resonates with your values. You might just be looking for more visibility, that’s fine, too.
Once you know your reasons for contributing, it’s easier to find a project that fits in with your reason in mind. Here are some ideas for finding a project that interests you:
If there is a particular Open Source software, framework, or other tool you use frequently, you might want to consider contributing to that. You may have even already noticed bugs that need fixing!
- If you’re really into the warm fuzzies and want to support your favorite cause, you can find community driven projects that need your help on Code Montage.
- Sites like Open Hatch and Code Triage list projects with outstanding issues that need support or fixing.
- More resources for finding a project here: http://bitly.com/bundles/o_14mk2i9o5s/4
Now you found a project, so it’s time to participate! Github can be a little daunting at first, but CodeSchool provides this amazing free interactive tutorial to get you started: try.github.com
Remember that you’re not required to contribute code. There are other ways to participate, like adding to documentation. But if you want to code, then by all means code!
Another way to contribute to the Open Source is by starting your own project! It’s easy to do on GitHub: https://help.github.com/articles/create-a-repo
One thing to keep in mind if you’re starting your own project is that you will need to add a license. I’m not a lawyer, but I still think it’s a good idea to add a license so that your code can be freely used, modified, and shared—which is the heart of Open Source. Here’s more information on prefab licenses you can use (since you’re probably not a lawyer, either):Bit.ly/OSSLicenses
At WriteSpeakCode, we were challenged to find and contribute to an Open Source project on code day! Here are some of our contributions:
- Commenting on a ticket in a Rails repository that lead to the ticket being closed.
- Working on an exclamation point monitor so you don’t use too many!!!!!!!!!!!
- Fixing a typo on code used to calculate business days.
- Contributing to a project using symbol fonts to create maps by adding a SASS feature for adding colors.
- Cleaning up confusing documentation for OpenCity.
- Fixing a broken link in the Etherpad Lite readme.
- Fixing documentation and adding links for a WordPress plugin.
- Testing bugs and adding documentation to Normalize.css.
Now it’s your turn!