How I became a teacher

by Gordon Zhu, October 2022


Background
Learning to teach
What to teach
The agony of teaching computing
The other side of agony


Background

As a naive economics undergraduate, I became bothered by a persistent question. Why are some countries poorer than others? I didn't get simple answers because there are none. The underlying issues are multi-factorial, shockingly complicated, and counterintuitive. The economist Russ Roberts has a term for this class of problems. He says they are "wild".

In any case, I came to believe that I could push at this problem most effectively through education. The thinking is simple. People who are more capable do better work. Multiply this factor throughout society, and you have cities, states, and countries that are more productive. And more productivity means more wealth.

I was relieved to finally figure out what I should do. The only problem? Education is one of the wildest problems of all.

Learning to teach

I was lucid enough to realize that I was probably not very good. After all, my own teachers had decades of experience, but only a handful were any good. Why would I be the exception? To grade myself without bias, I designed an experiment.

I would take a group of five motivated high school juniors who scored ~2100 on the SAT (out of 2400 possible points). If I could get all of them to score 2350 or higher, then I would pursue this teaching thing. If not, I would need to reassess.

Right away, I noticed their approach was completely different from mine. They relied on instinct. They described "feeling good" about questions. They had to be "in the zone". Everything was highly variable and slightly tenuous.

Meanwhile, my approach had no instinct whatsoever. I felt calm and methodical, similar to how one might work through dozens of rote arithmetic problems. I was certifiably bored. It was all straightforward and deterministic. And of course it was, it was a standardized exam!

My approach is to methodically break apart every problem completely into pieces. Each piece, when examined on its own becomes simple and obvious. After you understand every individual piece, you reconstruct them to get a full understanding.

In contrast, the students principally relied on a sort of primitive pattern-matching ("this reminds me of problem x, so I'll do the same thing"), not unlike the way a machine-learning algorithm might detect cats on the internet.

Having students abandon this approach became a devious problem. Over time, I came to understand the resistance. It's extremely difficult to abandon something that works a majority of the time, but not all the time. It's risky to let go of something that works pretty well for something unknown.

To counteract this, I had to prove that my method always worked. To do this, I had to painstakingly demonstrate my approach over and over. When students came across a question they thought was "tricky" my ears perked up. I would walk them through my process and show them that it was not tricky at all. In fact, it was boring, just like all the others! Each time this happened, there was a clear case where my method worked and their method failed.

The boringness of my approach was crucial. There is a stereotype of a mad genius thinking very intensely. I wanted to squash that notion. I wanted to show that perfection here required no special effort. That's because the way you do things does the heavy lifting rather than the effort.

There is an analogy to how programmers think about correctness. Novices think determining correctness is a matter of trying a lot of inputs. My approach instead is to consider all possible inputs, in exactly the same way a mathematician might write a proof. Not all approaches and methods are created equal. One approach is reliable, another is not. This is a theme that would come up over and over again.

A year later, and the results came in. Everyone scored above 2350 and one got a perfect 2400. I would continue with this teaching thing.

What to teach

The predominant educational model is to load people with knowledge. From this model we get phrases like "knowledge transfer" and "knowledge is power". This produces people that are good at memorizing things and not thinking too much. Math gets the same treatment, rather than focus on the reasoning behind math, we focus on plugging numbers into formulas on a cheat sheet.

Kid: "Why does this formula work? Who thought of it? How?"
Teacher: "We don't have time to think about that, we have so much more to cover."

The problem with this model is that while we are busy loading up students with all sorts of knowledge we neglect to notice that they struggle to string coherent thoughts together. They struggle to apply basic logic to problems. They do not know how to determine if something is true, and instead rely on authorities and emotion, becoming easy targets for manipulation. They struggle to ask questions. They struggle to make progress on problems that are not clearly defined. They do not know what to do without being directed.

Unsatisfied with this approach, I wanted to focus on underlying skills instead. What are the core skills that enable everything else? I settled on logic, communication, and character.

I then needed a way to bribe people to work on these skills because I've been to the gym in January. Programming was appealing because it could address all three core skills. Computation is formal logic, encoded in a way that a machine can understand. It is a way to practice communicating with people, since programs are read by others. Finally, it's difficult enough that strategies for dealing with mental discomfort, failure, and uncertainty become necessary (character).

The bribe? With programming you get access to growing economic opportunities, interesting work, and the satisfaction of understanding the technology you use everyday.

The agony of teaching computing

In computer science, there are two philosophies. The dominant one approaches it as a "knowledge transfer" problem. From this, we get X-month cram schools, where students are loaded up with knowledge that they have not thought much about. It is dominant in the same way that the least effective methods of diet and exercise are dominant. Here, we see the essential formula. Weak or temporary results are plastered over with an irresistable bribe: "get 6 pack abs by wearing a belt", "eat steak and bacon and lose weight", "just take a pill".

It would of course be better to take a more sensible approach. Eat well, exercise, and sleep. But what is irresistable about that? "There is nothing new there", the stunned student explains! He's stunned that I would propose something so unappealing, obvious, and BORING. I call this "nothing new" syndrome. To be clear, having it is not an advantage.

Every single day, without fail, someone develops the urge to tell me that there is nothing new in my work. It comes in varied forms.

  • "Do you cover dibbleDabble.js?"
  • "How many languages do you teach?"
  • "Will I be full stack?"
  • "Will I learn about x?"

Hearing this over and over is the agony. The issue is the inability to understand that more knowledge is not the only way. These questions and their variants are symptoms of that misunderstanding.

The other side of agony

Teaching is by far the hardest thing I've done. This is a good thing, as hard problems are inherently interesting. Hard problems can haunt you; you can't stop thinking about them. Being able to actually make progress on a haunting problem is satisfying because the opposite is terrible. It is painful to see problems but feel that you are powerless to help.

If you want to be a good teacher, you need to fully understand your students. The problem is that each student is imperfect and emotional. You cannot use reason and logic alone. I try to simulate the student's mind inside of my own, as accurately as possible. Each time is an opportunity to run little experiments to improve my simulations. Over the years I've improved drastically, but improvement here is perpetual. I can approach but will never reach perfection. This is the most interesting part of teaching and the hardest.

Finally, between the moments of my own agony and failure, there are fleeting moments of satisfaction. They are rare, but they are exceptional enough that I do not need to have so many of them.

I do not get much satisfaction when someone simply gets a job, or does better than they otherwise would have. I am talking about the moments where a student has truly learned to incorporate my thinking into theirs. In a way, a piece of my brain is simulated in theirs. That is the ultimate satisfaction. In these cases, I'm reminded of a younger version of myself, when I wanted to see what I could do to push society forward but wasn't sure where to start. These are the moments that give me hope and keep me going.