25 May 2021
3 min read
I often see the question, "what is one thing that you wish you had known/ done more of while learning to code or looking for your first dev job?" Thinking about this question today, I can say that my answer is unequivocally, contributing to open source. Allow me to lay out three reasons why contributing to open-source software can accelerate your growth as a developer.
As a lot of new developers soon realize, it can be extremely difficult to find your first job. One of the reasons for this is simply a lack of practical experience. Contributing to an open-source project will allow you to work in an actual live codebase, giving you that experience that employers are looking for.
One of the issues that newer developers face is every project that they have accomplished has been theirs from start to finish. It is an entirely different ballgame when you have to provide solutions to code that is not your own. Open source gives you the opportunity to work on a codebase that you have little to no familiarity with, thus simulating what you will see in an actual dev job.
In my opinion, the best way to learn something is by doing it. There are so many libraries and frameworks that for a new developer, it can be tough to just pick something and stick with it. A benefit of contributing to open source projects is you get exposed to a lot of different technologies.
A benefit of this is realizing that you can solve problems regardless of the tech stack of the project. You may find yourself surprised that you can solve problems in languages or frameworks that you don't even know. This can help to validate what you have learned prior to contributing to open source and will give you the confidence to apply to some of those roles that you thought you may not have been cut out for.
One of the main reasons for contributing to open source is not only the fact that it can make you a better developer, but it can be very rewarding personally. Whether solving a complex issue or a simple minor fix, no matter how small, you're helping to move the project along.
Often, maintainers will post issues where the problem that needs solving is not overly complex, but they simply do not have time to deal with it. These kinds of issues can serve as a good first pull request while also taking something off the plate of the maintainer. This allows you to not only get practice working in a different codebase, but you are also helping the project. It's mutually beneficial.
I understand that it may be intimidating to work with code that is not your own. However, in my experience, most open source projects encourage and try their best to welcome new contributors. The way that I would recommend starting out is this:
Every GitHub repository has an "Issues" tab. I'd recommend starting here first. From here, you can filter the issues to find something that suits your interest. For example, if you are looking for something not overly complex to work on, look for issues with the 'good-first-issue' label. Usually, but not always, the tasks in the issue tab are issues that the project maintainer(s) wants to be done.
Maintainers often add labels or verbiage that states that issues are up for grabs or that anyone can work on the problem if they so choose. Just make sure to look at the projects' contribution guidelines before submitting your pull request. It might be a good idea to take a look at a few of the pull requests that have been merged in order to make sure you are on the right track in terms of formatting etc. Generally, open source projects who want to find contributors try to make it easy to contribute.
There are many more reasons and ways to contribute than I have laid out here. There are several books on the subject if you would like to dig deeper. However, I believe the practical experience that you gain from working in an unfamiliar codebase is invaluable, especially for developers looking for their first role. Getting exposure to a wide array of languages, frameworks, and libraries will help boost your confidence and also add to your resume.
And last but not least, the fulfillment that you get from helping to solve problems is not just beneficial to you, but also serves to move the project along. I hope that this helps to remove some of the fear and hesitation of contributing to open-source software projects. In the end, it benefits both you as a developer as well as the project that you are contributing to.
Check out our Open Source Issues and start contributing today!
See other articles by Kevin
Ground Floor, Verse Building, 18 Brunswick Place, London, N1 6DZ
108 E 16th Street, New York, NY 10003
Join over 111,000 others and get access to exclusive content, job opportunities and more!