Developing Expertise

I spent the better part of this past weekend painting. Well, actually, that’s not entirely true. I also spent a lot of time cleaning the walls. Then, I sanded some drips and bumps from past painting projects that didn’t turn out so well. Oh, I also had to patch holes and caulk along the trim boards. Finally, I had to tape around the edges of the walls. After that though, I spent a few hours painting.

The product of my effort was a painted kitchen. However, most of my time was not spent painting the kitchen. In order to paint well, I had to complete many tasks that are far less glamorous, definitely less fun, but hugely important to producing a quality product.

As I painted, I thought some about where my effort was going, which got me thinking about other kinds of work.

  • Painting is not the primary activity to create a professional looking finish. Rather, it is washing, sanding, patching, and taping.
  • Running is not the primary activity in preparing for a 10k. Rather, it is stretching, resting, eating properly, and cross training.
  • Cooking is not the primary activity in creating the perfect meal. Rather, it is researching recipes, shopping, and creating a schedule to align finish times.
  • Programming is not the primary activity in creating exceptional software. Rather, it is asking questions, research, architecture, and much focused thought.

With all of these examples, the extent to which we focus solely on the perceived verb (e.g. programming, cooking) moderates the quality of the end result. Accordingly, I’m beginning to think that the process of becoming an expert can operationally be defined as discovering which meta activities should be accompanying our primary trades.

I can say that this pattern has pretty consistently held true while I’ve worked as a programmer. The books and websites I read as a beginner tended to be more specific to programming, while the ones I read currently tend to be more about process and or higher level ideas like API design. When completing a task as a beginner, I spent almost all of my time writing code and tweaking it until it worked. Now, I tend to spend a shocking amount of time thinking, then writing things up rather quickly. It’s hard to say if this trend will continue, but for now, I’m sticking with it!