A while back an interviewer asked what I would do if I had three months of free time. Without hesitation I said "I'd take piano lessons." I've been hacking away on pianos since I was a kid, but I never really learned how to play anything real.
So my wife got wind of the interview (thanks, Google), and for my birthday I got piano lessons. In fact, I got perfect piano lessons—my piano teacher is totally flexible, into theory, and can play just about anything, in any style. He sets homework to do one thing, I get sidetracked and bring back something different, and he just rolls with it and I learn from what I did. It's invigorating, and great fun.
But I'm learning first hand about the Dreyfus model.
If you've heard Andy or I speak, you'll know that we like the way the Dreyfus model explains the ways that people become experienced. I blogged a little about it in the context of keeping your job, and again in the context of CodeKata.
Now, when it comes to the piano, it turns out that I'm at multiple Dreyfus levels. For some reason, I'm OK(ish) at the theory side. I see the patterns, and I get it when my teacher rips into my attempts at composition. Some of the coolest times are when he takes over the piano and starts riffing on something I wrote, talking out loud as he finds harmonies and progressions. I might be a Dreyfus 2 or 3 at theory.
However, when it comes to the piano, it turns out that I'm a solid Dreyfus 1 when it comes to playing (I'd be a zero, but the Dreyfus brothers never heard me play, so never realized they'd need a level below 1). I can play a simple melody in a single hand and get by. But I'm aware of the fact that I'm playing—I'm consciously saying to myself "next it's a B, now remember to tuck your thumb, C coming up" and so on. I'm clearly controlling my playing by thinking through each step. And that becomes painfully clear once I play with two hands. A simple line that I could play fluidly on its own suddenly comes to a juddering stop as my brain performs a process switch to concentrate on the notes to be played by the other hand.
When we talk about Dreyfus, we describe the difference between having to think about each step and the feeling you get once you've gained enough experience to be able to do something intuitively, below the conscious level. Once you've internalized something, you leave your conscious brain free to work on the nuances.
So this frustration I'm feeling while sitting at the keyboard is exactly the same frustration that someone new to programming feels when faced with Rails, or someone new to Java feels when all of J2EE is plunked down in front of them.
And knowing that is going to make me more tolerant when dealing with folks who've just starting out at something. It's been a while since I felt like such a rank beginner at something. It's a humbling (and worthwhile) experience.