5000. That’s the approximate number of results when you type in "programming ruby" in the Amazon.com search box. Assuming that you read 1 book per week (which is, by the way, a very good result in my opinion), you need about a hundred years to read them all. But to be a professional programmer you should not limit yourself to just reading the books related to technology you primarily work in, so imagine how much more of them are not included in this 5000.
Try to read 20% of that during your career and you’ll be a hyper expert in the Ruby programming language. Or rather in the theory of Ruby, since you will spend all your time reading rather than coding, so your practical skills will be in fact equal to about 0. To find time to actually code you can’t read everything, but to be a good programmer you definitely should read something from time to time. So what’s worth reading and what’s not? Unfortunately, there’s no answer to that question, but here’s a list of books I would personally recommend every Rails developer to read.
This book is probably not included in the 5000 results described above, as it's not directly related to Ruby/Rails - most (if not all) of the examples are written in Java! It may sound weird for a Rails developer to own a Java-ish book, but believe me - this publication is awesome not only for web developers. I really recommend owning a physical copy of this work. It’s very likely that you will become a better programmer by sticking to at least some of Uncle Bob’s advice.
This is one of my favorites, and I think this book should be a required read before every programming-related job interview, no matter what languages and environments you work in. Really. You won’t find any code examples or patterns you can apply in your codebase here. Instead of that, Andy Hunt and Dave Thomas show you the approach we all as professional programmers should follow. This book was released in the past millennium, but it’s definitely still worth reading today. And tomorrow. Huge props to the authors!
This one is not the best way to start with, but sooner or later you’ll grab this book if you want to understand Ruby better. Pat Shaughnessy took a deep dive into Ruby’s internals and did it very well. Let me quote Xavier Noria here:
“Man, this book was missing in the Ruby landscape - awesome content.”
Not convinced yet? Here’s another quote from the book’s foreword.
“Quite often people ask me how they can learn about how Ruby works under the hood or where to get started hacking on Ruby internals. Unfortunately, I didn’t have a good answer for people - until now.” - Aaron “Tenderlove” Patterson.
Here comes another one that I personally own in paperback. After you have gotten all the Ruby basics, this book should be your next step, no matter whether you’re an expert or just a hobbyist. It’s surprisingly easy to read, very comprehensive, and focused on all the practical things you need to know about using Ruby the proper way. I’ve already read this book twice, and I think I will do it once again one day. At least partially ;-)
Sandi Metz is an awesome speaker and she writes things the same way. Her book helps to understand the real meaning of object-oriented Ruby and how to implement it in the real world. The idea and the way she used a regular bicycle to describe OO in Ruby is just amazing. It’s also worth adding that this book draws you in like a good action novel! If you haven’t done this one yet, I really recommend doing so.
Some time ago I was looking for something on the internets regarding software development things. I don’t know what it was, but I remember that I get drowned in a comments thread on one page and found something that really stuck with me. It was something like “If you want to start implementing innovations in your company, start reading what Martin Fowler wrote 10 years ago”. This comment is so true and funny! :) Jay Fields, Shane Harvie, Kent Beck and Martin Fowler wrote this book, so just imagine its content! Sooner than later you’ll face a refactoring task and, in my opinion, this publication is the best one on that topic in Ruby.
I think most RoR developers I know today (in person) have gone through Michael Hartl's famous tutorial at the beginning of their Rails programming journey. Michael’s book is a very solid start for every RoR developer. It has a great reading/coding balance and covers most of the topics you should know to start working with Rails. This one is not really meant for senior developers, but if you want to start your RoR dev career, reading this one is as normal as eating breakfast in the morning.
Lots of experienced developers state that most of the time you should avoid sticking to the famous “Rails Way” in your projects, and I actually agree with that. On the other hand, I think we shouldn’t underestimate "the Rails Way”. In my opinion, it's something that helped Rails grow so fast and become what it is now. “Convention over Configuration”, with a set of handy defaults and hundreds of useful methods, is what made Rails so popular. Thanks to that, you can get a simple MVP up and running in a few days, instead of weeks or months. If you’re about to start (or just have started) software development with Rails - this is a good point. This book will help you understand what’s built into the framework.
Noah's book really helped me to understand the more in-depth functionality of Rails. By building my own micro-framework based on Rack with a tiny bit of Rails functionality, I’ve grasped what is really going on under the hood of Rails. Despite the fact that this one is not for beginners, I really recommend you to take a deep look under the cover.
The Rails superhero Jose Valim takes you into the dark depths of Rails in this book. He uses it in a very advanced way, so you need to have a solid background before you startreading this. The very first chapter is about creating your own renderer, so… yeah, it’s really not for beginners. The subtitle on the cover actually makes it quite clear what’s going on inside: “Expert practices for Everyday Rails Development”. Anyways, if you’re not really convinced about this book, you’ll probably need to read a little more about Josè :)
Avdi Grimm did a great job writing Confident Ruby. He describes this book as a kind of guide (small patterns) to recapture the joy of writing Ruby and get back the feeling you enjoyed when you tried Ruby for the first time. No matter how experienced you are, this book will make you a more confident Ruby programmer.
Reading books has an awesome return on investment. You get years of someone’s else experience condensed into a few hours of reading. Every single book described above brought value to me as a RoR Developer. There are of course tons more of them, but it’s not the goal of this post to get you overwhelmed :) If you think something is missing on this list, just drop a comment below.
Thank you and happy reading! :)