Recommended reading for CTOs and Software Developers

Design, architecture, craftsmanship, and code quality

  • Refactoring: Improving the design of existing code by Martin Fowler (and most other books he wrote): If you only read one book, make it this one. Being able to recognise bad code, and change it into good code is the most valuable skill for knowing how to write good code in the first place, and to fix your bad design decisions over time.
  • A Philosophy of Software Design by John Ousterhout
  • The pragmatic programmer: your journey to mastery by David Thomas and Andrew Hunt
  • Code Complete by Steve McConnel
  • Design Patterns: Elements of Reusable Object-Oriented Software by the gang of four
  • Head First Design Patterns: A Brain-Friendly Guide by Eric Freeman
  • Beyond software architecture: Creating and sustaining winning solutions by Luke Hohmann
  • Domain-driven design: tackling complexity in the heart of software by Eric Evans
  • Patterns of Enterprise Application Architecture by Martin Fowler
  • Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems by Martin Kleppmann
  • A Common-Sense Guide to Data Structures and Algorithms, Second Edition: Level Up Your Core Programming Skills by Jaw Wengrow

Shipping software

  • Continuous delivery: reliable software releases through build, test, and deployment automation by Jez Humble and David Farley
  • Release It! by Michael T. Nygard
  • Extreme Programming Explained: Embrace Change by Kent Beck

Java

  • Thinking in Java by Bruce Eckel
  • Effective Java by Joshua Block
  • Java concurrency in practice by Brian Goetz

Python

  • Fluent Python by Luciano Ramalho

Collaboration, communication, organisation, and teamwork

  • Exploring requirements by Gerald M. Weinberg
  • Peopleware: productive projects and teams by Tom DeMarco
  • Mythical man-month by Frederick P. Brooks Jr.
  • Managing humans: biking and humorous tales of a software engineering manager by Michael Lopp
  • Being geek: the software developer’s career handbook by Michael Lopp
  • User Story Mapping by Jeff Patton
  • Escape Velocity: Better Metrics for Agile Teams by Doc Norton
  • Becoming a Technical Lead by Gerald M. Weinberg (and most other books he wrote)
  • The Manager’s Path: A Guide for Tech Leaders Navigating Growth and Change by Camille Fournier

Startups and business

  • The hard thing about hard things: building a business when there are no easy answers by Ben Horowitz
  • Zero to one: notes on startups, or how to build the future by Peter Thiel
  • The lean startup: how constant innovation creates radically successful businesses by Eric Ries
  • Rework by Jason Fried and David Heinemeier Hansson
  • Startup CXO: A Field Guide to Scaling Up Your Company’s Critical Functions and Teams by Matt Blumberg, et al.

UX and UI design

  • The design of everyday things by Don Norman
  • Don’t make me think by Steve Krug
  • The inmates are running the asylum: why high tech products drive us crazy and how to restore the sanity by Alan Cooper
  • Designing interactions by Bill Moggridge

Maths, statistics, finance

  • Naked statistics: stripping the dread from the data by Charles Wheelan
  • Economix: How and Why Our Economy Works (and Doesn’t Work) in Words and Pictures: How and Why Our Economy Works (and Doesn’t Work) in Words and Pictures by Michael Goodwin