Naildrivin' ❺

➠ Website of David Bryant Copeland

I Heartily Endorse Ruby Off Rails

Jesse Wolgamott has launched a training course called Ruby Off Rails, which is geared toward helping existing programmers learn Ruby first, and not Rails.

I heartily endorse this and highly recommend this approach if you want to “get into Rails”.

When I first heard about Rails, I bought a copy of Agile Web Development with Rails and was instantly confused as to what I was looking at. What were all those @ signs for? Why are there pipes after the do keyword? Where were all these methods coming from?

The answer was: Learn you a Ruby.

I am not the type programmer to just copy/paste code I don’t understand. I don’t like “magic1”. I want to know, or at least have an inkling of, how the tools I’m using work. And there’s no hope in understanding Rails without understanding Ruby.

I sold the book, and, using a Ruby book available on Safari, started to learn Ruby the language. I ignored Rails, and didn’t even think about it. Instead, all of the command line apps that I would historically write in Perl, I wrote in Ruby. I wrote a lot of Perl in Ruby at first2.

Eventually, I figured out how the language worked and, when it came time to do some serious Rails programming, I wasn’t surprised by much. I mostly just had to learn to navigate the documentation. Even when I didn’t know how something worked, I could usually have a guess, and I was usually right. When I wasn’t, I learned something new about Ruby.

It probably wouldn’t have taken so long if I’d taken a more focused approach like what Ruby Off Rails is doing (and, LivingSocial’s Hungry Academy as well, which starts with just Ruby before moving to Rails).

If you’re tired of slinging Java/C#/PHP, but can’t seem to get focused to learn Rails or Ruby, Ruby Off Rails seems like a good way to go. It’s not very expensive, and it’s geared around writing code, not learning API documentation.


  1. I consider magic in programming to be something that you don’t understand. Everything is knowable
  2. I think the main reason I came to Ruby instead of Python was because Ruby had the =~ operator and Python didn’t, and that irritated me, because it’s so awersomely helfpul