To be a skilled programmer, one must have a very balanced approach to learning and working. Sticking too much in one category will have a terrible impact long term.
What is a good learning vs. working ratio?
In my youth, I was playing online poker, even wanted to become a pro player. There was a site pokerstrategy.com which provided a lot of materials to learn and grow better at the game. I think most of the learning strategies that I learned in my life come from there's presentations and studies.
In one of the articles, there was a ratio of learning vs. playing of 3 to 1 so for every 3 hours played you should spend 1-hour studying. I tried to follow this rule, and the results got better, but anyway it is poker, the variance will get you anyway, and with all the emotional rollercoasters I just felt the need to quit.
Should we maintain the same rule for programming also 3 to 1, for every three worked hours we should spend one learning?
It does not matter how many hours you spend on learning, the goal is always to learn, and I'll share my most effective learning strategies, they all share the same psychological theme "Force myself into things."
Try to have at least one interview quarterly:
Even if you do not intend to leave your current job, this kind of experience makes you grow. For sure it does not feel right: the shame and bad feelings that you did not know some stuff or behaved at the interview suboptimally will make you read and learn. From my experience, the awfulness of the conversation is directly proportional to the growth afterward.
Volunteer to be a speaker at different conferences, for sure there are some communities in your areas.
After you accepted to be a speaker the feel of failing in the public will drive you into studying, learning and preparing.
Less effective but good strategies to learn are:
Following the steps of a role model
e. What do they know? What do they do? How they do it? Mimic them, learn from the books they wrote, presentations. I found very inspiring the following list of nodejs gods @matteocollina, @mafintosh, @davidmarkclem, @mariocasciaro.
Work with your friends on a start-up
God knows how many fails I have on my back! But all the fails transformed into an experience.
As you can find out for me, the best results are when I take all the choices out from my life and force myself into doing something, let's say playing on my human feelings, the drive is the fear.
The second best strategies are driven by greed, make more money or to be recognized.
In this way let's learn how to use our negative drives to become better!