Book Review: Code

1 Jun

Code, though you may have understandably guessed otherwise, has nothing to do with dead Italians painting secret messages about the bedroom habits of men with a specific gravity less than one. You may have followed with the, also incorrect, guess Code is about the proper tab-to-space ratio and usage of ancient Hungarian symbology for variable notation to gain Tibetan monk-like ascendancy into syntaxual samurai enlightenment. You are warmer though, there is enlightenment in the pages Code for this book covers what no other computer book has before it: why.

There are many how books. How to program this, how to use this, and how this works. How something works and why something works are two different and separate topics. Many people, I dare say most, are only concerned with the how. There is nothing wrong with this, many people don’t have a desire to know more than what is needed to do a task. If you were a landscape designer, you would rather learn the why of soil composition than the dull world of logic gates. If you, like me, are a programmer, a system administrator, even – at the risk of being blunt – a hacker, that logic gate is the most fascinating sight to behold since man looked upon a loaf of baked dough while holding a serrated edge.

Code takes you from ground level; basics of electricity, and builds bit by bit (sometimes by byte) until you have designed your very first CPU. At every step, Code asks the why along with showing how. Why did computer designers choose a binary system that is so foreign to apes and men of ten fingers? Why is compiling code for an Apple system and an IBM PC such an obstacle? Why did Braille succeed where many other codes for the blind failed?

That last question hints at the importance of understanding the why when working with computers at the level hackers do. Louis Braille was blind, all the other codes were created by sighted people. One sighted tends to think on the problem of reading when blind in terms of the letter they are used to seeing. It takes effort for a sighted person to see as a blind person – in the same way it takes a human effort to think as a computer. A computer can multiply by a power of two quickly by shifting the number to the left one place for each power – a human (like you) will reread that last statement and still be thinking, “wha..?”

Code has a logical arrangement of concepts instead of the typcial historical presentation, but does fill you in on who and when the concept was discovered. Along with a wonderful amount of history tidbits to impress water cooler peers, Code is well written almost to the point of fluid prose. This comes as no surprise; Charles Petzold, author of Code, has become one of the best writers in computer programming of our time – mostly because he didn’t want to write computer programming books. He wanted to write prose.

I regard Code as one of two must reads for any hacker seeking knowledge of his craft beyond syntax (the other is Cathedral and the Bazaar). I also think it has value outside of those in the software world, to anyone curious why something that can only understand on and off, one and zero, can do so much. Who knows, even a landscape designer may see grass differently after reading Code – well, maybe that’s a stretch.

  • Thanks for the recommendation, Mike. I’ve just added it to my wish list.