How do you become a good programmer?
My answer to How do you become a good programmer? on Quora
In my experience new programmers progress a LOT faster if they’re learning with a higher level dynamic language such as Python or Ruby than if they only use C++ or Java. That’s not to say it isn’t a good idea to learn Java/C++ (though I’d encourage you to learn C as a lower-level language) but you may find you pick up programming concepts a whole bunch faster with a language that has a good interactive prompt.
Personally I think Python is a fantastic learning language—it’s great for beginners, but it can also be used to solve real-world problems. The official Python tutorial is an excellent starting point: The Python Tutorial