Reading List
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.
- Programming
- Web Design
- Hardware/Embedded
- Databases
- Crypto/Security
- Smart Buildings
- Engineering Management
- Business/Startups
Programming
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
sh
andC
the “Unix” wayJulia Evans Awesome brain dump of all things software as she learns — great way to expose and learn things outside your comfort zone
Web Design
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):
- Design with Web Standards (Zeldman)
- Transcending CSS (Clarke, Holzschlag)
Hardware/Embedded
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
Databases
Designing Data-Intensive Applications (Kleppmann) Talks about the low-level mechanics and design details for modern databases; as well as some techniques for scaling high volume applications
Algorithms Behind Modern Storage Systems (Petrov) Different uses for read-optimized B-trees and write-optimized LSM-trees
Crypto/Security
Crypto 101 (Van Houtven) Very approachable introduction to cryptography primitives for programmers
Some thoughts on security after ten years of qmail 1.0 (Bernstein) Maybe somewhat commonsense arguments for how to approach writing secure software systems -- but always good to refresh your memory -- and reinforce these concepts.
Smart Buildings
Healthy Buildings: How Indoor Spaces Drive Performance and Productivity (Allen, Macomber) Eye opening discussion on how humans spend 90% of their time indoors but how little focus we give these environments.
Building Automation A-Z (Zito) Very high level overview of BAS from systems, to procurement, to maintenance. Read this cover to cover, then go deeper with another book for specific details.
Engineering Management
Long reads:
- The Phoenix Project (Kim, Behr, Spafford) Fictional story of how IT/DevOps permeates an entire organization and approaches to operational improvements.
Misc short reads:
Business/Startups
The Great CEO Within (Mochary) Really good book on running a tech company. Ostensibly about growing a startup — but anyone in tech can find value at different layers. Few books resonate with me like this one has. Short, easy read that cuts straight to the point.
Start Small, Stay Small: A Developer's Guide to Launching a Startup (Walling) Great, easy read on starting and running "micropreneur" and bootstrapped businesses (and why you might avoid the VC route). Some product suggestions are dated (2010) - but easily updated to modern alternatives.
Crossing the Chasm (Moore) Seminal book on how [tech] businesses progress through the bell curve of adoption - and getting past the initial chasm of early adopters to mainstream customers.
Don't Think of an Elephant!: Know Your Values and Frame the Debate (Lakoff) To quote Will Larson, “While written from a political perspective that some might find challenging, this book completely changed how I think about presenting ideas. You may be tempted to instead read his more academic writing, but I'd recommend reading this first as it's much briefer and more readable.”
The E-Myth Revisited: Why Most Small Businesses Don't Work and What to Do About It (Gerber) A bit of a cheese factor — but some very valuable insight for small businesses — particularly the Technician/Manager/Entrepreneur and the Franchise Model