I fully support SLY_G
Books — a source of systematically presented information. Read at least one book on Pascal / C# (or whatever else is simple (not With right bias in the system and will be quite difficult, however simple it was)). And then do what you want:
1. Your little / big project that will teach you how to think and solve problems.
2. Someone else's (open source) project that will make to do the right thing.
3. Junior somewhere where you will explicitly teach.
And of course, University is very useful for programming, even if there is programming to teach someone who knows nothing. Without a Foundation, an engineer (a good programmer) and never will be. I mean, perhaps you get to solve tasks, but you're going to spend a lot more time and the solutions will be less effective.
1. Learn math if you do not know what the determinants, Taylor series, conjunctions... — ashamed to be even a Junior.
2. Eng. sadly, but all the interesting stuff in English. language
3. Ask more questions, but before to ask try to understand and think for themselves.
Good luck to you.
P. S. Comrades, do not give bad advice).