Making software and software development teams. Mostly the people parts.

Classic Book I'm Skimming

The Practice of Programming by Brian W. Kernighan (intro available here)

This classic (1999?) describes universal engineering concepts that "are independent of language, operating system, or programming paradigm”, expressed as four basic principles that “form the bedrock of good software”:

  • Simplicity - keeps programs short and manageable
  • Clarity - makes sure they are easy to understand, for people as well as machines
  • Generality - they work well in a broad range of situations and adapt well as new situations arise
  • Automation - lets the machine do the work for us, freeing us from mundane tasks

Most of the examples are in C++, but the principles apply to modern web programming, and the examples are grokkable enough and such canonical examples of good intentions gone wrong that it's worth the effort.

Unrelated to tech: skimming the book reminded me of my favorite framework for tasting wine.