A Reading List

2025-10-20

Here I preset my reading lists (broadly split among a couple categories), mostly to provide as reference for myself / others. Also includes some notable papers / short stories.

Entries marked with (*) are highly recommended.

Programming, Programming Languages

  • Iverson (1972), Algebra: An Algorithmic Treatment - this covers some the ideas behind APL and similar array languages.
  • Dijkstra (1977), *On the foolishness of "natural language programming" * - I consider this especially pertinent considering the recent popularity of LLMs as systems with which we do software engineering.
  • Naur (1985), Programming As Theory Building
  • Sussman et al. (1985), Structure and Interpretation of Computer Programs *
  • Pierce (2002), Types and Programming Languages
  • Parse, Don't Validate
  • The Dragon Book (Aho & Ullman) - cool, but do not expect to read all of it in a single sitting; better used as a reference for individual interesting subjects that an end-to-end guide.
  • Cooper (2012), Engineering a Compiler

Software & Systems

Science Fiction

  • Gibson (1984), Neuromancer
  • Card (1985), Ender's Game *
  • Card (1986), Speaker for the Dead
  • Banks (1988), Player of Games
  • Simmons (1989), Hyperion
  • Banks (1990), Use of Weapons *
  • Stephenson (1995), The Diamond Age
  • Reynolds (2000), Revelation Space
  • Ted Chiang (2002), Stories of Your Life and Others
  • Stross (2005), Accelerando
  • Watts (2006), Blindsight *
  • Reynolds (2008), House of Suns
  • Reynolds (2016), Beyond the Aquila Rift
  • qntm (2020), Lena
  • qntm (2021), Ra

History of Science, Technology

  • Kuhn (1962), The Structure of Scientific Revolutions
  • Popper (1962), Conjectures and Refutations
  • Donald MacKenzie (1993), Inventing Accuracy
  • Gleick (2011), The Information: A History, a Theory, a Flood
  • Yanofsky (2013), The Outer Limits of Reason