Code: The Hidden Language of Computer Hardware and Software by Charles Petzold was first published in the late 1999. The book was then reprinted a couple of times after the original print. There are known erratas in this book as any other books. Here is the book’s website with corrections. This book literally takes the reader back in early days of computing then explains how computers came about, how people gained interests of coding and etc. The book is a great read! I had a so much fun reading some fundamental concepts of coding and computers. You will witness the history of computers from the inception to the modern computing.
The book first lays out with fairly easy concepts such as the Morse Code, the Braille, the Abaci, etc. Then Petzold takes this simple logic as a good starting point to explain the bits and bytes of hardware side of things. This is where you may start to get a bit confused. It surely has gotten me puzzled when the author starts to cover the gates, switches, and relays with a bunch of diagrams. It takes you to the basics of the electricity and electrical circuits which are being translated into the bits (electricity is either on or off through the “switches”). With all of these understandings, you start to realize how the bits (binary numbers) are being interacted in the machine, we call the “computer”.
I particularly enjoyed reading this book because it grants you that “big-picture” view of how computers work. You can surely picture yourself with the importance of the processor (CPU) and the memory along with inputs and outputs for the computer. As an example to show you what I mean, you probably are aware that CPUs are measured in clock rate (Hz). The book dives deeper. You come to a knowledge why the higher the clock rate means faster speed for CPUs: “clock speed determines how fast each instruction is being executed” (excerpt from the book).
To be completely honest, this book is fairly long (25 Chapters, almost 400 pages). However, I was able to keep my interests all along because you get good introductions of historical information behind different parts (CPU, memory, inputs, outputs) as you are reading along. The book is fairly well organized chronologically for different parts. If I must pick, 1 downside is that there are too much information to grasp. The last chapter in the book talks about multimedia and graphics. They are no doubt valuable information but I felt like the author rushed through wrapping things up at the end. I felt those topics could be in a different book with more elaborate information.
This book is certainly not going to teach you how to write a code/program/software. It is nothing to do with “how-to-use” any software languages such as C++ or Java. The book would group these languages into a “high-level” and show you the differences against “low-level” ones (assembly). Keep in mind, the book is about how the computers work in general (many hardware aspects) and how things are connected for you to write the code eventually on a computer. Hardware and software are obviously both very important piece in a computer and they have defined roles to make good working computers. If you enjoy programming (coding) or want to know more about how computers work, this book is definitely for you. I highly recommend.
My Book Rating: