It really depends on where you are. If you've done a CS undergrad program you probably already know everything in CODE. But for a bright high school student or self-taught programmer interested in CS the only book I'd rank higher would be SICP.
I'm still trying to teach some of them that a memory copy isn't instant.
That's what I loved about being in computer engineering. You'll sit there and fill in charts of the cache, perform Tomasulo scheduling by hand, and by god at the end you'll have a pretty decent idea of how the machine does things. Not to say that CS students can't or don't learn the same thing, just that the ones I knew tended not to.