Early in my career, the way I learned was blunt and physical, almost. I’d build something, watch how it behaved, and pull apart whatever didn’t work. The feedback was immediate and the corrections were mine to make — which ideas connected, which broke things, which caused my senior engineers to raise an eyebrow in the particular way that meant I’d missed something worth understanding. There wasn’t much strategy to it, but there didn’t need to be. The feedback loop was tight, and I learned an enormous amount in a short time.
That first mode — learning through direct feedback — works when the system you’re working with provides immediate, legible consequences. Write bad code and it breaks. Miss something in a design and you see it in the next sprint. The close coupling between action and consequence makes learning fast, if not always pleasant. What it requires is proximity: you have to be close enough to the work, and junior enough in the hierarchy, that the feedback reaches you quickly and personally.
By the time I was at Comcast, and then more acutely at Capital One, I noticed the feedback loops getting longer and the signals getting noisier. A technical decision made in quarter one might not reveal its problems until quarter three, and an architectural call that looked right for a year could take until the edge cases appeared to show what was actually wrong. The first mode was still useful but it was slower and the lessons were harder to isolate — was this outcome caused by that decision, or by the twelve other things that changed in the meantime?
What filled that gap was a second mode: learning from other people’s mistakes. I became a deliberate student of failure in a way I hadn’t been earlier — not my own failures specifically, but failures from anywhere I could observe them. Postmortems became genuinely interesting to me rather than an obligation. I’d listen in on other teams’ architecture reviews specifically to watch which assumptions got challenged and which sailed through unchallenged. I’d have lunch with engineers from completely different stacks and ask about the things that had gone wrong for them and what they’d learned. The efficiency here was that you could get the lesson without paying the cost of the failure, which at the scale of a multi-year project is a real and substantial efficiency.
The mode I’m in now is different again, and it surprised me when I noticed it. Teaching is how I learn — not in the reinforcement sense, but in a more specific way: working through an explanation with a new manager or an engineering leader, I regularly discover that I don’t actually know what I thought I knew. I’ll be halfway through explaining my reasoning and realise I’ve hit a fork where two equally compelling paths diverge and I’m not actually sure which one I think is right. That’s information. It tells me where my mental model has gaps that I hadn’t noticed because I hadn’t tried to articulate it.
The other thing that’s changed at this stage: the people who challenge my thinking most productively are people who came up differently than I did. Engineers who started in a cloud-native environment and have never thought about on-premise constraints. Managers who grew up in organisations where psychological safety was high and are genuinely puzzled by some of the defensive patterns I’ve come to accept as normal. People earlier in their careers who ask “why do we do it this way” with genuine curiosity rather than politeness, because they don’t yet know that the question implies the current way might be wrong.
Senior people, including me, have accumulated a lot of ways of thinking that made sense in earlier contexts and have become invisible assumptions. The person who’s been doing something for twenty years knows a lot — but they also have twenty years’ worth of scar tissue that might be protecting a wound that healed a long time ago. The junior person who asks the naive question is sometimes just naive. And sometimes they’re the only person in the room who hasn’t learned to stop asking it.
What the three modes share is that none of them let you stay entirely inside what you already know. Direct feedback forces you out of your assumptions by breaking them. Vicarious failure gives you access to breakage you didn’t have to cause yourself. Teaching exposes the assumptions you didn’t know you were making. The mode changes. That property doesn’t.