Learning to Learn

Sun, June 22, 2003

The most important thing that I've every learned is how to learn. I and a few other lucky souls gained this knowledge at the tutelage of one of my mentors, Don Box, during my tenure at DevelopMentor. Not only did I have an amazing thinker to learn from, but I had a enormously difficult topic to learn on: COM.

When I started learning COM in the early '90s, only a few souls inside of MS really knew it. The only real book in the world on COM at the time was inscrutable and no one with the necessary communication skills and the time to teach COM had yet grokked it fully. Don had written a five-day short course entitled Essential OLE, but only given it a few times, so hadn't really gotten over the hump (as evidenced by the title of the course). It was my job to become the second instructor on COM at DM.

I've always been one of those people that, when faced with a topic and the proper motivation, could almost always learn it easily. This skill helped me to get good grades, but didn't teach me how to really learn; it was too natural for me to understand how I did it. Unfortunately, COM was too hard to learn "naturally" and there's nothing like preparing to stand up in front of a group of people to motivate you to learn. In fact, the first time I'd had to teach COM, I was so nervous on the last day (when I was to teach the material I knew the least well), that five minutes before my first lecture of the day, I had to find an empty room to hyperventilate. I literally didn't know what I was going to say.

Unfortunately, I didn't have the option of bailing at the last day of this class unless I was prepared to give up my job at DM. It wasn't the bailing that was the issue; if somebody else that knew the material was available, I could've bailed (that's how cool DM was). Unfortunately, only Don knew it and he was out of town. So, I had only one choice -- fake it. I wasn't proud, but public speaking is like any other form of entertainment and "the show must go on."

As I was giving the slides that morning on COM structured storage (a particularly nasty topic in COM), I found myself learning how it it worked as I told the story to my audience. All the studying and experimentation I'd done had given me the foundation, but not the insights. The insights I gained as I explained the technology. It was like fireworks. I went from through those topics in a state of bliss  as all of what was really going on underneath exploded in my head. That moment taught me the value of teaching as a way of learning that I've used since. Now, I always explain stuff as a way to gain insight into whatever I'm struggling with, whether it's through speaking or writing. For me, and for lots of others, story telling is where real insight comes from.

Still, teaching without the foundation of knowledge isn't effective. How do I gain that foundation of knowledge? I consume the available material and ask "why" a lot. If I look at a class hierarchy and it's design isn't immediately obvious to me, I ask why it was built that way and why was that way chosen over another. And to the answers to those questions, I keep asking why 'til I get to something I know already or until I get to a human reason. The reason for not stopping 'til I get to something I know is that I believe that all learning is only as affective as well as it can be tied to what you already know. How easily it is to learn something is directly related to how much you already know about related topics, so the more you know, the easier it is to learn more. However, when humans are involved, aesthetics take over, e.g. the reason that C++ has member initialization lists and Java doesn't is that Stroustrup liked that feature and Gosling didn't.

The process and benefit of asking why is described well in a novel I'm reading: "It put me in contact with military planners from a dozen nations, and more and more they began to come to me with questions well beyond those of military strategy. ... I didn't think my answers were particularly wise, I simply said whatever seemed obvious to me, or when nothing was clear, I asked questions until clarity emerged."

What made this process so amazing with Don was that we were both doing the same thing: experimenting and telling each other how it worked, which made for a very tight feedback loop. The loop got better as we added more people, like Tim and Keith, both of whom are also amazing thinkers. Audiences are good because of the feedback that they can provide, but optimized feedback like this got us all leapfrogged very quickly into deep COM thinkers.

The goal of all learning is clarity. My own method involves taking in the available material, asking a bunch of "why" questions and then telling somebody else 'til clarity emerges. After COM, I've successfully applied that method to learning how all kinds of other technologies work, how to run a business, how to write, how to manage, how to lose weight (50 pounds and holding) and, most recently, how Microsoft works. Thanks, COM (and Don and Tim and Keith and every audience I've every had : ).