Reviews

Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

james_345's review against another edition

Go to review page

challenging informative slow-paced

5.0

amyengineered's review against another edition

Go to review page

4.0

This book does a good job explaining a lot of the basics of computing along with explaining some of the history of computers. It goes from explaining the basics of circuits, relays, and binary to assembly languages and the breakdown of basic parts of computers. Even though technology today has come so far since this book was written, I still recommend this book if you want to understand many of the basic concepts of computing and where a lot of it started.

terminal's review against another edition

Go to review page

challenging informative medium-paced

5.0

The book goes very meticulously goes through how to build a "modern" CPU (modern meaning most of an Intel 8080, specifically). I'd say I had a pretty firm grasp on what logic gates were before and how they work, as well as binary/hexadecimal encoding, which is the topic of the first few chapters but still found that the book gave some new perspectives and was overall an enjoyable read.

After that you get into the meat of the potato, when he starts making circuits that add and subtract numbers together. These parts are still quite easy to grasp and in my opinion extremely fascinating, at this point of the book I was absolutely in love with it. When he later gets to building the ALU, I find that the approach breaks down a bit. The explanations are still excellent for this part, but it didn't take me long to get lost. There were still some takeaways from it, but to me at least it's the wrong medium and needs more hands-on experience (I did not use the webpage by the way). If you also get lost at the ALU, my advice is to push through because it does get better again when he gets into machine code. The last few chapters of the book, added in the second edition from what I understand, are quite useless in my opinion. You get a basic JavaScript tutorial and some instructions on how to use a web browser.

So, the book is not without its problem, but for me it's still an easy 5/5. I came into it having always wondered how on earth one can connect a series of NAND-gates to build anything even resembling a fully functional computer, and I feel I came away from the book with a decent understanding despite not fully understanding everything in it. I think it definitely contains everything you'd need to build a tetris, if so inclined.

danieljudge's review against another edition

Go to review page

4.0

A great book on the beginning era of computes and how/why they work the way they do. I wish I would've read this book 10 years ago. At times the EE specs and assembly code was terse and hard for me to follow but it's a must read for any programmer.

My favorite quotes:

1. "Code is not like other how-computer-work books. It doesn't have big color illustrations of disk drivers with arrows showing how the data sweeps into the computers. code has no drawings of trains carrying a cargo of zeros and ones. Metaphors and similes are wonderful literary devices but they do nothing but obscure the beauty of technology."

2. "The amount of water flowing through a pipe (current) is directly proportional to the water pressure (voltage) and inversely proportional to the skinniness of the pipe (resistance)."

jillyjills's review against another edition

Go to review page

2.0

Although this book covered some interesting topics in early coding, it is outdated and I wasn't able to learn as much about coding as I hoped. If anyone else wants to learn about modern coding, I'd suggest seeking a different book.

nomi97's review against another edition

Go to review page

5.0

This is quite possibly the ideal book if one wants to know about the historical development of computers. It demystifies the technical details and practically shows you how a computer works from the inside. More importantly, it shows how the transition from hardware to software is a natural outcome of the journey. There are around one hundred pages which one might find frustratingly difficult - a difficulty which can be avoided if one makes some notes while reading - but if you can get through those, the reward is generous. All in all, I cannot recommend this book enough to someone who is interested in computers, whether they be serious programmers or just passersby.

trevan's review against another edition

Go to review page

5.0

With a desire to learn how the high level code (HTML, CSS, JavaScript, etc.) I write on a daily basis actually makes its way through the magical land that is a computer and returns pleasantries to a human being behind the screen, I sat down with this "Code" book. The book is very intriguing from the start, beginning with the earliest forms of code (Morse, Braille, etc.). Petzold spends a long time laying down the basic blocks of electrical engineering before progressing to how bits flow through a circuit board and control things.

I'll admit that I got very confused at times as to how a computer works, but Petzold gives you all the information you need. It's just a matter of how much time you're willing to spend re-reading and studying each piece of information he gives (there's a LOT to take in). If you have a background in electrical engineering, this book would probably make a lot more sense to you than it did to me. But, nonetheless, it will sit on my shelf awaiting the time I start playing with Arduinos and hacking on things. At that point, the book will REALLY come in handy!

tikitechie's review against another edition

Go to review page

4.0

This book was a good low-level explanation of how computers function, starting with the absolute basic electrical level right on up to macro-level things like user interfaces and codecs. Overall, it was very informative but not altogether engaging— and I’m a developer up to my eyes in computers all day every day!

Some of the chapters are really showing their age, especially given the rapid increase in tech over the last 10-15 years. This book probably hasn’t been updated since before 2000, and hardly even mentions anything beyond a 300-baud modem.

I appreciated that the author takes the time to explain all the basic concepts of each thing mentioned, whether explaining how electricity is measured, to “modem” being modulator/demodulator, to how to pronounce “JPEG.” There are no assumptions made here.

On the other hand, some chapters are extremely dry and hard to follow, though probably not the authors fault. The middle of the book, discussing mid-tier processor functions, I must have put the book down every other page. It’s a slog, but the end of the book was very interesting for a person of my age. I was too young to have a PC around during the initial years of the internet, so those early 90s developments (that ended up guiding current tech) were interesting to hear about.

Still, I feel like the first part of the book is done in painstaking detail, and the last third of the book glosses over a lot of things at a high level. I’m not sure if the author is still writing, but this one is badly in need of a refresh. (Maybe that in itself is a commentary on how tech has changed in the years since this book was first published! Books are no longer a fire and forget work. Consumers expect to download them electronically and get updates. Odd!)

craigwiley89's review against another edition

Go to review page

informative medium-paced

5.0

The way you slowly build a model computer in your mind as you read is astounding. This book makes crystal clear the foundations of computing in a way that I’ve never seen anywhere else. 

Be ready for a sharp difficulty increase 2/3 of the way through; but it’s all there, attainable with effort. I’ve never been so tempted to go out and learn Assembly language, or build a little adder out of lights and switches. 

clockworkvk's review against another edition

Go to review page

5.0

This book takes you all the way from a simple electric circuit operating a lightbulb to the workings of a computer processor, in a clear and accessible manner.
An absolute must for anyone who wants to have a good basic understanding of the inner workings of digital technology.