On to my third review... I had been meaning to read this book for some time, and am I ever glad I did! Petzold is a good teacher and a better writer, with a friendly, conversational voice that lends the reader a sense of coffee-shop talk through the whole thing, as if the author was describing to his buddy how a computer works from the electron on up with scribbles on napkins in some off-the-beaten-track cafe. It's the right tone for the job too, as it's a pretty heavy subject. Let's give it a quick look.
Title: Code (The Hidden Language of Computer Hardware and Software)
Author(s): Charles Petzold
Publisher: Microsoft Press
ISBN: 978-0735611313 (paperback)
In Code, Petzold tackles an astonishingly complex task -- describing how a computer works from the electron up. But he does it in a rather unorthodox way. He spends the first quarter of the book talking about flashlights, telegraphs, Morse code, Braille, and weaving looms. Then he takes an in-depth look at the humble telegraph relay, builds some basic logic gates, and incrementally builds up a processor from there. The last quarter of the book then zooms out and takes a bit of a survey of peripherals, operating systems, and other topics of modern computing interest. This book was written in 1999, so some of the info in these later chapters is understandably dated, but the concepts hold true, and will for the foreseeable future.
The whole process was fascinating, and I had a strong feeling that if I had the millions of telegraph relays required and enough spare time, I could build the machine implemented in the book by myself. This is an empowering text -- theory that speaks to the readers as stupidly simple is a profoundly difficult task, and Petzold has nailed it handily.
My only criticisms of the text would be the pacing of chapter 17, in which the author combines all the previous bits and bobs to finally construct a working processor, and the rushed feeling of the final five or so chapters. I just felt like chapter 17 was far too involved for a single chapter and would have been far more coherent if split into two or even three steps, rather than the info-dump format it was presented in. In fact, the day I read chapter 17 was the only day that I read just a single chapter in Code. The last five or so chapters were a bit rushed it felt like -- which I have a hard time reconciling, given that the author states in the preface that he'd been writing this book since 1987 (that's 12 years, folks).
Overall, I heartily recommend this book. However, it comes with the caveat that you shouldn't feel like you necessarily need to absorb every word. Take it as a casual conversation, not an exhaustive text, and you'll get the most out of it.
Overall, I'd give it a 6/7 -- fantastic for the right audience, but those who are taking it as a textbook will find it frustrating.