'Open (Source) Sesame'
TL;DR:
Contributing to open-source makes you a better programmer, so just do it. If you don’t know what to do, start a streak and hold yourself to it. Soon you’ll be in the flow.
“Can I tell you something? Your Github profile kind of sucks.”
A friend of mine said this to me. I write code often! I push to github at least 5 days a week! Was he wrong? No. I only work with private repos.
My public profile sucks.
It’s difficult to break into open-source programming. I think I’m starting to crack the shell now. After bluntly insulting me, Ryan recommended what he called “The Github Challenge.” The goal is to contribute to something open-source every day, extending the streak shown on your github profile.
I’m at 12 days now, and will hit 13 today.
I have always wanted to push some helpful open-source somethings, but never known exactly what. Looking for at least one commit per day has been a good start. In that last 12 days, I’ve:
- built my first grunt plugin
- published it to npm
- updated and republished it when it wasn’t working
- pushed up my nodeschool.io code
- built out and added features to an AngularJS + Firebase demo (live demo here)
- added my first gist (and learned that gists don’t count toward the streak)
- pushed an old bit of heavily commented html+css+javascript+jquery boilerplate
- and taken the first step toward an AngularJS CMS demo that I’m building out of spite
Sure, some of those days I just updated a Readme to better explain it, or found some other BS commit to keep the streak going. But I’ve also seen a spike in productivity and touched a variety of new tech.
Writing and contributing to open-source projects will make you a better programmer. Working in the open forces you to raise the bar for your own code. Contributing to larger projects is a great way to raise coding and testing standards. You’ll also get some experience building in a team environment.
Get involved in the direction of projects, form your own opinions, learn some best practices, and get exposure to what all this open-sourcey goodness is all about!
Another thing: when I’m looking at new-hires, I always look at their github profiles. I realize now it may have been hypocritical of me… but hopefully not for long. A slim profile doesn’t look bad, but when hiring, more information always helps confidence in a candidate.
Going forward, I have some loose goals. I’d like to contribute in some different languages (ruby, python, golang, haskell). I want to build a ruby gem, a jekyll plugin, a jquery plugin, a bower component, a javascript library. I use these pieces everyday but know so little about the anatomy of them, and building that grunt plugin definitely taught me some grunt and npm background that I should have had a few months ago.
An easy way to get involved and some good reading if you’re looking for more:
- Code Triage sends a daily email with an open issue on whatever open-source project you sign up for
- Why should you work in the open
- You (yes, you!) should contribute to open source
- How to maintain a successful open source project
Dive in now, code-monkeys!