For the first time in many years I am learning a new programming language – Ruby. I started about 6 months ago and it occurred to me the other day that they way I go about acquiring knowledge now is so much different from 1999 when I was getting into Java.
For me the standard process was:
- Buy Idiot’s Guide or equivalent
- Read book front to back, stopping very occasionally to try out some tutorials
- Implement a pet project in my spare time, and start buying good reference books
- Start to specialise and buy books about particular parts of the language I needed at that point in time.
This practice worked well for me a number of times (Fortran, Pascal, C, COBOL, PowerBuilder, Delphi, VB and Java). The only problem was, it was about step 4 where I actually started to get productive. Still, if it ain’t broke, why fix it?
Well, for a start there was a limited selection of good Ruby and Ruby on Rails books. I used the excellent Agile Development With Ruby on Rails to get started, but before I had even gotten too far in I was already branching out to write some code and really never got back to it. Why would I, when I writing code was so much fun?
Of course, I kept coming up against blind spots in my knowledge. So I went to the web and started searching. Inevitably I found a blog item somewhere with my exact problem and at least one potential solution. Good, but still not that satisfying.
Then I found Railscasts, an episodic vodcast to help you learn Ruby on Rails. Forget that it is about Rails, the concept just works. Nothing beats watching someone code and having them talk you through the process. This is the exact format of the episodes, and thanks to some nice technology (you get to see the ‘hidden’ keystrokes in a Growl pane throughout), Ryan’s great technical knowledge and the tasty topics covered it is fair to say I am hooked.
Imagine having a guru in your company talking through best practice techniques weekly. Awesome. In addition, even just watching how Ryan Bates works is sometimes interesting.
So, my new learning process is:
- Watch video
- Play with code
- Go to step 1
For me, this has resulted in me not only being more motivated (“I’m writing code already!”) but my retention of the information is much better since I am implementing as I learn.This isn’t an isolated experience for me. In addition, Luke from Shine put me on to a YouTube video on how to use Quicksilver (a must have for Mac users). In a short period of time I learned a couple of really interesting tips that wouldn’t have seemed so useful written down in a book.
Another interesting example was when I was searching for more information on a Rails plugin called Chronic. A great package to parse language into dates (“Yesterday”, or even “last monday at 2am”), but it doesn’t have a lot of support out there in the blogs yet. I did, however, come across an entire video presentation that Tom did to a Rails User Group. Through that presentation I got an overview of how the entire plugin was built in a much shorter time frame than having to read all the code ‘cold’.
So I guess the question is, will we even need the Idiot’s Guide to X in the future? Maybe all we need is a basic introduction, get playing and go back and watch the videos as you need them. This seamless blend of learning and experimentation seems to me to closely match the learning process rather than the sterile chapter by chapter rote learning approach.
So what do you think? Are you using video to learn instead of books? Has video killed the Idiot’s Guide?