Book-Summary - Code
- Author: Charles Petzold
- GoodReads: Code: The hidden language of Computer hardware and software
Code explains about different basic parts of a computer and how does a computer do what it does. Even though I am from Computer Science Engineering background, it always comes to my mind a question that how all the concepts I learnt in Logic, Computer Architecture and other course comes together. This book demystifies the computer. It gives us a picture of how the technology progressed with simple switches & relays to transistor and how everything is connected to a simple electric switch to a full fledged computer. I wish I had read this book during my engineering days, which would make things more understandable and make many of the classes more interesting.
It starts with the need to communicate message between 2 points. Finally, how this desire gets evolved into a full fledged computer. Once we have a basic way to communicate, then we try to optimise them and improvise them. Take a basic example of 2 friends who are neighbours as well want to communicate. For this we start with a simple and basic setup of two torch lights and try to communicate using them. Even though it serves the purpose, we want to improve this setup and make it more optimised and useful. There are two aspects here - One is improving the code for transmitting data so that more information can be sent in the medium, Second is improving the medium itself to handle data more reliably and efficiently. For the first aspect, we traverse from human language to Morse code, Braille code and finally binary code. For the second aspect, we go from simple torch lights to switches connected to a bulb using a wire and then to improve further we would go to relays and then to logical gates; and finally to optimise on the size and electric consumption we use transistor.
We start with a simple binary switch and by the end of the book, we would be able to build a full fledged computer which can do mathematical operations of addition, subtraction, multiplication and division between 2 numbers. As we went from simple setup to more complex setup like adders, microprocessors, it becomes easy to understand these complex setups.
For any serious computer science engineer student/aspirant, this book is a must. One of the important learning is every innovation happens due to a need and that innovation trajectory is a stepping stone. Everything does not come all at once rather it starts small and progresses.