Good book to learn programming?

Here are my 3 favorite books I've used to learn Arduino, and I've had great success with them. The first two include many sample programs too, downloadable for free online!
1) Programming Arduino: Getting Started With Sketches, $8.48
2) Programming Arduino Next Steps: Going Further with Sketches, $14.02
3) C++ Pocket Reference, $9.16

For anything beyond these three books I've used supplemental online resources, most of which I've documented in the list at the bottom of my article here:
ElectricRCAircraftGuy.com--RC, Arduino, Programming, & Electronics: The Power of Arduino - "The Power of Arduino"

-On 2nd thought, the truth is that I've used the online resources listed at the bottom of my article above as my primary resources, and the 3 books above have been the supplements to my list of online resources. Nevertheless, I still highly recommend the books as well, as online material isn't enough. Books are generally more methodical, more complete, and sometimes higher quality, since the author actually has a monetary incentive to do a great and thorough job. The books, for me, have really filled in where the online material was lacking, and the online material has really filled in the gaps and low-level details where the books have been lacking.

~Gabriel