With Hacktoberfest beginning tomorrow, this seems like a good time to go over how to get started contributing to open source projects. You probably have a sense that contributing is good for your career, but why should you do it? And how do you get started? Github has an excellent guide on participating in open source projects, and I’ve included a handful of other great resources to get you started at the bottom of this post.
What is Open Source?
Open source software has a license allowing anyone to inspect, modify or enhance the source code. The authors of open source projects make the code available for virtually any purpose. Open source projects “embrace and celebrate principles of open exchange, collaborative participation, rapid prototyping, transparency, meritocracy, and community-oriented development.” This ethos is seeping into other industries across the globe, and has changed the software industry, from small startups to giants like Google and Microsoft. There is much more to open source than I can cover here. If you would like a great review of the value of open source to the world, read this article in PC World
Many people contribute to open source because they believe in the open source ethos and enjoy being part of the community. Beginners might not see the value of giving their valuable time to these projects. If altruistic motives are insufficient, there are tons of practical reasons to be a part of the open source community. As a contributor, you are helping build software that anyone can use or repurpose, including yourself. And although I hate this expression, you’re “paying it forward” so that others might want to help you if you should choose to create your own open source software in the future. As a contributor to (or a lurker on) open source projects, you have access to codebases you would ordinarily only be involved with as a professional developer. You can see how software projects are constructed and you’ll be exposed to best practices in programming. There’s really no better way to learn to program than to read lots of well-written and commented code… and then proceed to work on your own part of that code. By contributing, you’ll also have an opportunity to develop your coding resume and make connections with other developers. Open source projects allow newbies to develop their skills on smaller, but still important, issues while more experienced developers can devote their time to the more difficult problems.
How to Choose a Project
There are a number of resources for finding your first project to contribute to (see end of this post), but there are a few things to keep in mind. Take the time to read any documentation provided by the developers. Is it understandable? does it provide clear instructions for contributing? In order to avoid headaches, newbies should probably stick to well-defined and clearly-structured projects at first. Choose a project that interests you and is within the your capabilities. Most project owners of open source projects are friendly, but some are not quick to respond. Look for projects where the discourse if welcoming and responsive. Otherwise, your first foray into open source could turn into a headache.
A good way to get started is to look through Github’s project showcases, which list open popular source projects by topic:
I suggest searching for projects on GitHub, but there are many other places to look. Before you get started, you’ll need a GitHub account and a basic understanding of Git workflow.
I suggest this quick tutorial created by Code School. Once you’re comfortable with how Git works, search GitHub for
is:issue is:open label:easy or
is:issue is:open label:beginner or
is:issue is:open label:up-for-grabs. These will return a list of issues that are open and intended for beginners to tackle. Feel free to comment and ask (short) questions about a project that interests you. If you agree to take on an issue, make sure you follow through and do your best to finish working on it. Once you’ve completed your work on the issue, you can submit a pull request and the project owner will either merge your request or reject it. Don’t feel bad if your pull request is rejected - it’s not personal. Just move on and help out with something else. If you want any more details on contributing on open source, check out the Free Code Camp guide.
Open Source Friday
Open Source Friday is an initiative created by GitHub folks (and friends) meant to get more people involved in open source projects. The goal is to promote regular, sustainable effort on the part of developers and engage employers in the process. It’s a “weekly reminder to give some time back to the projects that power your daily work.” If you want to be a lifelong contributor, consider signing up for Open Source Friday.