How to Get Started with Open Source
How to Get Started Contributing to Open Source
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, but there are tons of other great resources (see the links at the bottom of this post).
What is Open Source?
Open source software has a license allowing anyone ot inspect, modify or enhance the source code. The authors of these 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 world, and has changed the software industry, from small startups to giants like Google and Microsoft.
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. 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 will want to help you if you should choose to create your own open source software.
If altruistic motives are insufficient, there are tons of practical reasons to be a part of the open source community. As a contributor to (or a lurker on) open source projects, you have access to codebases you would ordinarily only see 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, then write your own part of that code. By contributing, you’ll also have an opportunity to develop your coding resume. Making software that’s open source allows 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 may turn into a headache.
I suggest searching for projects on GitHub, but there are many, 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. This 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 work on 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.