Open source software is everywhere, powering applications and gadgets of all sizes, all over the world. If you work with technology, and specially, if you are a programmer, you are certainly using a wide range of open source software on a daily basis. You probably used Github before to check out some code or to find out how to use a certain library / API. But have you ever asked yourself why so many people around the world dedicate so much time on building and contributing to open source projects? Why all the fuss? Is open source just a matter of code charity? In other words, what's in it for you?
This post will walk you through 7 concrete (and sometimes even selfish) reasons why contributing to open source is excellent for you.
7. Giving Back
The first reason to contribute is, indeed, a moral reason more than anything. Open source software is powering your work every day. It makes you more productive, enabling you to focus on specific problems instead of reinventing wheels all the time. This might sounds a bit "altruistic", but the truth is that only active users of a given project are able to do meaningful contributions, and you are one of them! Take responsibility.
6. Making Friends
You would be surprised by how many open source projects have a super amazing community of contributors, and how friendly and helpful they can be. Getting involved with open source will help you making new friends, improving your networking circle, which brings only benefits to your career.
5. Learning New Things
Contributing to any project that was not created by you is a fantastic learning experience. You will need to leave your comfort zone, and even if you choose a project in a programming language that you are extremely familiar with, there will be tools and implementations that are still new for you. Don't be scared; you will gain experience and new skills.
4. Making *your* Software Better
A recent survey about open source software usage shows that more and more companies are giving back to the OSS community - 64% of respondent companies said they are actively contributing to open source projects, which represents an increase of 14% since last year's survey. The research also states that open source software is now the default choice: 66% said they will first try open source solutions before any other options.
Do you believe this is purely out of altruism, to help the community? Well, actually... with such a high demand for quality open source software, contributing is not only a matter of doing the right thing (giving back), but more than ever, a way of making sure your derivative work has a solid base on top of which you can build your product and make money out of it. Everyone benefits from better software.
3. Free Code Reviews
It might sound slightly scary to put your code out there to be reviewed by strangers, but believe me, there's no better way to challenge yourself to do your best. As I tell in the story of my first pull request, contributing to someone else's open source project is not as trivial as open sourcing a pet project you wrote - you need to follow certain guidelines, and you will certainly feel motivated to do your best work ever, considering it will be exposed for review.
As bonus, you get free code reviews from awesome people who will dedicate some of their precious time to check your code and maybe suggest some nice improvements. This is, in my opinion, one of the best ways of getting better as a developer - we need to get out of our comfort zones and let other people show us their perspectives too. Otherwise, you'll only keep doing the same things, in the same ways.
2. Gaining Visibility
Even though your Github profile can't replace a good curriculum, have no doubt: employers and recruiters will have a look at your Github activity. It's a strong addition to anyone seeking a career as a programmer, not only because of the code itself, but also for showing that you work well in teams and you care about giving back - you are engaged and you love so much what you do, that you also do it for free, for the community. Other great opportunities can come out of that - speaking engagements, partnership and sponsorship possibilities, you name it - benefits of gaining more visibility in your field and in your community.
1. It could change your career completely
If based on the previous reasons you still have any doubt on how open source could change your career for the better, maybe a real-life case can finally convince you.
Marc Ypes, a friend from AmsterdamPHP and core contributor to the CakePHP framework, shared with me his awesome story with open source. Marc works now as software engineer at TRUE, a local hosting company in the Netherlands. But it was not always like this - he's been working in this position for about 3 months only. Before that, Marc worked in the car parts business, for more than 20 years. Open source changed his career and his life.
It all started with his company's website - he wanted to make some changes, so he asked for help from a friend who knew PHP. That was his first experience with programming. A few years later, already in his own company, he used PHP once again to automate some repetitive tasks he had to do weekly. It was not long after that when he had an idea for a project that would require creating a new website from scratch - that's when he started using the CakePHP framework.
The rest of the story might sound quite familiar for some people, including me - he needed a new feature, and after chatting with the project contributors on IRC, he was encouraged to submit a patch. This was his first contribution to an open source project, and since them, Marc got more and more engaged - a couple years later he was officially part of the core team of CakePHP. And the most interesting part is that he did all of this in his free time, as a hobby.
Everything I know is from contributing to open source projects
Eventually, a career path change was inevitable; this year he made the big change and now he's a happy and well employed PHP developer. Here is a final message from Marc for people who are getting started with open source:
Choose a project you actively use. Larger projects are great because they have more maintaners and other contributors that can help you get set up - I am so grateful for all the help I got from the CakePHP community when I was starting. It's really rewarding to see all I have accomplished with open source.