Reading list
This page started as a Blog post on how I changed the way I think in the form of a reading list which I wanted to extend. This version contains groups of books and an overview on how I found them useful.
This page offer the start of my list, it’s missing quite a lot at the moment but I’ll expand it as I think more about which books have been useful to me.
Systems thinking
Looking to understand the complex system of delivering software? Want to understand what constrains us when delivering software? Need to understand how to deliver the right software in the right way? Then these books are a great place to start…
- The Goal - E. Goldratt
- It’s Not Luck - E. Goldratt
- Freedom from Command and Control - J. Seddon
- Out of the Crisis - W. Deming
Communicating
Communication is hard! Many times we’re saying one thing while concealing our real intent. We have arguments over conclusions without talking about the way we got there. These books will open your eyes to how you may be communicating with others and how to improve…
- Discussing the Undiscussable - W. Noonan
- Organizational Traps: Leadership, Culture, Organizational Design - C. Agyris
Thinking, Learning & Motivation
Want to understand how you think? How to get motivated to work? How to focus?
- Pragmatic Thinking and Learning: Refactor Your Wetware - A. Hunt
- Drive: The Surprising Truth About What Motivates Us - D. Pink
Craft of code
Being able to write code is not enough. Code is the human readable specification of what software should do. These books cover writing these specifications in a maintainable way.
- The Pragmatic Programmer: From Journeyman to Master - A. Hunt, D. Thomas
- Clean Code - R. Martin
- Test Driven Development: By Example - K. Beck
Languages
These book have be my favourite companions in learning specific programming languages.
- C# in Depth - J. Skeet
- The Joy of Clojure - M. Fogus, C. Houser
- Practical Common Lisp - P. Seibel
- Real World Haskell - B. O’Sullivan, J. Goerzen, D B. Stewart
General Computing
These are general books on the subject of computing that offer important background knowledge.
- The Annotated Turing - C. Petzold