If you don't know which open source projects you should work on...
"So… got anything on GitHub?"
Some developers light up when you ask them that. They start gushing about their latest project and all the things they’ve learned, and how they can’t wait to try out the ideas they've had in the two minutes since you started the conversation.
Does that sound like you? Or do you feel the blood rush to your face as you shuffle your feet and admit, "well yeah, but I haven’t really worked on anything in a while…" or even a flat-out "no" which is met with an even flatter "oh".
You know that building up a solid portfolio on GitHub will help you land great jobs, but you just don't know what projects you should work on.
Should you pick a popular open source project and try to contribute to it?
Should you create your own project and try to get some traction for it?
What do employers look for in an open source project, anyway?
What if you could change the conversation from "Got anything on GitHub" to "We saw your work on GitHub and really liked it… are you looking for any new opportunities?"
Try these three strategies for jump-starting your open source productivity:
1. Scratch your own itch
You write programs to solve problems, so why not solve a problem that YOU experience?
You don't have to do anything fancy... as much as we'd all love to build a RESTful Rails app with all the ajax-y bells and whistles, that takes time - and a lot of knowledge.
Focus on the core problem, and solve it however you can. Solving a problem that means something to you, however ugly the solution, will get you an important win. You can build on it to make a more sophisticated application... but even if you don't, you can demonstrate to employers that you know how to prioritize and solve essential problems.
The RubySteps mob programming team did this with the mob_rotation tool... it began life as a humble 40-line Ruby script to manage a text file. Since then, we've added a bunch of new features, given it tests and structure, and have had 17 people receive GitHub credit for their contributions.
2. Set a learning goal, and build it
Not every open source project has to solve an immediate problem. Sometimes you just need an outlet for learning a new concept.
Similar to "scratch your own itch," you can scratch a learning itch... take something you want to learn more about - like how Ruby handles blocks - and play with your ideas.
Experiment, try stuff out, work in small steps... and then share it on GitHub. You'll build up a portfolio of experiments and ideas, and when it comes time to interview you can talk about what you've learned.
3. Contribute to an existing open source project
If the first two strategies don't seem "real" enough to you, then go with the tried-and-true approach of contributing to an existing open source project.
You can always find something to work on... just take a look at the list of issues on GitHub and see which match your interest and abilities.
Most open source projects could do with better documentation, so starting there can help you get your foot in the door. You don't have to know everything about the project - in fact, your unfamiliarity can give you a great advantage in writing documentation. If you take the time to figure something out, then your documentation will certainly help people out in the future and will serve as an excellent contribution to the project.
If you want to contribute to an existing open source project but can't find one you feel comfortable working on, why not pick one of the RubySteps open source projects? We can help you find a task appropriate for you, and give you the support you need to add your name to the contributors list.
Of course, these strategies don't mean anything if you don't put them in to action... so pick one that appeals to you, and go for it!