7. Different strokes for different folks

There is no ultimate way to educate or learn

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

By this point we have covered a lot of ground.

We've spoken about simple changes in how a course is delivered can massively change student outcomes; how a teacher/educator should show up and the mindsets they should embody; some common myths; and applications of social science.

If you haven't read those previous articles, I highly encourage it. They lay the foundations for the sections that follow.

We've covered quite a lot of good stuff. But for now it's only theory.

In theory, theory and practice are the same. In practice they are pretty different.

No silver bullet. Kinda

It would be really really nice if there was one ultimate teaching/learning mechanism that would work in all cases. But alas...

If you want to teach a person a thing then there is a lot to consider in your approach. There are many different practical techniques that come into play based on those considerations.

Consider the topic

If the goal is to teach a person to be a mechanic then the learning will involve some literal hands-on practice. The learning materials will need to have strong visual component.

If the goal is to teach a person to play music then there will be a strong auditory component.

If the goal is to teach basic programming then the learner should be encouraged to practice and explore in a certain way. If the goal is to teach the learner more advanced concepts or specific tools then the approach will be different yet again, although there will be some overlap.

Consider the depth

If you are teaching someone programming so that they can become a software developer or engineer then it's critical to aim for mastery of the foundational concepts and their applications. The learner would need to work to hone specific skills. They should not only be code literate, but should be able to construct algorithms to solve different problems. This takes a lot of intentional practice.

On the other hand, if you are teaching a senior developer how to use a specific tool or framework then prescribing kata-like practice exercises could be ineffective. They might be looking to learn a tool in order to immediately apply it in a project (in which case katas can be a distraction from their aim), or they might be learning a tool in order to know enough to make a good decision about if or when to use it (in which case deep mastery might not ever be necessary, it might make sense to pursue mastery of a different thing instead).

If you are learning to bake a cake then you might not need deep mastery of baking. If you are becoming a pastry chef, more precision is needed, even with the things that overlap with basic baking.

The required depth of learning has a lot to do with the end goal.

Consider the learner

Teaching little kids, adolescents and adults all require different techniques, skills and mindsets. If you are teaching kids, it helps to be playful and to leverage humour, rhythm and their natural curiosity. When teaching adolescents, stories help a lot. Adults often find themselves in learning environments because they have put themselves there intentionally and want to get something specific out of the experiences.

This is an over simplification and an over generalisation. But it's worth considering. What are the natural strengths of these different groups and how can those be used in education? Little kids have strengths that adults do not. And vice versa of course.

A friend of mine recently recommended that I take a look at the Lost Tools of Learning Substack. It's brilliant. It is primarily focused on homeschooling and kids which isn't exactly my niche, but it has definitely influenced my thinking about how to leverage the strengths of learners, and what learning and education is really for.

Consider the system constraints

If you are truly serious about getting as many learners to succeed as possible, then mastery based learning and one on one tutoring are the way to go.

But that stuff is very expensive and operationally challenging to pull off. To get it tight it takes tools and skills that most education providers don't have access to and haven't even considered as an option.

If there is limited budget, limited time, limited attention, or if the depth to which you are teaching actually isn't that deep then it is often useful to use lighter mechanisms. The gold standard weighs quite a lot and more traditional approaches to education have served many people.

What's next?

What follows in the next sections are specific mechanisms and low level details on how to teach well. The techniques discussed will be useful in certain circumstances and not others. The plan is to give you a few different tools you can reach for when you need them.

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.