Book Recommendations

cedd burge
RES Software Team
Published in
2 min readOct 2, 2019

--

Amazing books, are, well amazing. They can take you from novice to master in a few short pages, and can distill knowledge that might otherwise take you years to accumulate.

The hard part is discovering these amazing books. I normally read 3 or 4 books for every amazing one, and I read a lot of reviews and reading lists.

Here are the ones that I recommend.

Fundamental building blocks (functions, classes and unit tests)

Code Complete is an excellent and thorough description of the how to write the basic building blocks of code. It’s quite long, and the examples are a bit dated, but it has stood the test of time and is still the best there is.

Clean Code is similar. Shorter and not as thorough, but the examples are slightly more up to date. You could be forgiven for reading this one instead of Code Complete, although reading them both will help cement the knowledge.

XUnit Test Patterns is the definitive guide to writing good unit tests. If you read, understand it and get used to applying the patterns, you will become a unit testing expert.

The process of writing software (how you get there as well as the end result)

99 Bottles of OOP is a truly excellent book that explains the process of writing high quality object oriented code, and how, why and when to be pragamatic.

Growing Object Oriented Software is an inspiring demonstration of applying strict Test Driven Development to a real world software project.

Small scale architecture (connecting classes together to form a whole)

Practical Object Oriented Design in Ruby is an excellent book that discusses various design decisions and the trade offs between them.

Refactoring Legacy Code describes a set of techniques to safely transform problematic code.

Dependency Injection in .Net is another excellent book that demonstrates writing classes that do not create their own dependencies (which is the way that nearly all classes should be designed).

Large scale architecture

I’m still searching for great books in this space. Recommendations welcome.

User Experience

Refactoring UI is a developer focused UI / design book. There are lots of great actionable tips with compelling examples.

Managing software development

NoEstimates: How To Measure Project Progress Without Estimating is a great book about managing the process of developing software, that faces up to the fact that the time it takes to develop software is inherently uncertain.

Accelerate is a research / evidenced based book showing the metrics that predict high performing software teams.

Other

The Mostly Adequate Guide to Functional Programming is an entertainingly written guide to functional programming.

Grokking algorithms is a fun book that describes basic algorithms with great illustrations.

--

--