High touch teaching - The algorithm

A recipe for success for teachers interacting directly with students

This is part of a multi-part series in which I outline a framework for teaching code. The full table of contents can be found here

We've all had teachers - good ones and bad ones. The thing to know is that teaching is a set of skills, amplified by mindsets. It's possible to learn to be a good teacher, especially if there is an opportunity for good feedback.

This article is going to lay out a structure to follow when teaching. But before I get into that, I want to point you at a few earlier articles that are relevant here:

Pre-reading

First, you'll need to know why Mastery-based learning and one-on-one (or small group) tutoring is worth pursuing:

Next up, it's worth knowing about why mastery based learning is good for teachers. The TLDR is that it gives teachers a lot of feedback about their effectiveness. If a teacher does a bad job then they feel the pain of that bad job.

This article goes into more depth: Master Teaching (Disclaimer, it is a bit of a rant about how most teachers don't get feedback)

Last of off, a very important foundational mindset is to do with that old and famous quote:

Education is not the filling of a pail, but the lighting of a fire

This has practical implications, discussed in this article: Planting seeds

I'm being very selective in what I'm suggesting here. There are good nuggets of information in many articles in many places. If you have the time, I'd recommend you read all the articles listed here

High-touch versus low touch

This article is about the role of a good human teacher. This is high-touch teaching. It's the expensive kind because it takes the skill and attention of people who are highly skilled.

It's worth talking briefly about trends in education and why they exist. I'm not going to go into a lot of detail at this point.

Firstly, good technical teachers are expensive. They are hard to find and hard to train. Education organisations look for optimisations out of necessity and so they work to replace teachers in different ways.

This is compounded by the fact that teachers seem to be undervalued a lot of the time. This is my experience, but it's also something I've heard from many teachers working in different places. A lot of teachers leave teaching because they are treated a bit like the grunts in education systems - like their job is just shovelling information into people's brains.

On top of that, there are a lot of good tools and resources that are very helpful in education:

There is a lot of educational content available on the Internet, a lot of it is really good and given away for free.

And there has always been a drive towards automation - this is now even more of a thing because LLMs are able to do so much.

There is a need for automation. Modern tooling can amplify the effectiveness of good teachers. There are many ways to empower learners to build skills without the need of human teachers. Humans learn, we're good at it.

All that being said, teachers provide something no algorithm or resource can fully replicate: the nuanced understanding of learners' needs, the ability to adapt in real-time, and the genuine connection that inspires and motivates.

While technology can amplify the reach and impact of educators, it cannot replace the unique role of a skilled teacher in guiding, mentoring, and fostering the kind of learning that shapes not just knowledge but confidence, critical thinking, and curiosity. At its core, education is a profoundly human endeavor, and good teachers are its foundation.

Want to learn from me?

I'm running some technical workshops over at Prelude. These are damn fine learning experiences, crafted with care!

I do the teaching myself (for now)

I'm also offering training and consulting services for organisations that teach. Please get in touch if that is you! My goal is to empower those who empower others.

❤️ Thanks!

Introducing The Algorithm

Yes yes, I did just say that algorithms can't replace teachers. But stay with me on this.

If I am going to spend time teaching a person (or a small group of people) a thing then there is a process I follow and recommend. Here is a very simplified view:

A brief disclaimer on terminology: People have all sorts of connotations around education terminology. I'm going to use some words where you might prefer different words. Just roll with it, ok?

The basic mechanism is this:

First, a teacher prepares for a session. A session can be a class (hopefully a very small one), a tutoring session, or even a quick conversation addressing some confusion or challenge.

When the teacher enters a session with the learner(s), then they enter into a kind of a loop. They focus on understanding the learner(s) so that they can give the learner(s) what they need (Illuminate).

The teaching session is a bit like a mini MBL (Mastery-based learning) loop. If a learner is stuck or not getting something, then that is a challenge for the teacher. The teacher should not move forward until the learner is ready.

At the end of the session it's important to remember that the goal is to empower the learner to continue to learn and grow on their own. Again, I'll refer to the article on Planting seeds.

And all of this is underpinned by a strong foundation: Mindsets and metacognition.

Going deeper

No part of this is simple or straightforward. The diagram looks nice and clean, and it should make some intuitive sense if you have been following along with my writing (or if you are a good teacher already).

A bit about me

At this point I've been working in software dev education for more than half a decade. The majority of this time was spent in systems based on Mastery Based Learning.

I've had a lot of feedback about what works and what doesn't. I've learned a lot of lessons, some pretty hard ones.

In the next few articles in this series, we'll be digging into the details of each block in the diagram. I'll share the most impactful lessons I've learned and a few of the biggest anti-patterns I've seen.

Want to learn from me?

I'm running some technical workshops and long-term mentorship over at Prelude. These are damn fine learning experiences for individuals and teams.

The training covers skills such as: Python, Django, HTMX, AlpineJS, Git, Tailwind, Playwright and more.

Stay up to date

Subscribe to my newsletter. This will be a monthly digest of my latest articles and some other news and goodies.