Summary:

I found Code by Charles Petzold to be divided into three distinct sections. The first section (chapters one through fourteen) focuses on the concepts and technologies that made the invention of the computer possible. The second section (chapters fifteen through twenty-four) explains how to build a basic computer. The third section (chapters twenty-five through twenty-eight) explores the technologies that developed around the computer, shaping it into the modern machine we know today.

Review:

I think the book does a great job of presenting the history of the concepts behind computers. The first section, in particular, is my favorite. It builds from simple codes (like Braille and binary) and basic circuits, then combines them with logic in a really succinct way. I even enjoyed learning about how QR codes encode information—plus, all the discrete math reminded me of college. However, everything led up to the second section, where the book lost me.

I tried to follow along as Petzold introduced increasing complexity and layers of encapsulation. However, I eventually resigned myself to skimming and picking up nuggets of knowledge where possible. I appreciate other people are able to break this down and understand it, but I do not think that could ever be me.

After struggling to keep up with multiple levels of encapsulation, logic gates, and symbols, the third section felt like a reprieve. It was easier to digest the higher-level concepts, such as how the operating system manages I/O devices and allows programs to run on a computer. The book ends on a hopeful note, discussing the invention of the Internet and Wikipedia. However, I would love to see a third edition that includes a chapter on Generative AI.

Recommendation:

I’d recommend this book to anyone who wishes they had paid more attention in their computer systems classes. It’s a challenging read, wavering between leisure reading and a college textbook. I think it would be particularly valuable for electrical engineers looking to deepen their understanding of how computers work.