I’ve writing code in various forms for over 20 years. I’ve worked in a variety of languages, frameworks and industries. I’ve worked on small teams, and I’ve worked on large teams. I’ve worked on projects that have been a joy to work on, and I’ve worked on projects that have been a nightmare.

I’m a better developer because of the developers that came before me, those that wrote books, blog posts, and contributed to open source. I’m a better developer because of the developers I’ve worked with, those that have mentored me, and those that I’ve mentored.

If you want to be a better developer, I humbly suggest you start here. These books changed the way I think about software development and took something that was a means to an end, and turned it into one of life’s purest joys.

Anything by Sandi Metz

Start with Practical Object-Oriented Design in Ruby. You don’t need to know Ruby to get value from this book. It’s a great introduction to object oriented design, and will help you write better code in any language. If you’re struggling with keeping a handle on your application as it grows, this book will help. This book is what made programming fun for me.

Afterwards, jump in to 99 Bottles of OOP. This book is a great introduction to TDD, and will help you learn how to write tests that are easy to maintain. It’s also a great introduction to refactoring, and will help you learn how to refactor with confidence.

Avdi Grimm - Confident Ruby & Exceptional Ruby

Something about Ruby just seems to attract great writers. Avdi Grimm is no exception (haha). I think the syntax of ruby lends itself nicely to ‘getting out of the way’ and letting you on the deeper concepts of programming. I’m not sure how somebody manages to write an entire book about error handling, but Avdi does it, and it’s great.

Andy Hunt and Dave Thomas - The Pragmatic Programmer

This book is a classic, and for good reason. If you haven’t read it, read it. If you have read it, read it again. It’s a great introduction to the mindset of a professional developer.

Why’s Poignant Guide to Ruby

Just read it

These are the books that have had the biggest impact on me as a developer. I hope you find them as valuable as I have. I first read them a long time ago and I still find myself coming back to them, each time learning something new.