I have been using open source projects for most of my career but never really took the time to contribute back. Using the good old excuse ‘I don’t have the time to do that’, I felt at peace with myself.

I started last year my journey with Ruby and Rails. I was blown away by the community. There is so much available out there for you to use and learn. I felt like I wanted to be part of the group and decided that it was time for me to get my hands dirty. You might think: easier said than done…and you are right.

The challenges when contributing to open source projects can be divided I believe in 3 groups:

  1. I don’t have time
  2. I don’t have any idea
  3. I don’t have the skills/knowledge to contribute.

Let’s talk about each of these:

Time: You don’t need to spend days/weeks contributing to open source. 1 or 2 hours per week, at night or maybe during the week-end instead of watching TV might well be enough!

Idea: You might have some brilliant ideas that you want to open source. In that case, good for you. If not no problem. You can help out with a project that you actually use. You could for instance implement a feature that according to you has been missing…or correct that nasty bug that you found but never cared to report….or simply improve that documentation that is really not that good after all!

Skills: Open source is the best way to improve your skills as a programmer. You are not coding alone anymore. Github makes it dead easy to contribute to open source with the concept of pull request (check also the really good railscasts from Ryan Bates on contributing to open source with github). Contributors from any open source project will be more than happy to review your code. If your code is not that great at the beginning, they will ask you to change it before accepting your pull request…. Take it as a great learning experience! Browsing the code from others will help you immensely into becoming a better programmer.

I started to contribute actively to the open source project monologue which is a blog engine written in rails. I have a few others projects for which pull requests are imminent as well.

I hope this will motivate you to roll up your sleeves and contribute. Remember, even the smallest contribution can be valuable. By contributing, you will become a better programmer. And most important: Contributing is fun and rewarding….you should try. You’ll get the hang of it!