Leveling-Up Mastery

Tim Kuntz, Jan 27, 2010

My two older sons have taken up the trumpet, primarily because they have listened to me play all of their lives. This puts me in a role I haven't played in many years, that of their private music teacher. As such, when working with them I often hear them tell me "I can't", to which I reply, "You can if you keep practicing". Many times their follow-up response is "But I practiced this yesterday".

I spend the majority of my time dispelling their belief that everything should come naturally to them. I thought my boy's reaction to practicing might have been some Pavlovian response created by the video games they play and that what they really were asking me was "When do I level-up?". But kids have a way of making you inspect your own life and I realized a certain amount of hypocrisy in myself. I constantly have to combat the belief that spending a fixed amount of time performing some action, for instance reading a book on ___ (fill in the blank with your current technical read), will provide me with some tangible level of guru status.

It is natural to want immediate gratification from any effort expended. Wash the dishes and the kitchen is clean. Work for N hours and get paid. This makes life quantifiable. In a recent meeting, the discussion revolved around how to quantify when someone was entitled to a promotion. At some point, one of the attendees stated that we would "just know". This resonated with me as I believe that we can't always quantify the effort it will take to master cognitive skills, or in my boy's case musical skills, needed to "level-up".

A few years ago I had spent a lot of time studying design patterns. I read multiple books, participated in a study group, and forced design patterns into every bit of code I wrote. And yet I had a nagging feeling that I just hadn't "leveled-up" up my understanding of the appropriate uses of design patterns. As time went by, my focus shifted elsewhere, still having the occasional team discussion about certain patterns here and there. Then one day I found myself refactoring some code and realized that I had applied a minimum of 3 different patterns without a direct focus on doing so. Clearly I had "leveled-up" or passed a milestone but when?

That's a question I don't think has a definitive answer. All the study, discussion, application, and mental activity I spent on learning design patterns was required to get to the level where it had embedded itself in my subconscious but I couldn't tell you how much time had passed or exactly how much effort I had expended to reach that point. In fact, I'm pretty sure that the effort I required to get to that point was greater than some of the other team members (more on that later).

In the end, we all have to be content, but not complacent, with the learning process. Our daily practice routine should include but not be limited to reading classic software tomes, working through programming katas, and participating in group discussions on various aspects of our craft. Do that and at some point we will look back and realize that the technical knowledge and concepts we struggled with have made their way into the fabric of our daily development. Or as my private trumpet teacher of years ago stated it more succinctly, "Practice the fundamentals then go out on stage, forget about all that, and blow!"

Rss-icon Rss-icon-over
Archive

Archive