Reading List
Disclaimer, there is a wealth of incredible resources and books out there. The following list only contains the small subsection that I am currently consuming. Also, I have been collecting these books for a while so there may very well be newer / updated versions of them available so have a look before you decided to buy, if any of these inspire you.
Ruby (and Rails)
Ruby Under a Microscope
Most of us are content developing with Ruby (and Rails) without needing to know why it works the way it does. We don't need to glance under the hood however, it's quite fascinating under there and you'd be surprised how it will enhance your understanding of the language.
Metaprogramming Ruby
This book is good fun. Ruby's dynamic nature allows for some really creative metaprogramming which are fun to play with and could be really helpful, use case depending. "Magic code" can be a nightmare to debug though so use with caution!
Effective Ruby
When learning Ruby, you're generally tought the same thing. A hash looks like hash = {}. But there are many other (and better) ways to use the language that you never knew about, and this book will open our mind to some very clever ways Ruby code techniques.
Ruby Best Practices
Coding best practices are usually quite standardised across any language and the same holds true here however, often it can be confusing to see code examples in Java or C++ therefore this book helps put these practices into a more understandable Ruby context (for Ruby trained developers).
Effective Testing with RSpec 3
There are many Ruby testing tools available to use however it goes without saying that RSpec is one of the most popular ones, and for good reason. It's very powerful and has a lot of features you may not be aware of.
Agile Web Development with Rails 4
Covers everything you would need to know if building a new Rails application, zero to hero. From installation to managing build dependencies. Note, since I last checked, there is a new edition of this book for Rails 7 (I've had this one for a while).
Design Patterns
Design Patterns
Goes without saying, if you want to be a programmer, you have to have this book. Written by the "Gang of four", no developers bookshelf is complete without it. They wrote the patterns that shape todays code and they are a MUST KNOW if you plan on writing code to stand up to the ages.
Design Patterns in Ruby
Takes a portion of the patterns from the book above and incorporates them into Ruby. Really helpful if you're struggling to understand the Java examples from above but it does only cover a portion of them therefore I recommending pairing this with the one above. That being said, it's really well written.
Coding Practices
Clean Code
"Uncle Bob" (aka Robert Martin) is a legend in our field and pretty much wrote the rule book on what proper code style and practices look like. Regardless of language or context, his wisdom is a must have and I cant recommend this book enough.
The Clean Coder
Another Uncle Bob entry, taking the above wisdom about clean code and transforming it into a mindset that, as an individual, we can aspire to become. We want to write the clean code and in order to do that, we need to become the clean coder.
Legacy Code
Working Effectively with Legacy Code
If anyone says they have not had to deal with legacy code, they are lying (or never been employed before). What you write today is legacy tomorrow and knowing how to handle that (especially if its someone elses legacy code) is necessary for clean up, compatability and optimisation. You may think its trivial but there is a lot of techniques you wish you knew.
Refactoring
Martin Fowler is a big name in the the dev scene (and this isnt the only mention of him on this list) and his wisdom along with clear understandable language makes for an incredibly easy but knowlegde dense read around the best ways to go about refactoring code. If you havent refectored your new method at least twice, you doing it wrong.
General
The Passionate Programmer
Sometimes being a developer can feel like a 9 - 5 monotonous life without much reward. But there is much to value with our skillset and we just need to remove the blinkers, take a look at the bigger picture and understand how we can make a difference. And that adds value and reason to what we do! (yes, I know the accompanying image is smaller than the rest and it irks me too!)
The Pragmatic Programmer
It's all to normal for a developer to be given a task, put their head down and code up a storm that we dont stop to look at the bigger picture. This book helps you identify the broader scope, from the business perspective down to implementation considerations. Well worth the read if you feel you're doing the same thing day and out with no real purpose or understanding.
Growing Object-Oriented Software, Guided by Tests
It took me a long time to realise the value of tests and TDD. Always thought they took up unneccessary time which I could spend coding the solution. How naive I was. These days I wont touch a new problem without tests to back my code up and this book will help you get into that mindest.
Practical Vim
Vim (well.. Neovim) is my editor of choice and I'm constantly learning new motions and ways of optimising my workflow, speed and performance. I have learnt so much from this book and keep going back to it to refresh less-used features.