Recently someone asked “I’ve completed the turtorials on Ruby, where should I go next to continue learning?” A non-trivial question, perhaps. Much of what you see when you google “Ruby tutorials” is the very basic beginner’s things. These are great, there is much to offer, but then where do you go?
My response is: Practice.
Practice is how we turn the stuff we’re learning into practical skill. A lot of folks just start writing applications and so on, which is really great. But for some, something more directed might be needed.
There are a couple of places I’d like to highlight:
Code Kata is Dave Thomas’s (of the Pickaxe book and Pragmatic Programmer’s fame) list of exercises that one can practice in any language, and do over and over again, trying out new techniques, doing further analysis, seeing how you can get to the end faster, and so on.
Kata are not about creating an end point, they are about practicing the techniques of software programming: testing, analysis, editing, and all those things. Maybe you want to try a different testing technique, maybe you want to try a different test platform, a different editor or IDE, and so on.
Even just working them live for an audience over and over again can be quite revealing to yourself and to your audience.
Dave’s list is pretty great.
Katrina Owen’s Exercism.IO is a bit different, because it also includes feedback for what you’ve written. Similarly to the kata, there are a set of given exercises to do. The difference is that you submit your solutions and have them critiqued by other coders.
You are presented with a framework of tests that your implementation needs to pass, and guidance through the example.
When you submit your implementation, then you’ll start to receive comments on your implementation, how you can improve it, and so on.
As you progress, you are also given the chance to provide feedback to others. In the grand tradition of surgical training: See one. Do one. Teach one.
Recently I viewed Jim Weirich’s talk at RubyConf India 2013 where he showed one of his kata, converting to and from roman numerals, in a public demonstration of how to practice. It’s really a great talk, typical Jim, and well worth watching the entire thing:
I want to highlight the learning page I’ve put up here as well, for a list of other resources.