So you got time to learn and that’s fun. Best way is to do something, to practice. What should you choose? You start searching for some fun stuff, but your mind meanders. You add some useful purpose. Makes sense to fulfil two goals, right? No! Your learning curve is now longer, and you have created a long tail of tedious bug fixing.
Learning is fun. That usually means reading and studying, which is the first step in acquiring new knowledge, and yet you still haven’t gained a new skill. That last step takes practice, some kind of exercise. What should we choose?
The useful fallacy
If you’re tackling a significant new area, it will mean lots of hours. It’s going to require stamina. The more it takes, the higher the urge for synergy. You are likely to hear arguments like ”If we pour all these hours into mastering X, couldn’t we use that for some good Y?”
A utilitarian approach like this is commendable …or so we believe. Having two good goals – fun and useful – does not mean they work hand in hand just because they are righteous. On the contrary, that new second goal solution ends up with a lot of infrastructure headache, extra costs and a long tail of bugs. None of this adds to your understanding of that new area, the first goal.
You can worsen this by using bleeding edge tech. I’ve seen countless of these good-to-have-projects suffering a horrible and prolonged death. No one likes to admit that his or her pet project is a walking zombie. Have mercy and kill it. You need to focus on the first goal, have fun and learn something.
An example of practice
In one of my teams, we had a pause from customer engagements. Great! We could invest time in ourselves and learn something new. As it happened, we needed to understand a new web framework, which was a new preference among our clients. We googled and read blogs. We followed online courses, and we were diligent.
On a five-grade scale we peaked at two1. We concluded that this was no good and promptly paired up and programmed some live examples. We redid some old coding of choice in this new environment2. Something half-way tangible, but not necessary for our continued work. In essence, we threw away the code once we finished. We needed to learn, not create some ”good-to-have”.
After a couple of weeks of intense training, everyone changed his or her level by their own choice to three. Meaning ”I’m ok. I’ve got practical experience.”
That might not sound like much, but the team consisted of Swedish 3 programmers, read humble. This ”average” grade meant we were ready to take on new and tough assignments.
…but
What if you find yourself with a goal that is both fun and useful? That could happen. Sit down. Take a deep breath and think things through. Do you need fancy new tech or brand new ways of working to accomplish this useful thing? If the answer is still yes, then, by all means, go ahead. Just remember that useful should trump fun in this case, if you have to choose between the two.
Learn? Make sure to have fun!
To reiterate; If your goal is to learn, then you must do stuff to understand it properly. If yes, then go for fun – like in crazy fun – the more, the happier. Don’t settle for ”useful”. You will learn a lot more by the hour and have more energy, without the maintenance hangover.
- We do have a competence development system for grading, so this was a solid number for us. ↩
- If you need some good examples try a code kata. See http://codekata.com ↩
- Check out the Law of Jante for an insight into the Nordic mind https://en.wikipedia.org/wiki/Law_of_Jante. ↩