This book profoundly changed how I look at computers (and other things). http://www.charlespetzold.com/code/ Petzold's style is narrative, but make no mistake: every sentence is carefully chosen. I recommend resisting the urge to skim, lest you have to backtrack later...
I had completely forgot I owned this book, thanks for reminding me! My friend has since given up on programming so I'll definitely get it back :)