Hey Guys,<p>I have a background in limited C++, Java, Javascript, HTML, and PHP.<p>Where should I start to learn RoR?<p>I'm assuming there have to be some great "go-to" books and tutorials widely known in the RoR world.
Railcasts by Ryan Bates are phenomenal.
<a href="http://railscasts.com/" rel="nofollow">http://railscasts.com/</a><p>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.
<a href="http://www.amazon.com/RailsSpace-Building-Networking-Addison-Wesley-Professional/dp/0321480791/ref=sr_1_1?ie=UTF8&s=books&qid=1246322879&sr=8-1" rel="nofollow">http://www.amazon.com/RailsSpace-Building-Networking-Addison...</a><p>For a have on hand reference:
<a href="http://www.amazon.com/Rails-Way-Addison-Wesley-Professional-Ruby/dp/0321445619/ref=sr_1_8?ie=UTF8&s=books&qid=1246322879&sr=8-8" rel="nofollow">http://www.amazon.com/Rails-Way-Addison-Wesley-Professional-...</a><p>And a good compilation of beginner resources:
<a href="http://rushi.wordpress.com/2006/09/24/ruby-on-rails/" rel="nofollow">http://rushi.wordpress.com/2006/09/24/ruby-on-rails/</a>
Since you ask where to start with RoR you should start with the Ruby part of it. Learning Rails with a spotty knowledge of Ruby is much more difficult; Simultaneously figuring out Ruby and Rails makes it all too annoying.<p>I don't mean you need a high level of Ruby, but you need some. Start here:
<a href="http://en.wikipedia.org/wiki/Ruby_(programming_language)" rel="nofollow">http://en.wikipedia.org/wiki/Ruby_(programming_language)</a><p>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 <a href="http://www.math.umd.edu/~dcarrera/ruby/0.3/" rel="nofollow">http://www.math.umd.edu/~dcarrera/ruby/0.3/</a> much more helpful.<p>After you can write some stuff, head over to the Rails books.
That's tough.<p>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.<p>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 ...<p>But if you learn RAILS ...<p>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.<p>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.<p>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.<p>But if you find yourself feeling frustrated, just remember -- that's probably the Rails, not the Ruby.<p>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.<p>I came to ruby through Lisp, and Ruby is largely a one-legged lisp with syntax, but I love it just the same.
Learning RoR -- and maybe other web frameworks too -- is not easy.
There are at least two phases of the learning process: learning Ruby as a language and Rails as a framework, then get acquainted with the RoR ecosystem -- github, deployment, existing reusable projects and components, best development environment, how the community works etc etc.<p>As a first step I recommend reading books, start coding, participating in simple open source projects/gems on github. Get the RoR style.<p>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.<p>I highly recommend community-powered resources for all of these:<p>- 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.<p>Personally I would recommend two books: Design Patterns in Ruby by Russ Olsen and The Art of Rails by Edward Benson
I found the Ruby on Rails guides (<a href="http://guides.rubyonrails.org/" rel="nofollow">http://guides.rubyonrails.org/</a>) combined with the Rails API (<a href="http://api.rubyonrails.org/" rel="nofollow">http://api.rubyonrails.org/</a>) to be really helpful.<p>I started with the Agile Web Development Book with Rails (<a href="http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition" rel="nofollow">http://www.pragprog.com/titles/rails3/agile-web-development-...</a>), but eventually just switched to the guides, api, and google.
Since you don't have a Ruby background, I'd recommend you to check django. The documentation is very complete and well written and you can read a complete book about it for free[1]. It's a Python framework, though.<p>[1] <a href="http://www.djangobook.com/en/2.0/" rel="nofollow">http://www.djangobook.com/en/2.0/</a>