Ruby/Rails/OOP Resources

This is not a blog post per se, it's more like a list of books that got me going through my career and a small summary of each one. Don't mind the category in which each book is, this serves as a guideline only.

Disclaimer

I'm probably forgetting some content, this is just the resources that come to my mind when someone asks me for recommendations.

Beginner

Programming Ruby 1.9 & 2.0

This is an in-depth guide for the Ruby language. I totally recommend this book if you don't have much experience with Ruby or as a reference guide if you do.

Rails Tutorial

This is one of the first books that I read when I started with Ruby/Rails. It teaches the basics of the framework in a clear way and some essential knowledge that you will need when doing web development like version control, testing and deploying your code. By the end of the book (or screencasts) you will have a complete web application following best practices.

99 Bottles of OOP

I'm listing this book as a resource for beginners but pretty much any developer can benefit from it. It's written in Ruby but the main purpose is to explain the principles of object-oriented design. Both Katrina Owen and Sandi Metz are references in the field.

Intermediate

Eloquent Ruby

This is a great book if you know the basics of Ruby or already has experience with another object oriented programming language. It touches on interesting techniques and best practices of the language.

Design Patterns in Ruby

Another book from the same author of Eloquent Ruby explaining how you would implement the traditional design patterns in Ruby and even some patterns tailored for Ruby. Great book when you already have some grasp of the language and want to understand how the traditional approach would be translated to Ruby.

Practical Object-Oriented Design in Ruby

POODR as the name implies is a book object oriented design. This book will teach you how to design your objects and how they communicate with each other. Curious? You will not regret the read.

Exceptional Ruby

An in-depth guide to exceptions and failure handling in Ruby. You will learn how to deal with critical resources in your code. When should we raise an exception? Should we log it? This book will teach the mechanics of how exceptions work and how to design a robust failure management architecture for your app or library.

Advanced

Confident Ruby

This book is structured into a series of patterns that will make your code more readable and easier to reason about. Quoting from the book:

They are related by a single organizing principle: removing the uncertainty that leads to code constantly second-guessing itself; and replacing it with a confident, clear focus on the task at hand.

Metaprogramming Ruby

One of the reasons I like Ruby so much is the way we can be expressive in the language, it really allow us to build things the way we want to. It also allow us to override important objects and make the code unreadable. If you want to truly understand what is going on with your framework, gem or your own code this book is the way to go.

Crafting Rails 4 Applications

This book will teach you how to extend the Rails framework, it is a great addition if you want to understand a few APIs from Rails and a good way to start digging into the source code.

Rebuilding Rails

Have you ever wondered what is behind Rails? This book will guide you through building a MVC framework similar to it, following various techniques used inside Rails. It is a great book if you are curious about how a framework is built.

Extra Resources

Ruby Tapas

Screencasts released twice a week that will introduce you to a wide variety of intermediate to advanced Ruby concepts and techniques, Object-Oriented design principles, testing practices, refactoring skills, and much more.

Owning Rails

Interactive videos/material to truly understand the internal of Rails. The content is presented in a clear and insightful way.

Ruby Under a Microscope

Have you ever wondered how Ruby works internally? This book will guide you through the internals of some of Ruby’s most-used facets using an accessible language and lots of good diagrams.


Feel like I'm missing something ? Leave a comment and I will gladly update the post.