The absolute best way to learn how to program is to write code.
There's no way around it, especially as - and you said so yourself - it's the goal in itself.
Reading is For Background and Research
Books, blogs, podcasts and the likes will get you started and give you general background and knowledge at first, and then help you study more complex algorithms or learn about software engineering techniques and best practices.
Get Started
If you want to learn to code, you need to code. Pick a language, find something you want to start working on, and get down to it. Or find a list of small exercices and do them.
Possible Book Suggestions
Several approaches. In any case, it's vital that you actually do what the books tell you to do and don't just simply read them.
For the Practical Mind
If you're the practical kind, these would be good introductory books to coding. That is, if you're curious enough to then go beyond what the books teach you:
Some will say they are light on the details and overlook very important concepts, but the point is to get you going and to enjoy programming quick. So if you're easily distracted and want to see quick results, maybe these are for you.
For the Academic in You
If you're the studious and academic kind, these are good bibles, if you get past the fact you can also use them to kill someone:
Some consider them not a good fit to get started, because they are detached from the reality of software engineering in professional settings (mostly because of the languages and tooling used, but also because of the purity generally sought in the answers).
They are extremely good books though.
For the Life-Long Learner
Or at least for the one who goes beyond just learning the basics and wants to dive into the more arcane areas of the craft, both in terms of algorithmics or in terms of software engineering practices:
- The Pragmatic Programmer, by Andrew Hunt and David Thomas
- The Art of Computer Programming (can also be a decent armor plate, or provide lots of energy in winter), by Donald Knuth
- Software Engineering, by Ian Somerville
- Refactoring: Improving the Design of Existing Code, by Fowler, Beck, Brant, Opdyke, Roberts
- Working Effectively with Legacy Code, by Michael Feathers
- Clean Code, by Robert C. Martin
- Code Complete *, by Steve McConnell
Suggested Helpful P.SE Threads
* For some reason unknown to me, I dislike this book very much. Blasphemy, I know, right? Too heavy, hard to navigate (subjective), repeats itself too much and could easily be half-the size. Maybe because I read it too late in my career, I don't know.