Code: The Hidden Language of Computer Hardware and Software
The Hidden Language of Computer Hardware and Software
A great read for those developers who don’t come from a Computer Science background
Why I read this book
One of my holidays reads this year! Truth be told, the book has been sitting patiently on my bookshelf for over 4 years as I just hadn't had the time to read it.
It was just one of those books, which I had initially bought based on a recommendation I had read - seem to recall it was on Scott Hanselmans blog - but after the book arrived and instant gratification was over, I never really dived into it. I think I read a chapter or two, but never the whole book.
While packing for our yearly pilgrimage to our family home in France, I was hurriedly looking for reading material to while away the hours between swimming and overindulgence on French Lager and BBQ's. I noticed the book, still almost unopened and thought I just take it and see. I must confess I am truly happy I did so!
I usually prefer a typically crime novel or some Dan Brown-esque thriller fiction while lounging on sun beds. I try to disconnect from technology! So there was a sense of trepidation when I first opened the book. I have read some of Charles Petzolds earlier work and can confirm they definitely are not really holiday reading material!
My fears were all put to rest after the first few pages!
What I liked about this book
The book sets out to inform a general audience about the inner workings of computers. Gradually building forward through time.
It gradually reveals each technological innovation necessary to create a fully functioning computer, starting with binary data representation using morse code then onto non-base-10 number systems, telegraphs, electromagnets and invention of the relay, the flip-flop switch that allows temporary storage of a single bit. All of this background culminates in a truly wonderful chapter in which you use this technology to build a fully functional computer in your mindâ€™s eye.
Petzold then explains Von Neumann architecture and from there moves into topics which most software developers will be familiar with â€“ high-level programming languages, object-oriented programming languages, and â€œThe Graphical Revolutionâ€.
In my opinion, Code: The Hidden Language of Computer Hardware and Software is a unique book with a conversational tone that leads a general audience of readers through a mix of expository writing, imaginative fictional scenarios, and history, to learn about the inner workings of computer hardware and software. It provides an unparalleled depth of understanding for how little it requires from readers in the way of prior knowledge.
Why I recommend this book
If you're - like me - a software developer that has really had any formal training in computer science and for the most part have been entirely self taught since firing up your Commodore 64 and seeing nothing more than a Blinking cursor and you were compelled and determined to figure it out because you were going to play Time Pilot on Christmas day no matter what! Then this book is for you!
I personally found a treasure trove of background information and insightful facts, that to be honest, I hadn't really thought about. It was like 3 years of computer science lectures in 400 pages of easily digestible and understandable text.
I really enjoyed this book and found it really easy to read and follow, perfect for hot lazy afternoons lounging by the pool!
I would recommend it to anyone who wants to learn how computers work. I would caution, based on my background of developing software for over 20 years, that it could take a little patience and perseverance to comprehend if many of the concepts presented are new to you, but it is definitely worth the effort.
Who should read this book
Petzold maintains a good balance: the pace is comfortable, and the tone is informal while at the same time incorporating the appropriate technical terminology to accurately convey the subject matter without obscuring it by unnecessarily avoiding precision out of fear that the reader will be turned off by too much jargon.
Alternating between lessons in basic electronics and explanations of how humans use various languages and codes to represent and communicate information.
The reader has to bear in mind that the book was originally published in 2000, so there is limited if not no discussion at all regarding any up to date technologies like Crypto Currencies, AI, IoT, Data Science or even Mobile. Most of the topics discussed are broadly based on pre-millennium understanding.