Every software engineer will tell you, that the most quick way to learn programming is to have personal project. It may be large, or it may be small. It may be connected with real life problem or may not. That's irrelevant. All you need to know - you are learning. Don't try to make your program fast. Experiment. Find errors and fix them. Change those parts of code you don't like. Throw away the whole code and start over. Learn. Don't forget you are learning.
But there is one thing. Practice is good, but without theoretical background you will not be able to become good professional. So you need to find books which will help you start your hard way in this profession. There are a lot of them, but only some are really qualitative. Reading just everything is a waste of time. Reading books that are not connected with your chosen language is fine, but if you are already acquainted yourself with basics of that. Moreover, by doing so, you can understand chosen language better and deeper.
So, to become a good developer, you need:
And last word. Please, don't choose books with labels "Learn in 8/12/24 hours". It is just a waste of time. IMHO.