Skip to main content

One post tagged with "Lessons"

Lessons for life

View All Tags

What vibe coding taught me

Β· 3 min read
Ashish Kapoor
Software Engineer

I've been vibe coding for a few months now. The machine writes, I steer. It's fast, it's fun, and it fools you constantly. So I wrote down the things I keep having to relearn. None of it is clever. It's the boring stuff that's easy to know and hard to do.

Guess first​

Before you read the code, guess what it does. Then read it. The gap between your guess and the truth is the exact spot where you were fooling yourself. That gap is the whole lesson. If you skip the guess, you skip the lesson β€” you just nod along and feel smart, which is the most dangerous feeling there is.

Close the laptop​

If I can't explain a thing with the code closed, I don't understand it yet. I might have shipped it. It might even run. But "it runs" is not knowing. Knowing is being able to say, out loud, to a bored friend: this is what happens, and this is why. Can't say it simply? Then I don't know it β€” I've only met it.

The right question at the end of the week​

Not "how much did I ship?" That's easy to measure and easy to game. The honest question is: did I understand more this week, or did I just ship more? You can produce a mountain of working code and end the week dumber than you started, because the machine did the thinking and you did the accepting. Shipping is the exhaust. Understanding is the engine.

Fix depth where the blast radius is big​

Not everything deserves the same care. A wrong color on a button is a shrug. A hole in your authorization or your tenant isolation is a catastrophe that arrives one quiet Tuesday with someone else's data on the screen. So spend your deepest attention where an error ripples the farthest β€” auth, isolation, money, data. The UI can wait. Nature doesn't grade on how pretty the front end looks.

The tool is a tutor, not a ghostwriter​

The AI is happy to hand you a finished answer. If you take it and move on, you learned nothing and you own a black box. Make it teach instead. Ask it why, ask it what breaks if I change this, argue with it. A ghostwriter leaves you with words you can't defend. A tutor leaves you smarter than it found you. Pick which one you're using, every single time.

The test that never lies​

Here's the one question that catches me every time: if I change this, what breaks, and where does it ripple? If I can answer that, I understand the system. If I can't, I've been decorating a machine I don't understand. There's no faking this one. The code will tell you the truth eventually β€” better to ask it now than in production.

Friction is the cure​

This is the strange part. The problem with AI isn't that it's dumb β€” it's that it's so smooth. It removes all the friction, and friction was where the learning lived. The struggle to name a thing, the fight to make it compile, the slow read of a stranger's code β€” that was never the tax on the work. That was the work. So I've started adding friction back on purpose: guessing before reading, explaining before shipping, changing something just to see what screams.

The first principle is that you must not fool yourself β€” and you are the easiest person to fool. The machine just makes it faster.