Searching for the right programming book can be a challenge. I don’t like wasting time or money, so when I buy a programming book it’s typically the result of reading a large number of opinions and reviews to narrow down my selection and then reading parts of the books in a bookstore if possible. Of course, what I’m looking for in a book varies: sometimes I want to know what the best reference is; sometimes it’s looking for the best in depth insights into how and why a language works the way it does; and other times, I’m looking for a book with good hands-on tutorials so I can actually play with a language and learn. No matter which type of book I’m looking for, I expect it to have insights into the “best practices” of the language it’s written about. Typically, I look for the good tutorial book first, followed by the how and why and eventually progress to needing the ultimate reference. Knowing which of the goals I’m trying to satisfy helps me decide which book to choose.
When I put together a list of books, I typically aim to highlight a strong book from each of these categories: the getting started tutorial, the deep knowledge book, and the in-depth technical reference. This tends to cover varying levels of programming knowledge and learning styles, which hopefully will give you a better idea of which of the books you will find most valuable.
Beginning Ruby by Peter Cooper is a great book for getting started with Ruby. Assuming no programming knowledge, Beginning Ruby offers a tutorial based introduction to the Ruby language while covering a surprising amount of ground. Through a combination of short tutorials and larger projects, it covers not only the basics of the Ruby language but also dives into testing, the pros and cons of Ruby frameworks (such as Rails and Sinatra) and developing GUI applications with Ruby.
Well Grounded Rubyist by David A. Black. The Well Grounded Rubyist is an extensive book. It combines deep knowledge with interactive exploration. At the end of the book you will have studied the ins and outs of Ruby but won’t have completed a larger project. It is approachable enough for a beginner but meaty enough for intermediate programmers. If you’re looking to truly understand how and why Ruby works, this is the book for you.
Programming Ruby 1.9: The Pragmatic Programmers' Guide (Facets of Ruby) - has long been considered the Ruby Bible. Along with great tutorials and explanations, Programming Ruby contains a thorough reference of the Ruby language. It’s approachable enough for near beginners and exhaustive enough to serve intermediate and advance programs as a reference for a long time
Eloquent Ruby (Addison-Wesley Professional Ruby Series) “This is a book about making that final leap, about absorbing the Ruby programming culture, about becoming truly fluent in Ruby.” —Russ Olson. If you’re ready to truly embrace writing code “the Ruby way”, this is the book for you.
Ruby on Rails 3 Tutorial: Learn Rails by Example by Michael Hartl
Available for free from the authors website. If you’re ready to get really hands-on and dive into Rails (no matter your level of Ruby proficiency), Michael Hartl’s tutorial is the place to start. It’s full of wisdom, clear and the quickest way I know to dive into Rails. Hartl assumes no prior knowledge of Ruby or Rails. The entire book is a hands-on tutorial through creating a Rails microblog, providing a true sense of accomplishment upon completion. Along the way you will gain a lot of practical insights and wisdom into Rails and “the Rails way”. I consider Ruby on Rails 3 Tutorial one of the best programming tutorial books I’ve ever read.
Rails 3 Way by Obie Fernandez To truly become a Rails guru, you need a depth of knowledge not only about Ruby but about how and why Rails works the way it does. Obie Fernandez’s landmark book dives deep into the inner workings of Rails providing one of the most exhaustive Rails reference books to date.