I recently rediscovered rails when I needed a holiday project and decided to build a management dashboard for the company where I work. With it being a project done in my free time, I could focus my time on learning the basics rather than trying to build a working project on a tight deadline.
This is how I did it. I'll mention the specific books I used and why, but I don't think that's critical. Just look at the process and then come up with something that works for you.
I started out by learning some Ruby first. I think this is absolutely critical. If you want to be good at Rails, you need to know Ruby. If you have any programming experience (especially with any OO language), you can basically skim through an introduction on Ruby.
I used Programming Ruby in the pragmatic programmers series
because I really like the pragmatic programmers series. I was not disappointed by this book either. I just skimmed through it in 2 afternoons, and then I referred to it several times as I started getting into Rails.
Another good route would be to look at one of the various online tutorials on Ruby. I found this Introduction to Ruby
tutorial is a good introduction and a very good reference if you quickly have to look up something.
If you don't have much programming experience I would recommend you start with Ruby in twenty minutes
before going back to the previous article. This one goes into more detailed explanations and gives a good overview.
Once you understand the basics of Ruby, it's time to learn the basics of Rails. For this I again went with a Pragmatic Bookshelf book. I worked through most of Agile web development with Rails
. I used the second edition, which isn't the best idea at this stage, but the basics are the same, so not much harm done there.
I looked at a few books and preferred this one, but I would say that it doesn't really matter which Rails book you choose. I do believe that learning rails without a book is more difficult though. Generally, I'm all for using Google and nothing else, but with Rails, I found that having all the background information and seeing how everything fits together makes it much easier when I need to do something new now.
Once you understand the basics, I would suggest jumping in and starting your own project. Learn as you code . A great resource for me has been Railscasts.com
. Ryan Bates explains concepts in a simple and methodical method. I would suggest you go and watch every railscast he did in the first 2-3 months, and then watch the later ones as you need them.
Whenever I do something new, I try Railscasts first. If there's nothing there, I'll try searching Google.
So in a nutshell, my suggestion for learning Ruby on Rails is:
1. Read a book or introduction on Ruby.
Make sure you understand the basics, as this is what makes Rails work.
2. Read a book on Rails.
I'm sure you can do this without a book, but I wouldn't want to.
3. Watch the early Railscasts.com
for some more information on basic concepts.
4. Use railscasts.com and Google for more advanced concepts as you need them.