Ask HN: Learning RoR, Books & Tutorials?
I have a background in limited C++, Java, Javascript, HTML, and PHP.
Where should I start to learn RoR?
I'm assuming there have to be some great "go-to" books and tutorials widely known in the RoR world.
I have a background in limited C++, Java, Javascript, HTML, and PHP.
Where should I start to learn RoR?
I'm assuming there have to be some great "go-to" books and tutorials widely known in the RoR world.
I went through this book when I was learning Rails. I liked the fact that by the end, I had accomplished a bunch of things that I knew I would use again and again. http://www.amazon.com/RailsSpace-Building-Networking-Addison...
For a have on hand reference: http://www.amazon.com/Rails-Way-Addison-Wesley-Professional-...
And a good compilation of beginner resources: http://rushi.wordpress.com/2006/09/24/ruby-on-rails/
I don't mean you need a high level of Ruby, but you need some. Start here: http://en.wikipedia.org/wiki/Ruby_(programming_language)
Then you need to start writing some code.. "Ruby in twenty minutes" on ruby-lang.com is not very complete, and I didn't care for it. I found http://www.math.umd.edu/~dcarrera/ruby/0.3/ much more helpful.
After you can write some stuff, head over to the Rails books.
Javascript is powerful, but you don't get exposed to its power unless you want to, and it's not on the server, so most people don't have the opportunity to really get into it.
That means you'll probably be learning the most powerful language you've learned so far. Things like ruby blocks, mixins, and the flexible syntax that springs from the message-passing language -- these might take a bit of getting used to. And closures! My goodness. If you aren't quite the Javascript wonk, and your only experience is in Java/C++, closures can't help but be a BFDeal ...
But if you learn RAILS ...
Many of the most characteristically Railsy things in Rails are NOT idiomatic Ruby. That will change to some extent, as the merb guys are rewriting much of the Rails core.
If you learn Rails first, I can see you really hurting your practical hacking ability in Ruby. Which would be a shame; I mean, if you learn Ruby after 'limited C++', you're going to feel like a freed slave for a long time, and I want you to enjoy that feeling.
I know it's important to learn Rails if you want to hack ruby in any professional capacity. If you have to go ahead and pick up an opaque copy-and-paste knowledge of Rails first, go ahead.
But if you find yourself feeling frustrated, just remember -- that's probably the Rails, not the Ruby.
I recommend the Pickaxe book as a REFERENCE. I recommend working through "Why's Poignant Guide to Ruby", and doing a couple of code-golf exercises, and a few minor interesting throwaway programs for yourself. Maybe something using SDL or Gosu, to make something that's immediately multimedia-ish.
I came to ruby through Lisp, and Ruby is largely a one-legged lisp with syntax, but I love it just the same.
As a first step I recommend reading books, start coding, participating in simple open source projects/gems on github. Get the RoR style.
Then get on the flow by reading RubyFlow, try other things than Rails like Sinatra, ruby screen scraping etc etc. Get the RoR/Ruby perspective.
I highly recommend community-powered resources for all of these:
- Rubyflow, PlanetRubyOnRails : the everyday news, announcements - Apidock : ruby, rails, rspec guides - Rails Guides : up-to-date Rails doc in a readable format - Ruby Toolbox, RubyTrends : all about the ecosystem in real-time. You'll learn here what modules to use/digg in, how to extend your sources of information.
Personally I would recommend two books: Design Patterns in Ruby by Russ Olsen and The Art of Rails by Edward Benson
I started with the Agile Web Development Book with Rails (http://www.pragprog.com/titles/rails3/agile-web-development-...), but eventually just switched to the guides, api, and google.