Teachers aren’t the only ones who teach. As a developer you’re expected to do so too …

By on 2 March 2023

This article appeared first as a Pybites email. To receive this kind of content first, subscribe to our weekly newsletter.

For a long time, I thought I should not make mistakes when teaching other developers.

I would hide behind slides because they were “hardcoded”, safe, or I’d do a lot of editing of my coding videos, they had to be “perfect”, right? Live code, heck no, not me!

But I was wrong!

About a year ago I pivoted and now I teach a lot by live coding (in group setting I mean; I already did this consistently and successfully with people individually for years).

And today watching a training by one of our PDM coaches I was reminded why “teaching by live coding” is so awesome.

I learned so much more by seeing him getting stuck and unstuck, debugging and looking up things. It was fascinating, the subject really clicked, and I got so much more out of my 25-minute investment. 

What it comes down to is being ok with being vulnerable (there’s that mindset again – argh Julian!)

Being ok with making mistakes. Many mistakes. And therefore, showing your process of debugging, problem solving, and your unique approach to getting software written.

It’s a bit ironic (and hence why it took me a while to figure this out), but that’s where people find the value, by seeing you mess up and fix it! 

This is hard to swallow at first, but when you embrace it, you tripled your value as a programming teacher:

  1. First of all, people might think you don’t have to look up things. Wrong! We look up things all the time (this post sums it up well).
  2. People might think that software gets written almost flawlessly on the first attempt. Nope, far from it. It’s constant iteration, including complete rewrites. You often just don’t know the design till you start coding. It’s revealing to show this to people.
  3. We hit many, many little hurdles when we code (the obstacle is the way – as per Ryan Holiday’s book title – is a succinct way to put it). Seeing the perfectly crafted YouTube tutorial can be really discouraging for students, because that’s obviously not what happens on their end. Showing the raw process is a realistic view of how software gets written and what your audience most likely will go through.
  4. Code is much more than syntax. By teaching-by-live-coding, people also see your setup from which they can emulate a more effective dev environment. By showing how you fix “mistakes” you expose more of your setup which is invaluable.
  5. Live coding sessions create a more engaged audience which leads to more and better questions. It challenges you as a teacher resulting in reaching greater depth of the topic at hand. Of course, this goes for code related topics, for more overview kind of topics slides can still be great if they are delivered in an entertaining way.

I am not saying to not prepare anything. Of course, code a little app before teaching it. You need to make sure you don’t make a big design mistake that confuses the audience (although that could be good learning too).

Remember, real mistakes don’t exist, your audience is going to resonate so much more with what you teach.

Also remember, you don’t have to be a teacher to teach Python! Sharing what we learn consistently is part of what great developers do. It’s a form of giving back.

I hope this gave you some inspiration, happy to hear from you if you have questions or feedback, you can connect with me in our Slack community

Keep calm and teach Python 😍 🐍 💪

– Bob


This is very much in line with our approach of JIT (just in time) learning which we teach in our PDM program.

People that work with us adapt quickly (matter of weeks) to this new approach. It gets them out of tutorial purgatory and helps them cope with imposter syndrome, because they gain confidence in their skills, oftentimes skills they thought they did not have or could not develop.

Working with 100+ people 1:1 we learned how to “unlock” the dev skills we all have (!) by building apps that are in the sweet spot of “difficult but doable”. Plus, we help with the idea generation, because we want what you build to boost your portfolio and be something, you’d be proud of.

Interested in learning more?

Want a career as a Python Developer but not sure where to start?