Charles Petzold – Code – The Hidden Language of Computer Hardware and Software

I just finished reading this amazing book and I really wish I stumbled upon this great piece earlier.

Petzold starts explaining the main parts of computer hardware by describing how to encode any information with easy to follow examples like morsing some text to your friend who lives across the street.
He then moves along and writes about more sophisticated methods of communicating, shows how data can be stored and how basic logical gates are built.
The way he simplifies quite complex problems makes it really easy to understand all the main problems of computers and how they are solved in principle.
Unlike J. Clark Scott’s book But How Do It Know (which was also really interesting to me), Code explains hardware by examining existing processors like Intel’s 8080. However, the really interesting part for me was the second part of the book, where Petzold describes the beginnings of operating systems, assembler code and gives an amazingly simple overview of the early development of highlevel programming languages.
Moreover, he gives an intuition of what compilers actually do, talks about encoding floating point numbers, connecting peripherals and scratches the surface of how GUIs work.

This is a great book for everybody who wants to know a little bit more about how computers are constructed and if you read it carefully, you should get a good idea of what actually goes on on the machine you are sitting in front of right now. I think it is a great entry point into the field of computer science for future students, as it really motivates some of the theoretical classes they are about to take.