As well as being in tech, I’ve spent a small amount of professional time as a teacher / lecturer. I’ve taught at the FE college level (arboriculture and woodland management) and university level teaching “front-end-design” things” (HTML/CSS, typography). I also spent some time doing technical training workshops (Python / Django and basic command prompt usage) in a freelance and employed capacity for Mozilla way, way back in 2010. There was a time I thought my teaching qualifications meant I was going to become a teacher. That didn’t happen. I ended up, and happily so, back in tech. I came to the conclusion that if I really wanted to help people learn, I had to get as far away from education as possible. That’s a topic for another day.
Teaching isn’t about giving a presentation and asking “any questions?”. Learning isn’t about having a question lined up for the obligatory “questions?” at the end of a presentation. Teaching and learning is a journey that is just as much an emotional pursuit as it is an intellectual pursuit. Many people expect the second, but not the first. Learning changes you because once a new thing has been learned, you now have an expanded world model.
So where do I start? Good question. I start with this …
Blooms Taxonomy
Anyone who has come near to the topic of teaching or studying will have come into contact with Blooms Taxonomy. It’s unavoidable, and probably one of the most brilliant frameworks in Teacher Land with Maslow’s Hierachy of Needs coming in a close second.

I’ve avoided the usual pyramid form because whilst it’s a useful way to get an idea of the framework, I think it creates this notion that learning is linear and predictable like time. It isn’t.
Learning
I wrote about why learning isn’t linear on my more woodland focused publication a few years ago. Some days you can learn, some days you can’t. Maybe your cat injured itself, you got less sleep and whatever retention you had was lost to distraction and tiredness. You have to remember that you are effectively upgrading your firmware when you learn. Increasingly as you age, the upgrades are harder and resisted more. The body and mind love to defend against energy expenditure and change.
Learning also isn’t always fun. We all remember the dopamine hits when the penny drops on a concept you worked hard to understand. We often don’t remember the bits where we doubt ourselves and spiral into doom. The doom spiral is something I am acutely familiar with. I find my way out of doom spirals by sketching, doodling and drawing them. This was a particularly dark one from 2023.

So learning isn’t predictable, linear or fun. This is why I see the value in learning Blooms Taxonomy as a pyramid but when it comes to applying it, I think that value is inverted. It makes the journey seem longer, makes the basics feel dull and encourages cycle of doubt and doom. Learning is essentially a series of cycles that do have a linear trend, but you don’t really feel it. What you feel are the ups and the downs.
I think of it like this:

