I’ve been mainly a C#/ASP.NET developer over the last few years, but a recent interest in Ruby on Rails (RoR) has lead me to buy a few books to help me learn the framework.
Here I present a list of books, in a particular order, that I recommend to anybody learning RoR.
Many Rails books give a good overview of Ruby that is certainly enough to get you started, but a good understanding of the language will pay dividends down the line. This book provides a thorough tutorial and reference to the Ruby language, and is the Ruby equivalent of C++’s “The C++ Programming Language” that I was reading a few years ago.
Co-authored by Rails Creator David Heinemeier, this is a fantastic book for learning Rails, and might be the only one you need. It introduces the framework and covers ActiveRecord (for database connectivity and mapping), installation, controllers, models, validation and AJAX, amongst many other concepts. It’s a weighty book, and it feels complete, well-written and authoritative. Complementing the learning material is the development of the ‘Depot’ online store application, which helps cement the concepts.
As good as Agile Web Development with Rails is, I do like a book that dives straight in with some solid real-world examples. Although the ‘Depot’ example is fairly substantial, a wealth of practical cases is always beneficial, and this book provides a solid variety.
The final book in my four develops the ‘railscoders’ social networking site throughout its pages, and even if you’re not interested in the social networking phenomenon, I think it’s essential reading as it develops many concepts that you’re likely to use in other types of sites. Aimed squarely at somebody who has the base knowledge for RoR development, it dives straight in and covers a simple CMS, user management, RSS feeds, blogs, photo gallery and e-mail. I haven’t yet finished the book, but it’s very well written (as are many of the apress books), and gives you the confidence to use many of the ideas in your own work.
I hope this list is of some use to other budding RoR developers.