Every week I read at least one book during my commute to San Francisco while I'm riding BART. Since I'm doing all that reading, and I love writing about what I read, I write up little informal reviews of the books that I read and post them here, focusing on what I liked about each book and the lessons I learned from it.
Since I've been busy planning my wedding and moving into a new apartment, I'm a few weeks behind on writing and have a backlog of posts I'll be sharing in the next few days. This week's BART book of the week is Charles Petzold's Code: The Hidden Language of Computer Hardware and Software, recommended to me by my awesome coworker Dan Tsui.
Oh how I love this book. This is the book that every computer science student should read during their first few weeks of undergraduate study (seriously, they should just hand out copies of Code to all incoming computer science freshmen). It's the book that everyone who wants to understand how computers really work should read. This is the book that I'm going to buy a pile of copies of just so I can give them away. It's perfect.
Petzold begins with a simple thought experiment: you are a ten-year-old kid, and you want to secretly communicate with your friend who lives in a house across the street - how do you do this? From this incredibly simple idea, moving through various communication codes, to the telegraph, to logic gates, to computer memory, to microprocessors, to operating systems, and ending with computer graphics, he builds up to an entire modern computer without losing the reader at any step along the way (with the exception of the chapter on flip-flops, which I had to read through a couple of times).
One of the things that makes this book so effective in its mission is how well Petzold manages to communicate each topic along the way. Every single chapter has dozens of beautifully illustrated diagrams, charts, and tables to accompany the qualitative and quantitative descriptions. Each concept is described in terms that are simple enough for anyone to understand (even - or especially! - those without any previous knowledge on the topic), and yet still somehow manages to explain and present each thing in a brand new way that even experts will find illuminating.
Every field needs their version of Code. I wish so badly that physics and math could have their own books like this, books written so clearly that the reader walks away knowing how things actually work.
Read it. It's truly a perfect book in every possible way.