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 : ).