Source: /cirosantilli/how-to-become-a-good-programmer

= How to become a good programmer?

Or: how to learn X.

This pops up on <Reddit> every week.

That is <backward design>[the wrong question].

The right question is: what is the most awesome project I can do to improve the world?

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 <backward design>[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: <when in doubt, choose the course that has the most experimental work>{full}.