The Changes for the 2nd Edition of “Code”
charlespetzold.com
charlespetzold.com
A similar approach to teaching CS isn't too far fetched.
Start with a introduction and summary of each related discipline. Go back to the beginning and build another layer on top, with as many iterations are necessary.
Has much in common with the Spiral methodology of software development: https://en.wikipedia.org/wiki/Spiral_model
So you can think of the story elements as a kind of graph that have to be flattened into a linear structure, and to perform this flattening well is the art of good story-telling.
I do have to admit I had a multiuser OS sized hole for a while. The computers in my head were Harvard architecture RISC, generally programmed in assembly, and were driving pin voltages. But it was close enough.
So an accidental process of being introduced to things as black boxes, then opening the black boxes. Still linear, but backwards. Needless to say, I loved Code when it came out and gave away at least four copies. I would tell people who thought I knew a lot about computers "this book contains pretty much everything I know about computers."
I actually think computing lends itself well to that because it is built in layers. You can talk about how a layer behaves before talking about how it was made to behave that way. The problem I think people run into is that some come to think lower levels of abstraction are a waste of time from a combination of pragmatism ("I don't care how it works") and sour-grapesism ("I don't know how it works so it doesn't matter.")
I wish he would write a book on TCP/IP and Internet Protocols.
https://en.wikipedia.org/wiki/TCP/IP_Illustrated
I'm enjoying his Unix book now. (Although these are little more technical and not as oriented to lay-people.)
It is often frustrating to meet otherwise intelligent people who have the most outlandish ideas of "What a Computer IS" and "How it Works". The invention of the Computer was truly a Quantum leap in Human Civilization. Today the World literally is run by Computers and it is most important that everybody gets the proper idea of what this "Machine" is with its Capabilities/Limits.
Does anybody know if there is anything that comes close to this right now?
1) Internet System Handbook by Daniel Lynch and Marshall Rose - Classic oldie laying out the protocol foundations of the Internet.
2) Internet Architectures by Daniel Minoli and Andrew Schmidt - Another oldie laying out the operational framework of the Internet.
3) The Intelligent Web: Search, smart algorithms, and big data by Gautam Shroff - This is the closest to what you are looking for. For most people the Internet has become synonymous with the Applications (explicit or implicit) running on the Web and hence this book focuses on its current state and future possibilities.
I'd say no, you wouldn't miss anything important.
- A story about a "Tony Orlando and Dawn" song illustrating binary signaling.
- Picture implying electrons orbit nuclei like planets as out of favor.
- Implied removal of Motorola 6800 info, in favor of more Intel 8080, though I haven't confirmed.
- Reference to camera film.
- Chapter fawning over Windows cut down (Thank $diety. Or was that MMM?)
Any idea how they compare?
If the goal were to use these two materials to develop an understanding of computers and digital logic, probably the most natural combination would be to read all of Code and then do nand2tetris, or to read the first few chapters of Code and then finish it while doing the first half of the nand2tetris course. Code's in depth material corresponds most strongly to the hardware portion of nand2tetris.