As an experienced programmer I can say (for myself) the best way I learn is by doing.
Since one of your objectives is to possibly write some games, a very good place to
start learning is through trying a variety of example programs where you can see
the inputs and outputs directly. The internet...