Learning Ruby on Rails

I've been moving from C# in my professional career to looking at Ruby and RoR in my personal life, and I've found linux to be slightly more appealing personally for development. Particularly now that I've started using git, the implementation is cleaner on linux.

Currently I'm dual booting and getting closer to running Ubuntu full time. I'm using gedit with various plugins for the development environment. And as of late 2010, I'm making the push to use Vim for development, even over Textmate on OS X.

A large amount of the Rails developers are using (gasp) Macs, which has actually got me thinking in that direction.

Although I haven't tried it, Ruby in Steel gives you a Ruby IDE inside the Visual Studio world, and IronRuby is the .NET flavor of Ruby, if you're interested.

As far as books are concerned, the Programming Ruby (also known as the Pickaxe) book from the Pragmatic Programmers is the de-facto for learning Ruby. I bit the bullet and purchased that book and Agile Web Development with Rails; both books have been excellent.

Peepcode screencasts and PDF books have also been great for getting started; at $9 per screencast it's hard to go wrong. I actually bought a 5-pack.

Also check out the following:

  • Official Rails Guides
  • Railscasts
  • railsapi.com or Ruby on Rails - APIdock
  • The Ruby Show
  • Rails for Zombies
  • Softies on Rails - Ruby on Rails for .NET Developers
  • Rails Podcast
  • Rails Best Practices

I've burned through the backlog of Rails and Rails Envy podcasts in the past month and they have provided wonderful insight into lots of topics, even regarding software development in general.


Beware, the rails world is a massively frustrating mess of outdated and inconsistent documentation and examples. It is maybe one of the fastest moving and most faddish development communities there is. By the time you learn something it will already have changed. Even the books are not consistent in which version of rails they are talking about. Documentation by blogging! enough said.

I currently do RoR on windows. My advice is to avoid windows if you can. Lots of things don't work and the rails community really really doesn't care about you. The move to Git has really messed me up since it doesn't work very well on windows. A lot of gems will fail because of this (Heroku looks like a cool tool - too bad for me it can't handle window's Git setup). Capistrano is out. It goes on and annoyingly on.

Plus, in the back of your mind, you always wonder when something doesn't work "Is it a rails/windows problem?" I am not sure this is solved by using linux because linux brings its own hassles like constantly having to upgrade all those different dependencies, etc...If that's the kind of thing you enjoy it might be an okay choice for you. Those days of enjoying system fiddling are behind me and I just want to get on with doing my work. I am planning on installing ubuntu on a home machine just so i can get familiar with things like capistrano so maybe my opinion will change.

I'd highly suggest if you are going to do rails dev for any amount of time you seriously consider getting a Mac. If you value your time and sanity it will pay for itself almost instantly. Depending on how you value your time 10 hours of debugging windows/linux setup problems and you have spend as much as a Mac costs anyway.

Rails is a joy compared to what it replaces but it is a bit of a pain in that its proponents skip right past a lot of the boring but important stuff like documentation, compatibility issues and community building. It is way more powerful than other frameworks like Django but I sometimes look over at the Django documentation and community and sigh like a guy with a wild sexy girlfriend looking at his friend's plain but sane and stable wife. But then rails adds a feature and I go "Ohhh shiny!"

IMO the Rails Screencasts are better than the Peepcode screencasts. RubyPlus also has screencasts, mind you, they are bit rough around the edges. BuildingWebApps has a free online course that starts doing screencasts halfway through.


Path of least resistance:

  • Have a simple web project in mind.
  • Go to rubyonrails.org and look at their "Blog in 15 minutes" screencast to get excited.
  • Get a copy of O'Reilly Media's Learning Ruby
  • Get a Mac or Linux box.
    (Fewer early Rails frustrations due to the fact that Rails is generally developed on these.)
  • Get a copy of Agile Web Development with Rails.
  • Get the version of Ruby and Rails described in that book.
  • Run through that book's first section to get a feel for what it's like.
  • Go to railscasts.com and view at the earliest videos for a closer look.
  • Buy The Rails Way by Obie Fernandez to get a deeper understanding of Rails and what it's doing.
  • Then upgrade to the newest production version of Rails, and view the latest railscasts.com videos.

I wrote a post called "Getting Started With Rails -- What I wish I knew" that many people found helpful.

The basics:

  • Agile development with Rails (book)
  • InstantRails for quick ruby/rails environment on Windows
  • Aptana as the IDE
  • Subversion for version control

The online tutorials are decent but scattered. Invest $30 in a book for a more comprehensive understanding.


I've found http://railstutorial.org/book to be a great resource for learning Rails