Code by Charles Petzold
Christmas 2022 brought me this book I’ve come across when doomscrolling on twitter.
If you ever wondered how the computers really work inside, and how is it even possible that juggling zeroes and ones in the computer processor can display picture on the screen, play music, or send a tweet, I do not know any better book on this topic. The author will take you on the fantastic journey of possibly constructing your own simple computer processor. But most importantly, he will do it in very human-readable way.
The book starts with story of two friends trying to communicate through the closed window after the bedtime using the flashlights only. This leads to another chapters about morse code and braille, then telegraph and how the ASCII encoding was originally born. Another chapters explain the fundamentals of electricity and how the relay was discovered, also boolean algebra is briefly discussed, following with construction of logic gates from relays.
Another chapters are dedicated to explanation how barcodes and even QR codes work and how text encoding work. Nothing fancy, right? You can find all that information on-line. But the neat thing is, that all those chapters sets basic understanding of the concepts, that are used later in the book, in a very understandable way.
Significant portion of the book is about digital electronics - logic gates, binary adders, flip-flop circuits, decoders and similar stuff, that, of course, leads step by step into designing our own 8-bit CPU (if you are brave enough).
Since I have always had hobby in electronics when younger, I have studied high-school of electrical engineering and then computer science at university, most of the concepts were familiar to me and the book was just a refresher in some fields. However, even for me with all this background, there was whole lotta new information I did not know, or where I just missed the context, or I knew only half of the story.
When I was younger, I was always thinking:
“How in the hell the first computer was programmed, when you need computer to write computer programs?”
This book explained everything clearly, and it is interesting and funny at the same time (I will not spoil you). I consider this as my most favourite part of the book. This is where all the knowledge built in prior chapters just “clicked in” for me.
I would personally leave out the last chapter off the book completely (it is about internet), since that could be separate book, but that’s just my personal preference and some people may find it useful.
If you are computer programmer without any “formal” computer science training and want to know more about what’s the low-level computer magic about? Or are you perhaps and Arduino fan and want to know how the processor work inside, so you can blink LED diodes, and do more fun stuff? Read this book.
Summary
- Very easy to read
- Perfectly structured from easy topics to difficult ones
- My rating: 5/5