I just finished reading Code by Charles Petzold. This book is like no other I’ve ever read. This book explains how computers work. Think about that for a second. Do you know how a computer actually works? Really? This isn’t about double clicking on the blue “E” to access the internet. This book explains how a machine can take electrical 1’s and 0’s and use them to do math, save files, display graphics, and everything else a computer does.
I love the way the book progresses. It starts with the most basic of electrical circuits. Simple light bulb and battery type stuff. It spends a few chapters building your circuit board chops and BAM! – he shows you how you can wire a circuit to add binary numbers. Wow, you can now build a very simple computer. He continues to add to what you already know piece by piece. Components are added to the circuit board so that it can now perform subtraction, multiplication, and division. You learn how a circuit can remember data, the basis of memory. You learn the issues surrounding floating point math and how they are resolved. He explains machine code, and how it can be simplified by assembly language, and in turn, high-level languages.
Mixed in with the technical chapters, he adds sections on lighter topics such as Morse code, Braile, alternate (non-base 10) number systems, and more. He covers how letters can be stored as a series of bits, and why there are 8 bits to a byte.
This book changed the way I think about computers. I highly recommend it to anyone who wants to understand them better. Although it assumes no prior knowledge, this book is not for the faint of heart; some of the chapters require tenacity to stay focused and comprehend. However, I guarantee it will be well worth it.