For the most part there’s always a gap between perceived skill and actual skill. There’s the days where you feel like you’re epic and that you’ve “arrived” at being fully competent. They’re great and we remember them. Then there’s the days where you realise your skills are not what the seemed to be, you feel like you’re pointless, wasting your time and generally making a fool of yourself. You feel these days. At least that’s my experience. Neither is this entirely a situation familiar to learning, it applies directly to the work we do as professionals. Same thing, only we tend to call the lows “imposter syndrome”. These peaks and troughs are connected, essential and all evidence of progression.
Understanding these principles and emotional spectrum is central how I teach and lead a group of students when learning. You cannot teach if you don’t understand the mechanics of learning and the emotional response to learning. You may have experienced this as a student. You can tell in a second if the teacher is going to be a waste of your time. It’s a gut thing. You certainly feel it as a new teacher wrestling to learn learning and teach at the same time. There’s no fix. You just have to slog it out. It’s not fun, it’s not predictable and it’s not linear and when you’re bombing out it is a new level of hell.
Point made, let’s move on.
Basics
At teaching basic levels, primarily you’re laying out out a map of the topic. Then you setup base camps at key places on that map. The move to intermediate is metaphorically like developing the base camps into towns. I will cover intermediate in another post.
The basics are always easy to teach as most students are roughly in the same cognitive place; little to no knowledge of the layout of the land. When teaching code the playbook was like rules, syntax, idiomatic patterns, tooling and basic debugging approaches. The approach is quite behavioural; do this, don’t do that kind of thing.
Blooms as a progress meter
Assuming a group of people (students, or a cohort of new hires waiting to be on-boarded) starts out in the same place when learning, then as a group everyone mostly progresses at the same speed. As you teach any group, you need to be constantly assessing. You can make use of Q&A to do this, group tasks (set cringe to max) or just ask the students to assess themselves. However you do it, you need to do it as that’s your key metric when “in-flight” teaching.
Back to Blooms Taxonomy and why I prefer to view it as non-pyramid and more of a “progress meter”. It would be tempting to say “basic, intermediate, advanced” and deduce that “basic: remember, understand. Intermediate: apply and analyze and finally advanced: evaluate and create.” Don’t do that. Let’s understand why.
You’re teaching a basic such as the CSS box model…
/*
Assume this structure..
<body>
<div>
<h1>
Hello, World!
</h1>
</div>
</body>
...and assume the default of content: content-box;
*/
div{
margin: 10px;
padding: 10px;
width: 200px;
border: 1px solid black;
}
/*
q: what is the width?
*/
You set the class an easy question of “What is the width of the div? (a: 222px)”. In order to get to the answer you’d have to remember and understand the box model, but you’d also have to apply that knowledge to give the answer. Now lets ask “How much space does it take on the page? (a: 242px)”. In order to get to that answer the student has to analyse a few concepts. So does the fact we’re at the “analysing level” mean the student is at the intermediate level of CSS? Obviously not, but it does mean the students knowledge of the basics is progressing and, in this case, fairly well.
But we’re still building basecamps. The box model is one, responsive design is another, accessibility is another, variables, layers, to-framework-or-not-to-framework etc etc. Just because our students are able to analyse the box model, doesn’t mean they’re up on accessibility issues like contrast, font scaling and where CSS-land shares borders with guidance and concepts such as WCAG and ARIA. Blooms Taxonomy may be used at all levels in basic land, so don’t think that a students ability to “create” implies that they’re reading to start dropping mad animations using ::before and ::after. If you asked a simply question, “draw me an example on the board of a div and mark up the css and give me the actual size and the effective page space it takes up” then you’ve got a create situation.
Map of the topic & basecamp building
As the teacher, lead engineer, lecturer, facilitator, whatever I’m called when I doing it; when I’m doing the basics it’s mostly me. 70% me, 30% the people I’m engaging in learning. I’ve got two main objectives – first, laying out a map of the topic and second, setting up base camps in each key area. Some people are going to learn faster and some slower than others (managing that is topic for later) but for the most part the entire group is with you. Blooms Taxonomy being the tool of choice for engaging the group and getting an “in-flight” metric on group and individual level progress.
Example, let’s imagine “Foo” remembers stuff easily but doesn’t quite understand it, “Bar” is way ahead and easily creates examples. The rest of the group is in between and called A, B, C and D.
“Ok, Foo, give me an example of a module attribute in an Elixir module” me
“Err … @whatever?” Foo - ending in a raised pitch because they’re not certain.
“bang on, now give it a value” me
“Emm ahhh … @whatever = 2” Foo
“Nice, thankyou. You’re close, but there’s a syntax error - can anyone other than Bar tell me what it is?” me
(A, B, C, D all avoid eye contact)
“I’ll pick someone directly in 3, 2 ….” me
“you don’t put an equals when doing module attributes” B, reluctantly
“Thanks B, you should 100% trust yourself more you’re spot on. Well done.” me
“Alright last question before we take five. Why aren’t module level attributes suitable for config values that you’re taking from the environment at runtime? and that’s for the group…” me - but I suspect Bar is going to answer it
“It’s got something to do with the fact that unlike Python or JS, Elixir is compiled but I’m not quite clear on it” B, not reluctantly - me; chuffed because my little confidence boost worked
“Ten points B, nailed it but I wonder if anyone can clarify it…” me and I don’t give out points lightly. (A, C, D 100% not wanting to answer - I can smell their heart rates like a teacher vampire)
“Ok, anyone … … … … Bar?” me, leaving twice the silence than is comfortable for me or the group
“Module attributes are evaluated at compile time, so by the time your app is running, the value is already baked in. If you try to pull from the environment at that point, it’s too late – the module’s already been compiled with whatever was there when you ran mix compile.” Bar, probably while already looking at the next thing which is 100% something I need to manage before I lose them
Teaching Style
I’m fairly charismatic. Possibly very, but I’m also very humble as a defence mechanism. A dichotomy if ever there was one. How you teach and lead a group depends very much on your own style but I tend to be very performative. My weaknesses are mainly around giving too much away (through enthusiasm for the topic) and going off on tangents to connect boundaries of related topics. My strengths are in engagement, resilience and tackling disruption though comedy. You will be different, but you need to understand yourself before you get in front of a group.
If you’re lucky enough to be in a professional setting then you can expect a reasonably safe level of challenging situations to be thrown at you. If you’re in a group of 16-30 year olds who understand “best behaviour” means censoring their use of the “c-word” whilst dropping “f-bombs” faster than Aesop Rock drops albums, then you may be torn to shreds in minutes, possibly seconds. Expect to leave the classroom in tears and never come back. I’ve seen it happen more than once.
But you can use Blooms Taxonomy and social dynamics to your advantage in both of these situations and I think it works because of emotions. I’ll give you an example from the 16-30 year old group. It is a a real example from a Monday afternoon between 2pm - 4:30pm. A class of 15 where normally 12 showed up. The class was about woodland management which was about 20% interesting to them. They came to the college to learn how to climb trees with a chainsaw and avoid ever being inside or paying tax. So to have them for two and half hours inside, talking about something they were only vaguely interested in was a challenge.
There’s two main leaders in the group. One, a sensible ex-forces mature student in their late twenties and the another who, despite his upper-working class background, played the character of a scallywag. Both extremely intelligent in their own ways. The students who wanted to learn normally organised around the ex-forces guy. The wannabe-scallywags organised around the pseudo-scallywag. The rest organised themselves quietly so as not to be singled out to declare for a team.
The group 100% wasn’t concerned about Blooms Taxonomy and just interested enough with woodland management for me to hold the class together for two and half hours. What the group did have, and in abundance, was banter and an ever struggling leadership battle between the two camps. You can probably see where I’m going here.
My trick was to ask the scallywag cohort a question, an easy “remember or understand” level question. They’d play it cool but eventually give up an answer. I’d bounce that over to the sensible crowd and ask for more detail or upgrade the question to an “apply or evaluate”. I’d bounce it back to the scallywags with another upgrade but crucially, I’d insert some banter related context that they couldn’t avoid getting into. I’d basically “gently challenge” their world views. I’m not giving examples of the banter because what happens in class, stays in class. But the point is that a response had to be given otherwise they’d cede a point to the sensible crowd. Embedded in their answer the were the seeds of higher levels of learning in “evaluate” and “create” type answers.
Depending on how well that days leadership battle was going, I’d bounce it back to the sensible crowd. Some days though, I’d let the scallywags win. Just to keep the game on.
Conclusion
I’ve applied these approaches in multiple, very different scenarios. In my capacity as CTO during 1:1’s I used it frequently, if not perhaps sneakily, to get a feel for certain DevX issues. “Hey, talk me through how you deployed that new service into production”. I’ve used it in classroom of 16-30 year olds teaching them level 3 arboriculture topics such as “pests and diseases” that they 100% did not want to learn because they wanted to be up a tree with a chainsaw. I’m pleased to say I succeeded in both camps. Maybe I was laying on the art history a bit much in the pest and disease classes though. But I made a commitment to my old art history teacher1 to always spread the art gospel. Even if it did mean going off on a tangent, but hey, at least they now know about some art history.

When you’re teaching the basics, in any subject, you need a strategy to gauge how well the group are progressing and a strategy to hold the group together. Blooms Taxonomy as a means to facilitate learning is a great strategy for gauging progression. Holding a group together? well that’s up to you and your style but however you do it, you have to hold engagement and use all the levels of Blooms Taxonomy. If you don’t then your lessons are going to be duller than a dull day in Dullerton, Dullswitch watching Dully McDullface paint his dull house the dullest shade of dull your dullest self could imagine.
And that’s going to make the learners scream internally at best, or directly at you at worst.
-
Jean Stoker - my former art history teacher who was a true inspiration for turning a dry topic into one of the most engaging two years of lectures I’ve ever had. ↩