Book suggestions for programming

I'm looking for some book suggestions that provide beginner level introduction to coding with Arduino.
I just purchased 'Practical Arduino' and '30 Arduino projects for the evil genius' and while they are decent books they offer little fundamental info on coding. They present a project with code and a schematic but offer little info as to why the code is the way it is and that is what I'm missing. I have the basic electronics down but have never done any coding. Thanks for any suggestions.

Not specific to Arduino, but important to every C and C++ programmer:

I also likeed this this book (which is now online available):