The concept of open-source software is not new, and with huge, successful projects such as Ubuntu, Android, and other Linux-related OS’s and apps, I think we can safely say it is a proven model for creating and maintaining high-quality software. But let’s say you’re a novice developer, just getting started as a coder and thinking about whether or not this open-source thing is worth your time and effort.
I’m here to show you why you should seriously consider giving away your time and effort for free, on a regular basis.
Learn By Doing
Picking an open-source project to contribute to lets you take a bite-sized chunk, a specific issue, and just work at at. It won’t be easy at first, but you will get to know the code base and the innards of a product you already know and like. And the coolest part is that these days, you don’t really need permission. That screenshot above comes from Github, which is pretty much the best open-source project repository around these days.
Github uses Git, a “distributed version control system”. In effect, this means you can “fork” a repository – create a copy of it – and work on your own copy. Once you’re ready, you can notify the original project that you wish to submit a patch. So, first you do the work, and then you see if they accept it. If they do – awesome. If they don’t, you’ve hopefully learned something new, and now you can polish your work and try again.
Do Work That Matters
If you’re looking for a specific task, you can check out the project’s Issues page. You can work on a specific issue, or even find an issue yourself, fix it, and submit the fix along with the issue, as shown here:
The screenshot is a bit tiny, but you can see that this developer (dwiash) shared an idea, along with the code to implement it. This makes it very easy for the developer to adopt the code. Heck, why stop there? You can directly contribute to much bigger projects, too, like Ruby on Rails. The sky is the limit!
Bolster Your CV
This screenshot is from a random job ad I found on the 37signals job board. Many ads for technical positions these days ask to see your Github profile, and with good reason. Back in 2010, Jeff Atwood wrote a post in Coding Horror entitled The Non-Programming Programmer. In it, he told of his personal experience in interviewing candidates for programmer positions….who can’t actually program. I’m not talking about bad programmers – I mean people who simply don’t code, period.
But the tech industry is a fast-moving one, and to overcome this tendency and make the filtering process faster and better, many employers now ask to see your actual code history and contributions. Obviously, if all you have is closed-source stuff and you can just say you worked at company X for so-and-so years, that’s something. But how about actually letting an employer look at your Github profile and see all the projects you’ve contributed to, see how many of your patches were accepted, and actually read your code?
Just imagine how much more impressive that would be – an actual proof of competence.
Get Great Freebies
Meet New Coders
This is just one public profile on Github; Josh has 712 followers, and forked over 80 repositories. This guy obviously knows what he’s doing. Working on the same projects as he does, committing code and having him review your work is a great way to start a dialog. If you’re looking to work as a programmer, networking is an important part of getting a job. Get to know the industry from the inside, and show people what you really know.
The reason I like open-source so much is that it is an empirical way to show competence. If you know your stuff, people will see that. That’s better than any polished CV.
Do you contribute to open-source projects? Did your open-source work help you get paid work? Share your story below!