Code by Petzold (https://www.amazon.com/Code-Language-Computer-Hardware-Softw...) - non-technical (in the sense it isn't something to "work through"), covers a lot of interesting topics. Especially approachable for that age.
Elements of Computing Systems by Nisan & Schoken (https://www.amazon.com/Elements-Computing-Systems-second-Pri...) - more technical (has content to work through). I've read the first edition, not the second. Has a companion site: https://www.amazon.com/Code-Book-Science-Secrecy-Cryptograph...)
The Codebreakers by Kahn (https://www.amazon.com/Codebreakers-Comprehensive-History-Co...)
I was always interested in ciphers and such as a kid so those two books got my attention when I found them in high school/college. I'm a bit fuzzy, now, about which one I was more interested in but both were good books. (I still have them, may give them a re-read next month.)
There are a few others I have in mind, but just can't recall the titles at the moment.
Check out The Code Book by Simon Singh . It is about the history of cryptography, but along the way, it also has some history of computing, and it's an entertaining read.
What's the difference between this one and this one ?
This book is great. I read it a number of years ago and couldn't get enough.
"Alan Turing: The Enigma" http://www.amazon.com/Alan-Turing-Enigma-Andrew-Hodges/dp/08... , supposedly the best biography of Turing, I enjoyed it. There's quite a bit on his work on the Enigma but not technical.