A very incomplete list of things I’ve found interesting to read at different points in my career. I do try to add and update from time to time.
The C Programming Language (Kernighan, Pike)
Still my favorite book on C – no matter if you ever use it – I think knowing this stuff makes you a better developer
The Unix Programming Environment (Kernighan, Pike)
Smattering of *nix basics: shell programming, I/O streams and redirection,
file system, processes, signals – writing
C the “Unix” way
Awesome brain dump of all things software as she learns – great way to expose and learn things outside your comfort zone
I’d like to think things are better now-a-days, but there was a time when this knowledge was not commonplace; these two books were very influential in my understanding of semantic markup, and how it can simplify CSS (read Web Standards first, CSS second):
Game Engine Black Book: Wolfenstein 3D (Sanglard)
Talks all about how Wolfenstein 3D was written at technical level; great discussion of the constraints and challenges of designing software for the 386, VGA, sound cards, etc; lots of anecdotes about the id team during those years.
Floating Point Visually Explained (Sanglard)
Maybe the best explanation of how floating points work ever
Designing Data-Intensive Applications (Kleppmann)
Talks about the low-level mechanics and design details for modern databases
Crypto 101 (Van Houtven)
Very approachable introduction to cryptography primitives for programmers
Maybe somewhat commonsense arguments for how to approach writing secure software systems – but always good to refresh your memory – and reinforce these concepts.
Getting Real (37signals)
Tips and insight getting a software product to market quickly with little resources (time, money, staff)
Pragmatic Programmer (Hunt, Thomas)
The Phoenix Project (Kim, Behr, Spafford)
Fictional story of how IT/DevOps permeates an entire organization and approaches to operational improvements.