Training and Understanding
For most of my career I’ve had the opportunity to help train others as a part
of my job. While it wasn’t something I expected to do, I have really enjoyed
it. I was particularly blessed to have at one time a good mentor who was
willing to take me under his wing and was equally excited about the craft of
programming. I hope that I can pass that along, helping others develop the
same love of programming that I have.
One of the most difficult things about training and teaching is remembering
what it was like to not know the subject that is being taught. However, Since
understanding can only be met through unity, it is incumbent on an
instructor to get into the mind of the pupil. This is because someone without
knowledge cannot understand what it is like to possess it. The position is
asymmetric (or “decisive”, as Kierkegaard would put it). It is only by this
“meeting of the minds” that a teacher is able to help bring understanding to a pupil.
It is then, with a little bit of joy that I was able to relive a little of my
ignorance. When I was first learning programming I really wanted to be a great
coder. I wanted my code to look great and to run better. I purchased Bob
Martin’s Clean Code, and ravenously ate it up. What I loved about that book,
was that the format is simple. Each chapter covers a topic of programming, and
includes easily discernible rules to follow. Here is how you should write
Comments. Here is how to name your functions. Here is what you should do with
variables. I took them in and dutifully began implementing the rules in my
A few months ago, I decided to pick up the book again.
Reading through the book I began to recall the feelings I had all those years
ago. However this time I recognized less rules, and more illustrations of
important principles that experience had helped me to understand.
This introduction to my past ignorance was humbling at first. My reaction was
to think about how incredibly naive I had been, to take those rules to heart
and not understand the principles they were demonstrating. I could remember
situations where I foolishly applied rules that utterly contradicted some of
the principles that they were intended to teach. For example I remember
frequently adding functions, simply to get smaller functions, ignoring the
cohesiveness of the functions and creating disjoint levels of abstraction.
However after further contemplation, I realized that that initial reaction was
foolish and overly contemptuous of my former self. It was only through the
deliberate application of those rules that I was able to achieve the
experience that granted the understanding.
This generalizes to life. I believe that in all things, we must “bootstrap” the
basics. The rules for anything in life are always based off underlying
principles. However, the true understanding of those principles are rarely
something we can achieve without first applying them. In other words
understanding is purchased through the choice to apply principles. But how can
we apply something we do not understand? That is what I mean by bootstrapping.
We must first receive rules based off of the principles and then follow them to
gain understanding of the principles that they are based off of. Only then can we
begin to understand the principles and use them to derive the rules of life.
This seems oddly simple, and common sense. In fact it may be so common sense
that some might complain that I’m being vacuous. However in our current era
there also seems to be an allergy to being told “Trust Me”. People demand
to understand principles before they apply any of the rules that follow from them.
Teachers betray a lack of faith in their own teachings by not asking a student to
trust them. It doesn’t happen always, but it is much more common than not.
What we can learn
So what are the take-aways? I think there are a few:
Teachers: Make sure you give ample opportunity for your learners to have chances
to gain experience. Make sure you review not only the basics, but remember to understand
how your pupils comprehend the basics. Understand the ignorance of your past to better
understand how to instruct the principles you are teaching. Simple rules are often better
to illustrate than expansive expositions.
Beginners: Trust your teachers. Do what you can to understand the principles they teach, but
then go and try to apply them. At a point you will not be able to grow without getting your
hands dirty and making silly mistakes.
Intermediate learners: Don’t be haughty or dismissive of the basics. They found
the basis of everything that you will learn. Review them. If you hear someone
extolling a basic rule, do not rust to judge them as being overly simplistic. It
may be that they have better understanding of the principle than you and are
merely trying to explain it.
A Final note
It being December, it is a good time to reflect on the greatest gift, the
Condescension of God, where in Christ came and became like us. He is the
teacher for our souls. He suffered our pains so that he can understand us and
so that we can become united with him, and so that he could teach us the way.
Merry Christmas, and Happy New Year.