How to become a good programmer?
ID: how-to-become-a-good-programmer
Or: how to learn X.
That is the wrong question.
Then, once you decide to try one, if that involves programming, only then learn to program to achieve that goal. And don't stop learning what's needed until you either get the thing done, or decide that it is actually not a good idea, or not possible, or that there is something else more important to be done first.
But if doesn't involve programming, then don't learn to program, and learn whatever you actually need to reach that goal instead.
Having that goal is the only way to be motivated to do something.
This is the essence of backward design.
Another very important point to keep in mind is: Section "When in doubt, choose the course that has the most experimental work".
New to topics? Read the docs here!