Bootstrapping the basics
By Tyler Calder
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 unity1, 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 it2). It is only by this “meeting of the minds” that a teacher is able to help bring understanding to a pupil3.
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 code.
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.
S. Kierkegaard, Kierkegaard’s Writings, VII, Volume 7: Philosophical Fragments, or a Fragment of Philosophy/Johannes Climacus, or De omnibus dubitandum est. (Two books in one volume). Princeton, NJ: Princeton University Press, 1985. 25. ↩︎
S. Kierkegaard, Kierkegaard’s Writings, VII, Volume 7: Philosophical Fragments, or a Fragment of Philosophy/Johannes Climacus, or De omnibus dubitandum est. (Two books in one volume). Princeton, NJ: Princeton University Press, 1985. 16, see the footnote. ↩︎
C. Van Doren, How to read a book. New York, NY: Touchstone, 1986. 106-108; It is interesting to note that on face value it would appear that Doren and Adler disagree with Kierkegaard (and Socrates), indicating that it is the responsibility of the reader/learner to come to an understanding with the author. This is merely a temporal artifact of the medium they discuss. They are simply making the point that writers write to be understood. If we grant that, then after the fact it should be possible for a reader to come to an understanding of what the writer is trying to convey because we expect that the writer did all they could to be intelligible. It also shows, and Kierkegaard agrees, that knowledge cannot actually be imparted from a teacher to a learner, only that a teacher can aid in the delivery of that knowledge. ↩︎