James Hague’s 2008 reading list connects assembly optimization, scientific computing, image processing, interviews, and code design. He remembers books that changed how he approached problems. The languages differ, but the books show people making decisions while building something substantial.

His five choices offer several ways to learn:

  • Zen of Assembly Language — Michael Abrash. Detailed explanations extended techniques Hague had taught himself writing 8-bit games. Even across different processors, another programmer’s reasoning made familiar work clearer.
  • Scientific Forth — Julian Noble. Matrix computation gives the language a concrete job. When its notation becomes inconvenient, Noble builds a translator from ordinary infix expressions into Forth.
  • Fractals, Visualization, and J — Clifford Reiter. Image-processing algorithms and other substantial explorations put the language to work. Readers see what an expert wants to accomplish and how the code serves that goal.
  • Programmers At Work — Susan Lammers. Interviews foreground creativity, ideas, and individual working habits. Hague later used the book as a model for his own interview collection, Halcyon Days.
  • Thinking Forth — Leo Brodie. Problem decomposition, avoiding redundancy, and simple code receive sustained attention. Its 1984 treatment makes those concerns accessible without layers of design terminology.

Hague’s praise for the scientific books gives the list its strongest argument: examples teach more when they carry a real problem. A practitioner has reasons to choose a representation, change notation, or split a task. Those reasons give the reader something to reuse.

Read this as a guide to choosing technical reading, with the original 2008 context intact. Look for authors who explain the work their tools let them do, and follow how they turn an idea into a program.