Sorry man, but this list is so tilted towards the web-app world it's more than a bit ridiculous.
For an genuinely deep understanding, start at the gate/transistor level and move up the stack. Here is a list which will hit major portions of what one needs to know (yet leave infuriating gaps).
Digital Design and Computer Architecture by Money and Harris is very readable.
Structure and Interpretation of Computer Programs is the classic intro text.
The C Programming Language
The C++ Programming Language
On Lisp by Paul Graham.
Algorithms by Baase
Code Complete by McConnell.
AI by Norvig.
This list isn't about the latest sexy languages or technologies. This is about timeless principles and how things really work... Yet there is much more to be said after the fundamentals are understood - garbage collection, virtual machines, modern cpu design, modern type system design, networks, concurrency - the list doesn't end for a while.
Web apps are great, and I think they represent "The Computer" to many humans. But they represent a only a fraction of computer experience and existence. The Master must understand the principles of it all.
You can't start at the transistor level. You'd have to learn about circuit theory first. Besides, the math involved with transistors (even in large-signal analysis) is too disconnected from code to be starting there.
It's like saying, "To learn to be a manager, start at the neural level." It's the emergent behaviour that you're really interested in.
Sorry man, but this list is so tilted towards the web-app world it's more than a bit ridiculous.
For an genuinely deep understanding, start at the gate/transistor level and move up the stack. Here is a list which will hit major portions of what one needs to know (yet leave infuriating gaps).
Digital Design and Computer Architecture by Money and Harris is very readable.
Structure and Interpretation of Computer Programs is the classic intro text.
The C Programming Language
The C++ Programming Language
On Lisp by Paul Graham.
Algorithms by Baase
Code Complete by McConnell.
AI by Norvig.
This list isn't about the latest sexy languages or technologies. This is about timeless principles and how things really work... Yet there is much more to be said after the fundamentals are understood - garbage collection, virtual machines, modern cpu design, modern type system design, networks, concurrency - the list doesn't end for a while.
Web apps are great, and I think they represent "The Computer" to many humans. But they represent a only a fraction of computer experience and existence. The Master must understand the principles of it all.