MEMO · TO readers evaluating a workshop or a speaker · RE Capacity Building

Insights Capacity Building

A thousand for-loop sermons later, I finally noticed what I was actually teaching

A classroom pattern about resisting vectorized code turns out to predict, almost exactly, how the same learners resist delegating work to AI, and where the caution should actually be aimed.

Download branded PDF report
Dr. Joshua Lau

About the author

Dr. Joshua Lau

AI Transformation Leader and Accredited Adult Educator

Managing Director leading AI transformation at a Malaysian manufacturer, and a WSQ and HRDC accredited trainer who has delivered generative AI and agentic AI training to more than 1,000 learners across Singapore and Malaysia.

Read the full profile ›

If you've sat in one of my Python classes, you've heard the sermon. Stop looping through your dataframe row by row; use the vectorized operation. And while we're at it, stop assuming a pandas method has changed your dataframe, most of them return a new object and leave the original untouched unless you say otherwise. Check, don't assume. It's technical, narrow, and about as unglamorous as teaching gets. I've probably said "you don't need that for-loop" a thousand times across a thousand-odd learners, and for most of those years I thought of it as nothing grander than data hygiene.

It took me an embarrassingly long time to notice the pattern sitting in plain sight, given how often it played out in front of me. The lesson generalises, almost exactly, to how people approach delegating work to AI.

Watch a learner who resists vectorization. The objection is rarely said out loud, but it's always the same underneath: if I loop through the rows myself, I can see each step happen. The vectorized version does everything at once, somewhere below the surface, and hands back a result. To someone new, that feels like losing control, even though it's faster, less error-prone, and how the tool was designed to be used. Now watch the same learner, weeks later, in an AI delegation exercise. Same person, same hesitation, new costume: if I do each step of this workflow myself, I can watch it happen; if I hand the whole thing over, I'm trusting a black box. The instinct is identical. A reasonable, hard-won distrust of anything you can't observe line by line.

For a while I found this frustrating to teach around, and my early response, if I'm honest, was to try to talk people out of the caution. Show enough demos, assert the reliability, wear the resistance down. It didn't work, or rather it worked in the worst possible way: it produced compliant learners rather than convinced ones. They'd vectorize in class and go back to loops at their desks. They'd delegate in the workshop and go back to babysitting every step on Monday. I was winning the session and losing the month, and for longer than I'd like, I blamed the learners for it.

The reframe that actually changed my teaching came slowly. The distrust isn't a defect to be removed. It's a virtue aimed at the wrong layer. These learners are correctly refusing to trust what they can't verify, the trouble is they've located verification at the level of watching every intermediate step, when it belongs at the level of defining the check and verifying the outcome. You don't need to watch the vectorized operation execute; you need to know what the resulting dataframe should look like, and confirm it does. You don't need to supervise each step of a delegated workflow; you need acceptance criteria for the output and the habit of applying them. Same caution, better placement, and suddenly the tool's speed stops costing you your confidence.

Exhibit · Same caution, relocated

Where the scrutiny actually belongs

DomainOld placementBetter placement
Vectorized codeWatching every for-loop iteration happenConfirming the resulting dataframe looks right
Delegated AI workflowSupervising every step as it happensDefining acceptance criteria and checking the output against them

So the classroom job, as I understand it now, was never to manufacture trust in AI. It's to relocate scrutiny, from process-watching to outcome-checking. Learners who make that move keep their scepticism, which they should, and gain the leverage, which they need. And I get to feel marginally less foolish about all those years of for-loop sermons, because apparently I was teaching the delegation mindset the whole time. I just hadn't noticed.

If you take one thing: when someone resists delegating to AI, don't train the caution out of them. Help them move it, from watching every step to checking the outcome. The caution was never the problem.

Dr. Jayarethanam Pillai

Before you go

The reframe in this piece is sharper than its modest subject line suggests. Joshua's point that a learner's resistance to delegating is not a defect but caution aimed at the wrong layer, watching every step instead of verifying the outcome, is a genuinely useful way to think about institutional delegation too, not just a classroom exercise. I spent years training junior staff and doctoral candidates to release control of a process without releasing responsibility for its result, and I never had language this clean for what I was actually asking them to do. Relocating scrutiny, not removing it, is the right instruction.

Signature, Jayarethanam Pillai