Jumping into Ruby on Rails – Part 3
Well, I’ve been working on learning Ruby on Rails for several months now. The past couple of months, I’ve focused more on my studies and I’m finally feeling comfortable with it.
I thought it would be best to share what I think would be the best way to approach learning Ruby on Rails based on all of my experiences. So, here are my suggestions
1. Learn Ruby on Rails on Linux or a Mac.
Why? It’s just easier. An example to this is getting the MySQL gem installed on Windows – after hours of trying to figure this out, I finally gave up and started to use Linux. You will spend hours trying to get something to work under Windows and to me that is just wasted time. And I tried all different kinds of approaches – Cygwin, Instant Rails, etc.
2. Learn Ruby
Here are some suggestion:
Programming Ruby 1.9: The Pragmatic Programmers’ Guide (Facets of Ruby)
Free (if you buy a book) class.
Also, most Ruby on Rails books will give you a sufficient overview to the Ruby language to get started.
3. Expect gaps of informaton
This was a *huge* problem for me. I started working my way through the Agile Web Development with Rails book, that presents itself as a book from a beginner to an expert. Well, I discovered that the book *expects* you know the nuances of Rails.
I’ve looked at a good number of books and found this one to be a great one to start with:
Note: While the book was published in 2008, it covers Rails 1.2 – which was current in 2005. So the book is a *bit* dated. However, it does present itself with knowledge about Rails that other books leave out. Also, as a co-worker pointed out, the web site for the book is – uh, well – broken.
So, specifically, as most Railists know – RoR is convention over configuration – and what I find missing in most books is a good explanation of the conventions.
4. Watch some screen casts:
Free
TeachMeToCode.com ** check out the Flitter tutorial
Paid
PeepCode ** $149 a year – has tutorials on Ruby, Rails, and much more!
Well, that’s my advice. Let me know if you have any suggestions!


