Here’s a list of books I like for learning Rails and Ruby—and getting better at using them as everyday parts of my toolbox as a web developer. Purchasing books from these links helps keep Everyday Rails running. Thanks for your support!

Learning Ruby on Rails

Agile Web Development with Rails, Fourth Edition

Sam Ruby, Dave Thomas, and David Heinemeier Hanson’s Agile Rails, as it’s commonly called, is how I first learned Ruby and Rails back in 2005. It was in its first edition back then, and Rails has evolved a great deal since that time. I’ve kept an eye on subsequent versions of the book, though, and still think it’s among the best ways to get started with the framework.

Ruby on Rails 3 Tutorial

Michael Hartl’s Ruby on Rails Tutorial is a thorough introduction to the entire Rails ecosystem, including version control with Git, test-driven development with RSpec, and deployment with Heroku. You can also order corresponding screencasts and/or a self-published PDF version of the tutorial directly from Hartl, if you’d prefer.

A Kindle version of the book is also available from Amazon.

Crafting Rails Applications: Expert Practices for Everyday Rails Development

José Valim takes you on a more in-depth exploration of the Rails framework through a series of exercises that not only teach you more about Rails internals, but deliver commonly-used functions in web applications (see my post on the MailForm gem for a sample of the type of functionality covered in Crafting Rails Applications).

Learning Ruby

Programming Ruby 1.9: The Pragmatic Programmers’ Guide

The venerable “Pickaxe Book” from Dave Thomas, Chad Fowler, and Andy Hunt is a great follow-up to Agile Rails or Ruby on Rails 3 Tutorial. It takes you through Ruby’s internals and can help you understand some of the quote-unquote magic that Rails is sometimes accused of performing. If you’re developing for deployment on Heroku or a server with Ruby 1.9 on it (or one you’re able to put Ruby 1.9 on), get this edition.

Programming Ruby: The Pragmatic Programmers’ Guide, Second Edition

I include the second edition of Programming Ruby here only because it covers Ruby 1.8 as opposed to 1.9, and many hosting providers haven’t made the switch yet (Ruby Enterprise Edition is also currently based on version 1.8). If your production environment requires Ruby 1.8 this may be a good book to have on-hand—just know that the Rails community has by and large adopted 1.9 now and is moving forward with it.

Everyday Scripting with Ruby: For Teams, Testers, and You

A good way to get better at Ruby is to use it outside of Rails—or any framework, for that matter. While the lessons in the Pickaxe Books aren’t necessarily practical, the exercises in Brian Marick’s Everyday Scripting with Ruby are. Learn more about Ruby and automate some of your mundane computing tasks in the process.

Metaprogramming Ruby: Program Like the Ruby Pros

Metaprogramming is an awesome feature of Ruby—another key ingredient to Rails’ “magic”— that can daunt developers learning the language. Paolo Perrotta’s Metaprogramming Ruby provides solid coverage of the concept. I don’t recommend picking it up until you’ve got a solid grasp of Ruby, though.

Testing Ruby and Rails

Rails Test Prescriptions: Keeping Your Application Healthy

Noel Rappin’s Rails Test Prescriptions is my favorite book on the art and craft of test-driven development in Rails. Noel introduces you to popular testing frameworks for Ruby and Javascript, as well as associated concepts like stubs, mocks, and factories. If you’re coming to Rails from an environment where automated testing was uncommon or unheard of, I strongly recommend picking up this book.

The RSpec Book: Behaviour Driven Development with Rspec, Cucumber, and Friends

The RSpec Book by David Chelimsky, Dave Astels, Bryan Helmkamp, Dan North, Zach Dennis, and Aslak Hellesøy covers RSpec and Cucumber as they pertain to the Rails framework and to Ruby in general. The authors are also the developers of the tools covered, and staunch believers in behavior-driven development. Not my favorite book on the subject, but a good way to understand how the different parts of BDD fit together.

Other gear

Amazon Kindle

Computer books are heavy—lighten your load by picking up digital versions and an e-reader like the Kindle from Amazon.

iPad

My personal e-reader is a first-gen iPad with the Kindle, iBooks, and GoodReader apps installed. If I were to buy a second generation I’d get either the 16 GB or 32 GB model with 3G.

MacBook Pro

I develop using a 13" MacBook Pro. The latest models are a little speedier than mine. It’s not as hip or super-lightweight as the MacBook Air, but if you want something with a small footprint and lots of on-board storage—along with a reasonable pricetag as far as Mac laptops go—the 13" model is a fine way to go.

There are also a number of free books on Ruby and Rails you might like.