I learnt how to program from two books, both by Donald Alcock 'Illustrating Basic' and 'Illustrating C'. These are both hand written and hand ilustrated, and explain very well what's going on in a program.
I agree with Spenser very strongly. You first have to learn to program - that is to learn how computers 'think'. Trying to learn a language without learning what can be said in it is probably futile. How computers operate is very different to how natural languages operate.
Fatbrain has most of Alcock's books in stock