I applaud the fact that this isn't just a post about "how to learn" to code; however, I think there is a need to specify that some of these references are not entirely necessary for a decent subset of programmers. For example, you listed Computer Organization and Design by Patterson & Hennessy. I think it's a fantastic book, and had to go through 11 chapters of it for the sake of a Stanford architecture class. The first few chapters almost feel like a must read for all, but unless you're going to be doing system stuff, i'm not sure it's really that important to know the intricate detail of pipelining.
Additionally, I think a good starting reference you may want to add for not-so-deeply technical folks is Computer Systems, A Programmer's Perspective by Bryant & O'Hallaron.