Introduction
No matter if you're brand new to development or have been doing it for years, open source development can seem scary. I know when I started out as a web developer it definitely seemed that way to me.
But, after getting over the initial fear holding me back from wanting to try and contribute to other projects, I found open source development hugely rewarding and fulfilling. In fact, I personally think that working on open source projects (such as building my own packages, or contributing to other peoples' projects) has been one of the best learning tools I've had. I feel that with each pull request I make to a project, I improve just that little bit more as a developer.
If you're interested, I actually wrote an article about 5 Lessons I Learned from Building My Own Laravel Package that you goes into a bit more depth about the main takeaways that I learned from building Laravel Exchange Rates.
In no particular order, here are 8 benefits of contributing to open source projects:
1. Learn in a Practical Way
Open source projects are a great way to learn.
When you're learning, it's easy to get stuck in the "this is what I know" mindset. You might look at a problem and say, "I don't know how to solve that." But when you're contributing to an open source project, you have access to all the knowledge of other contributors who've solved similar problems before in other parts of the code. Instead of getting stuck in “I don't know how," your brain starts looking for “how can I use what I already know about this area of code/systems/etc., along with everything else I've learned over time?". And then things start falling into place!
This makes contributing to open-source a great alternative to improving your development skills, rather than just reading a blog post or watching a video.
2. Learn to Look From Other Developers' Perspectives
Contributing to open source projects is one of the best ways to learn how to look at a problem from different perspectives.
When you're working on an open source project, you're likely going to be working with other developers who have their own unique approaches, and this can help you see problems from a totally different angle.
You might find that your teammates don't approach a problem in the same way as you do—and that's okay! You can learn from their approaches and what they bring to the table, too. Likewise, it's also a great way of you sharing your own knowledge with other developers working on the project.
3. Learn New Skills, Tools & Technologies
Contributing to open source projects is a great way to learn new technologies and tools. For example, you may discover a new programming language or framework that you hadn't previously heard of.
You might even find an entirely new way of doing things that changes the way you approach programming!
For example, before I contributed to artisan.page by James Brooks, I had never used Nuxt. But, by making a few small PRs, it gave me the opportunity to delve into using Nuxt and gave an insight into how it works.
4. Build Confidence
One of the biggests benefits (in my opinion) of contributing to open source projects is that doing so helps you build confidence in your own abilities, especially if you have low self-esteem or think that you aren’t good enough.
When working on a project, it’s easy to see how much progress you are making and get an understanding of the impact your work has on others, which will help boost your confidence. You can also see your code being used by other people, so you know that it has value in the world and all those hours of hard work haven't been wasted. Having other people appreciate what you do as well can also be incredibly rewarding and give a sense of validation for all those long nights spent slaving away at the keyboard!
5. Build Your Reputation
Contributing to open source projects can help you build your reputation, your resume and even your personal brand.
First of all, contributing to open source projects gives you a chance to show off your skills. You can show potential employers that you have the skills needed to be a good developer or designer by sharing code on GitHub. If you are looking for a job, this is a great way to demonstrate that you are an active member of the community and want to share your knowledge with others.
Secondly, contributing to open source projects can help build your resume. For most of us, the projects that we work on at our jobs are closed-source and so we don't usually get to show off the code. So, by working on open source projects, you can have a platform (usually something like GitHub) where you can show off your skills as a developer. In fact, this is usually how I find new projects to work on as a freelancer. I'm usually contacted as a result of someone coming across one of my packages or contributions online.
This can also be helpful if you are applying for jobs but don't have any formal work experience yet; such as, if you're applying for first job in web development. It can help prove that you have an understanding of working with code on projects!
Contributing to open source projects can also help to build your personal brand and credibility online. If people see that you've contributed code or documentation for different projects throughout the year (or even just one), then they'll see that you're serious about helping others succeed in their own career goals!
6. Learn to Understand Feedback
When you contribute to an open source project, you're giving back to the community at large. Not only does this help you hone your skills, but it also allows you to get better at receiving feedback. You'll be able to see what works and what doesn't work for other people, and use that information as a foundation for improving your own work.
You also need to be able to handle constructive criticism with grace if you want any chance of success in this line of work. If someone points out an issue with your code or an improvement that could be made on it, don't just walk away angry or hurt—take their advice and make sure it works for everyone else involved!
And last but not least: Don't take personal attacks personally! It's easy when someone puts down something you've worked hard on (or even something they've never contributed to themselves), but remember that it isn't meant as a personal attack on YOU—it's just an opinion!
7. Meet New People
The huge benefit of contributing to open source projects is that you can network with other developers. This means that you'll meet new people and make friends, collaborate with other developers on projects, find mentors and have an opportunity to learn from each other.
In addition to networking and making friends, many people enjoy contributing because they feel like they're giving back to the community. After all, the programming community relies heavily on its members for support. And when someone gives back by working on an open source project (which is itself free), they're doing their part to ensure that this cycle continues indefinitely.
Personally, I love the feeling of knowing that some of my packages or contributions to other projects have been used in commercial systems around the world. Open source development has given me a chance to speak to people around the globe that I wouldn't have ever had a chance to before.
8. Improve Your Communication Skills
Most open source projects are collaborative efforts. You will be working with other people, in some cases, hundreds of them. Being able to communicate effectively is an essential part of this process.
You can learn how to explain things to others: If you've ever tried explaining something technical to a non-technical person, you know how difficult it can be. The more experienced you are at explaining things clearly and succinctly, the better off you'll be when communicating with other people on an open source project.
You can learn how to ask for help: It's easy for any developer or project leader who finds themselves in a tough spot where they need extra help from another contributor - whether it's too much work or just not enough time - but asking for help is still hard! By contributing regularly and engaging with other contributors in a positive way, you'll get better at knowing when someone might have time or resources available that could benefit your project. This leads directly into our next point...
You can learn how to give feedback: There are many kinds and levels of feedback available in any community; from simple requests ("I wish there was an option here") all the way up through providing constructive criticism about code quality or architectural decisions ("Your approach doesn't scale"). Some people don't want any kind of feedback, but in my opinion, providing and receiving feedback often is a great way of improving your communication skills.
Conclusion
Hopefully, this post should have highlighted some of the benefits of contributing to open source projects as a developer.
If you enjoyed reading this post, I'd love to hear about it. Likewise, if you have any feedback to improve the future ones, I'd also love to hear that too.
If you're interested in getting updated each time I publish a new post, feel free to sign up for my newsletter below.
Keep on building awesome stuff! 🚀