First, read and study the following:
Well that's sort of how it works.
Over the past 12 years of my new self imposed career I have learned a thing or two million. But the most important thing I have learned about programming I did not learn from any of the above.
The most important thing about programming and life I guess is that you need to know what you want. Of course this is not as easy as it sounds. So where did I learn this if not from programming? Ok, here is the story.
I was a brand new school band director fresh out of University teaching a decent jazz band, and concert band. It was a big program so I was team teaching with another experienced teacher. Just like programming there are different styles / approaches for what a jazz band should sound like. Kind of like difference between C# and VB, maybe. Anyway I was taught in a style more like Stan Kenton's band while the other teacher was schooled more like the style of Count Basie. While both valid and great bands if you try to mix their styles you end up with a mess. You have to decide what you want. You can't do both.
Well festival time came and Dominic Speara was the adjudicator ( lead trumpet for Henry Mancini) saw the problem right away and the first words out of his mouth where, "you need to know what you want".
So in a way that's how I came to find my new career as programmer / web developer.
12 years after my first jazz band festival I found my self as the owner of a private music school and music retail store. The music school was getting big and the administration of it was getting out of hand, so I started looking for software that would fit the bill. I searched for about 6 years but there was nothing like what I wanted. Since I knew what I wanted started working with MS Access and progressed to SQL server and beyond. The end result was Music Teacher's Office which we still use to this very day that saves us about 30 hours a month of administration time.
Now the first iterations of the application were awful. but as I gained more skills and knowledge if finally came into place. But it all started off with me knowing what I wanted.
Now the second most important thing as a programmer you need to know if you want to make a living as a programmer is that you need to learn what your client wants.
All the books and knowledge in the world, however necessary, will not bring you success if you don't know what you or your client wants or needs.