Programming Books Worth a Damn 📚

Programming well is hard. Here are a few books that have helped me improve that I recommend.

Practical Object-Oriented Design in Ruby by Sandi Metz

Practical Object-Oriented Design in Ruby by Sandi Metz

This contains plenty of great advice even if you don’t code in Ruby. It focusses in on the message passing aspect of OO and how to structure your code around that ideal whilst keeping it amenable to change.

Working Effectively with Legacy Code by Michael Feathers

Working Effectively with Legacy Code by Michael Feathers

This is really about all code and is full of strategies to isolate and deal with problematic code in large untested code bases.

Clean Code by Robert C. Martin

Clean Code by Robert C. Martin

A meditation on what makes code “good”. General advice that covers many aspects of code including readability, clarity of intention, and separation of responsibilities.

Effective Javascript by David Herman

Effective Javascript by David Herman

Short, sharp, and to the point advice for writing Javascript. Points out the rough edges in the language and gives you concise advice on how to deal with them.

The Pragmatic Programmer by Andrew Hunt & Dave Thomas

The Pragmatic Programmer by Andrew Hunt & Dave Thomas

A touch dated in areas but the core principles it espouses are still good and will hold true for a while to come.

Release It! by Michael Nygard

Release It! by Michael Nygard

A book focussed on “the last mile” in software. Getting your code out the door and setup in a way that you can monitor and change it. It also provides interesting techniques for dealing with production issues in distributed systems such as cascading failures.

Confident Ruby by Avdi Grimm

Confident Ruby by Avdi Grimm

A look at techniques to improve the readability and style of your code. Tips on elimating conditionals, using null objects, and more.

Practical Vim by Drew Neil

Practical Vim by Drew Neil

I’ve used Vim for a long time and this book taught me plenty. A must read if you use Vim as your editor.

The Little Schemer by Friedman & Felleisen

The Little Schemer by Friedman & Felleisen

A great way to learn recursion and some Lisp.