Am höchsten bewertete positive Rezension
Very indepth at the low level of the machine, less so at the higher level
am 9. November 2015
A very good book. After exploring the basic ideas of code, demonstrating various codes used more than 100 years ago (e.g. Morse), giving a brief introduction of basic electronics and circuits, the book breaks down the computer (or rather, breaks down the very fundamental devices that make it truly a computer) to its smallest component, the electronic switch, and assembles new pieces by stringing multiple such switches together, and then again assembles new pieces by combining these pieces, and reiterates multiple times. By rearranging and rewiring of these various components the book slowly builds what can be called the heart and mind of a computer that is capable of doing what all computers, be they the room-sized behemoths of the 60s or a 2015 smartphone, do at a very fundamental level. The book does a fine job explaining the various concepts and the pace is okay considering the vast amount of information conveyed. I'll probably need to read it a few more times before fully grasping all concepts covered, as I'm a fast or rather, inpatient reader.
This is the end of chapter 17 of 24 (or 25? can't remember) equaling about two thirds of the book. After chapter 17, after an introduction to the concept of transistors and microprocessors, a few more components of the computer are introduced and explained rather detailed (keyboard, display, hard drive...), but in general, the pace accelerates quite a bit, as the remaining, more high-level concepts that need to be explained in order to arrive at the modern computer aren't covered with as much depth, but more with a historical retelling of computing going from 1950 until 1999 (when the book was written). This includes mentioning various historically significant programming languages (e.g. algol) and operating systems such as ms-dos and its predecessor, and this is where it's the easiest to notice a slight bias towards microsoft/windows (the author being a programmer for this os and the book being published by microsoft) which is okay, given its historical significance. Unix, upon which nearly all non-microsoft operating systems are based and of which many concepts are also implemented in windows, gets about one or two pages, mainly devoted to historical aspects of its conception (GNU and Linux get about one paragraph).
I personally would have preferred more information about assemblers, about coding beyond individual processor instructions (e.g. writing an assembler in assembly), how high level programming works, about the translation of high-level code into machine code (i.e.compiling), memory management, or the difference between compiling and interpreting. As another reviewer has pointed out, there could have been about 5 more chapters on software. But perhaps this would have blown the scale of the book (easily >100 pages more). Additionally, I think some of the software chapters aren't well chosen, e.g. it doesn't become clear why floating point numbers are more important for understanding the machine than let's say, hex color codes. Still a great book, the hardware parts are written really well.