Contributing to open source software is a gratifying experience and an excellent opportunity to distinguish yourself. It’s a rewarding way to keep your skills sharp, an avenue to gain and share experiences in all aspects of software development, and a source of inspiration and support from like-minded people worldwide.
So why don’t more developers participate? Perhaps it’s because of a lack of dedicated time or because it seems too complex to tackle an issue in a foreign project. In general, contributing to open source projects can be initially intimidating. My first time contributing to open source was nerve-wracking as I made it during my course on Front End Development at Udacity. I had just learned about package management and the difference between `dependencies` and `devDependencies`; I noticed a package in the course repository was installed twice and made a pull request to remove it. As a fledgling developer, I was beyond nervous, but the excitement of immediately applying what I learned pushed me over the edge to give it a shot. By the time you’re done reading, I hope you’ll be as excited I was in 2015 to make your first contribution to the open source community!
Why should I Contribute?
Before getting into how — let’s talk about why and touch on some of the benefits of contributing to open source.
Contributing to open source oftentimes requires diving into the source code of a project. This helps you understand the inner workings of a project and its technologies at a deeper level. As a result, if there’s poor documentation surrounding a project, you’ll become more comfortable finding the answer in the source code (and even make a pull request to fix that documentation 😉). There may be even opportunities to apply newly learned patterns and best practices in your projects!
Open source contributions are opportunities to grow your skills outside of the confines of the day-to-day problems presented in your current role. It’s also an outstanding way to display your skills to your current employer or potential employers. Your contributions are a public and tangible indication of your skills. It’s also a signal of traits employers and teammates look for — working effectively in an existing codebase, being passionate about technology, and being actively involved in your industry.
Perhaps you’ve run into a bug or a missing feature with a project you use regularly. Think about all the hours that have gone into creating and maintaining the project. This is an opportunity to give back and to improve a project you currently use! Opening an issue or submitting a pull request to fill that gap will benefit the broader community and improve the developer experience for all users. Your contribution may even save someone a lot of time or effort. How awesome would that feel? Wouldn’t it also be great to see your name among the list of contributors to that project?
Contributing to open source is a way to give back in return for using the free software we use daily — even NASA uses open source projects! Many open source projects are maintained and managed by volunteers. Giving back some of your time and skills is the best way to help these projects survive and thrive. Lastly, getting involved with the open source community is a great way to make connections and collaborate with developers worldwide. Sometimes these conversations on Github turn into real-life connections that can lead to exciting side-projects, mentor/mentee relationships, or even new job prospects.
How Do I Get Started?
The first contribution is likely to be the most daunting, and it can be hard to figure out where to start. Here are some pointers to help make your first contribution — but first, a cheesy quote.
roughly translated to: “A journey of a thousand miles begins with a single step”
The best thing to do when looking for a project to contribute to is to look at the projects and libraries that you use the most frequently. This is usually a great place to start because you have first-hand knowledge of potential bugs or areas to improve on. Try and see if you can make that patch yourself; you and your co-workers may even benefit from this directly! Personally, I’ve been spending a lot of time on React Testing Library’s documentation, so I’ve been looking to make more frequent contributions by improving the documentation and adding examples where I can!
If you’re thinking, “Great! I use React every day, let’s start there!” for individuals just getting started or first-time contributors, a project like React or Redux may not be the best introduction to open source. I recommend looking for projects with issues labelled “First Timers Only” or “Good First Issue.” Here are some resources that may help you find those types of issues:
- First Contributions — A repo that acts as a tutorial to help first-time contributors go through the contribution workflow. You’ll have contributed to the project after completing the tutorial!
- CodeTriage — Pick your favourite repo and receive a different open issue in your inbox every day; simply sign up with your Github account.
- Good First Issues — This site is perfect for first-time contributors as it aggregates the latest issues labelled with “Good First Issue;” simply filter by language, repository, and issue label.
- opensource.guide — Check this out for more in-depth details and more great resources like the above to help you discover projects to contribute to!
After finding a project and an issue, make sure to check the repository’s CONTRIBUTING.md file for contribution guidelines before tackling an issue and submitting a pull request! This file will let you know what kind of contributions the project will accept and other relevant contribution guidelines such as code of conduct, best practices, signing a Contributor License Agreement, and steps before submitting a pull request, i.e. running test suites or formatting and linting code.
Another tip is to start small — contributions don’t strictly have to be code either! A great place to start is documentation; this is an excellent low-effort and high-value area to contribute to. If you’ve noticed a typo or something missing in the documentation you’re reading every day — take the opportunity to fix it up! Everybody loves great documentation.
You can also dive into the world of open source through participating in this year’s Hacktoberfest! Interesting fact, Hacktoberfest 2018 is how I got myself more involved with open source software! So, what is it? Hacktoberfest is a month-long celebration of open source software run by DigitalOcean, aiming to change the world one pull request at a time. Head over to their website to learn more and sign up with your email!
If the benefits listed above weren’t enough to convince you to make your first contribution — Hacktoberfest gives out a sweet limited edition T-Shirt and stickers for the first 75,000 individuals who make four Pull Requests! Make sure to look for the “Hacktoberfest” label on the issue to ensure it counts towards the four pull requests. Be sure to check out the Hacktoberfest values as well before participating!
“Hacktoberfest is all about encouraging meaningful contributions to the open source ecosystem — for beginners and veterans alike.”
Finally, don’t hack alone! RSVP to Procurify’s Hacktoberfest themed meetup on October 15th. We’ll be gathering to learn more about open source and how to contribute and participate in Hacktoberfest together by helping everyone make a pull request to an open source project!
I highly encourage and recommend everyone to get involved with the open source community and make your first contribution! It’s challenging, great for personal and career growth, and most importantly, it’s a fun way to give back to the community! Don’t forget to RSVP to Procurify’s Hacktoberfest themed meet up to gather and participate in Hacktoberfest!
A great way to start with open source is to participate in Hacktoberfest. The best way to stay actively involved in the open source community is to make consistent contributions that improve the software you rely on and use regularly. You may even become a core contributor to that project one day!
I’m looking forward to all of your contributions, good luck and have fun!