When "It Works" Is Not Good Enough • Live Workshops
You’ve been reading articles here on The Python Coding Stack. How about live workshops?
I need your help to find out whether to run more of these–and yes, you can still sign up for this series of three workshops that start next week. See the information below.
But can you answer this one question for me please:
If you answered ‘something else’, you can reply with your reason–it will help me judge what readers want.
If you’re interested and haven’t signed up yet, here are the links you need (and details about the content and workshops are further down):
Book your place on all three workshops in one convenient, cost-effective bundle:
Or book workshops individually if you only want to attend one or two:
#1 • Python’s Plumbing: Dunder Methods and Python’s Hidden Interface
#2 • Pythonic Iteration: Iterables, Iterators, itertools
#3 • To Inherit or Not? Inheritance, Composition, Abstract Base Classes, and Protocols
You write code. It works. And that’s great.
But do you feel that “it works” isn’t good enough? You need to understand Python’s “behind the scenes” to write robust and efficient code. If you’re keen to step up your Python coding, then I’ve got a series of live, hands-on workshops coming up. I think you’ll find them interesting and useful.
Here they are:
Python’s Plumbing: Dunder Methods and Python’s Hidden Interface
Pythonic Iteration: Iterables, Iterators,
itertoolsTo Inherit or Not? Inheritance, Composition, Abstract Base Classes, and Protocols
Each live workshop will run for 2 hours+ (we’ll keep going if you have more questions!) My live teaching style is quite similar to how I write. So, expect a relaxed, friendly, and fun session. And you have permission to jump in and ask questions at any point.
Here’s a bit more about each workshop. You can sign up to whichever workshop you wish or all three of them. Up to you.
1. Python’s Plumbing: Dunder Methods and Python’s Hidden Interface
I know you’ve heard the phrase “everything is an object in Python.” But why does this matter? And here’s a less-catchy phrase that’s just as important: “Everything Python does goes through dunder methods at some point.”
You can think of a program as a conversation between Python and its objects. Python says “Hey object, are you iterable?” or “Hey object, do you understand what + means?”
The first workshop in this series explores the key special methods–or dunder methods, if you prefer the casual term. You’ll discover how every operation Python performs is managed by each object’s dunder methods. And you’ll start seeing Python programs through a different lens once this all clicks.
2. Pythonic Iteration: Iterables, Iterators, itertools
What happens in a for loop? There’s a lot more than you see on the surface. And if you’re using too many for loops in your code, maybe you’re missing out on some more Pythonic iteration options.
In the second workshop, you’ll finally get to grips with the difference between iterable and iterator. You’ll master the Iterator Protocol and you’ll see how there’s always an iterator somewhere behind every iteration. And you know lots of weird iteration patterns, often consisting of nested for loops? You probably don’t need them. Python has special iteration tools hidden in the standard module, including the itertools treasure trove.
3. To Inherit or Not? Inheritance, Composition, Abstract Base Classes, and Protocols
When you learn object-oriented programming, you learn about inheritance. And that’s cool. But when should you use inheritance? Are there alternatives? [Spoiler alert: yes, there are]
The third and final workshop explores inheritance, yes, but also composition. We’ll explore examples to understand when to use one or when to use the other (or when to use both). This discussion will lead us to some key design principles and how abstract base classes can help. But what if you don’t want to use inheritance? ABCs can’t help, but protocols (the typing.Protocol one) can step in to give you a duck typing-friendly way to organise your code.
I’ll run each workshop in the Python Behind the Scenes series twice so that you can choose the day and time that suits you best. You’ll also get the recording of the session.
The workshops are on Zoom but I won’t use the webinar format–that’s too ‘one-way’ for my liking. Instead, I’ll run them in a standard Zoom meeting where you can jump in and ask questions at any time. It’s friendlier that way!
Any questions? Just reply to this email and ask.
Join the Workshops
Each workshop is $45. Or you can get all three for $100. That’s 6+ hours of live, hands-on, interactive learning…
Here are the dates and times for each workshop. Each workshop runs for 2+ hours. I’m showing times in a few time zones:
1. Python’s Plumbing: Dunder Methods and Python’s Hidden Interface
either
Thursday 26 February 2026 • London 9:00 PM • New York 4:00 PM • Los Angeles 1:00 PM • Berlin 10:00 PM • UTC/GMT 9:00 PM
or
Sunday 1 March 2026 • London 4:00 PM • New York 11:00 AM • Los Angeles 8:00 AM • Berlin 5:00 PM • UTC/GMT 4:00 PM
2. Pythonic Iteration: Iterables, Iterators, itertools
either
Thursday 12 March 2026 • London 9:00 PM • New York 5:00 PM • Los Angeles 2:00 PM • Berlin 10:00 PM • UTC/GMT 9:00 PM
or
Sunday 15 March 2026 • London 4:00 PM • New York 12:00 PM • Los Angeles 9:00 AM • Berlin 5:00 PM • UTC/GMT 4:00 PM
3. To Inherit or Not? Inheritance, Composition, Abstract Base Classes, and Protocols
either
Thursday 19 March 2026 • London 9:00 PM • New York 5:00 PM • Los Angeles 2:00 PM • Berlin 10:00 PM • UTC/GMT 9:00 PM
or
Sunday 22 March 2026 • London 4:00 PM • New York 12:00 PM • Los Angeles 9:00 AM • Berlin 5:00 PM • UTC/GMT 4:00 PM
When you book a workshop, you’ll get access to both sessions for that workshop—so you don’t need to pick a date just yet. You can then join the session that suits you best (or attend both if don’t mind hearing the same thing twice!)
Book your place on all three workshops in one convenient, cost-effective bundle:
Or book workshops individually if you only want to attend one or two:
#1 • Python’s Plumbing: Dunder Methods and Python’s Hidden Interface
#2 • Pythonic Iteration: Iterables, Iterators, itertools
#3 • To Inherit or Not? Inheritance, Composition, Abstract Base Classes, and Protocols
So, in summary:
3 great live workshops to master core Python and improve the quality of your code
2+ hours each, live, interactive, hands-on
Ask questions during the sessions—your questions always lead to interesting discussions
See you at one (or all) of these workshops…


