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.




You make a great point about taking on something new in order to revisit the humbling experience of the beginner. The neat thing is, you don't even have to choose something you've never done. Attempting to learn to putt, play tennis or play guitar left-handed (if you are right-handed) is a great way to acclimate yourself to the *physical* challenges of a beginner. If I find myself trying to teach someone and can't explain how I do it, switching hands is one of my favorite tricks.
Bringing it back to programming, I think this is one of the strongest values of a new language every year. "OK, Mr. Hot-Shot Java/Ruby programmer...let's see you read a CSV and import into a relational database in Haskell!" You certainly can't come out of that experience without a little wear on your ego!
Posted by: Adam Keys | February 05, 2007 at 01:27 PM
Learning to juggle was a good run through the Dreyfus levels for me. The nice thing was it didn't take too long to learn, so it was a fun reinforcement of the process.
Although, when I gave Rails a shot, I gave up after too much Dreyfus one and fell back to require 'cgi'...
Posted by: Chris Morris | February 05, 2007 at 02:09 PM
Dave:
I have many degrees in piano and have taught it for 25 years.
Now, I am a software developer who codes in Ruby in my own time, in Java for others.
you are like many adult beginners I have taught, so I will pass along a couple of key tips:
Playing the piano is not like typing on a keyboard where you use primarily your fingers to do the work.You need to feel that your fingers are guided by your arms. Swing your arms from the shoulder a little with the elbows bent for playing the piano. Then feel both halves of your body working together, with the force of the arms directed into different fingers as needed. Do not think, right hand finger4, left hand finger 2. Feel the arms working together and the fingers being directed by the arms.
Do not try to play smooth, legato, at first. Make your notes detached, and feel your arms working from the shoulder.
Keep your eyes on your music if you are using some. If you look back and forth from music to fingers, you will not get the necessary keyboard feel.
Keep at it regularly, at least four days a week for 30 minutes, and you will be surprised how far you can get!
Best,
Geoffrey Bays
Posted by: Geoffrey Bays | November 19, 2008 at 10:25 AM