Well it's kind of a book. Sicp (structured interpretation of computer programming), and I'd recommend that as the best programming book ever written. But my personal favorite is the little schemer. Teaches you how to think for sure