AI Coding Without the Vibes

riskone2 pts1 comments

AI coding without the vibes | peterbloem.nl

AI coding without the vibes

We spend a lot of effort these days trying to figure out how to stop students cheating with AI. It’s necessary, but it’s not the most satisfying part of the job. Students that want shortcuts around learning are going to find them anyway.

A more worthwhile and interesting question to spend our energy on is what to tell those students (including PhD students) who aren’t looking for shortcuts. The ones that genuinely want to learn and are happy to devote hours each day to developing themselves. The ones who want to be here.

This question—what we should tell students to do with AI—is a good trigger to think about what we ourselves should be doing (which is what this essay is really about).

Your initial instinct may be to tell students to pretend AI doesn’t exist. Learn everything the old-fashioned way. Never did me any harm and so on. But that would be like telling a student in the 70s to pretend that calculators or computers don’t exist. Students today need to prepare themselves for a world in which AI is going to be a major presence. They need to have the skills to navigate that world, whatever it will look like.

Alternatively, you may think that we should tell them to embrace AI fully. Sign up to the highest tier of Claude and burn tokens like there’s no tomorrow. Defer absolutely everything to the machine. This is also bad advice. It’s a surefire way to learn absolutely nothing at all.

Not only that, it’s the perfect way to make sure that you’ll never learn what it feels like to learn something. This is something that is not made explicit often enough: one of the most important things you learn in university is to gauge whether you really understand an idea. You will find yourself in situations where you could have sworn you really understood something, and then you get just the right question, and you have no idea how to answer it. Eventually, you learn to ask yourself these questions. And then, slowly, you’ll develop an accurate sense of whether you have really reached a state of understanding.

Deferring everything to AI means that that machinery never develops. You will not just be knowingly taking shortcuts, you will be deceiving yourself into thinking that you’ve mastered something. When the bill comes due, and you suddenly realize that you don’t have any worthwhile skills at all, it may be too late to fix the problem.

And, again, this applies to ourselves as well, even if we were lucky enough to get to develop this machinery before AI came along. Cognitive skills are like muscles: hard to gain, easy to lose.

So what is the answer then? My best advice so far is that most things you do consist of two stages: doing and checking . You write some code, and you check it for bugs. You write some text and you fact-check it and proofread it.

Current AI is not good enough to do both. It will work for a while, but eventually, there’s a real chance it goes off the rails. Sometimes in a big way, like deleting your database, but more often in more subtle ways, shifting the codebase slowly into an unmaintainable mess. More importantly, even if it does both flawlessly, can you really hand it in as “your work”? You have to ask what you are contributing. And, whether you’re a student or not, what you are learning.

So, if you decide to use AI in some part of your project: let it do the thing while you check its work, or you do the thing, and it checks your work.

When you put the options like this, it’s really no choice at all. Having the AI write the code is what most people do. It’s what we call “vibe-coding”. If you hold to the above rule, you can only do this if you check everything the AI writes and does. It’s clear this is a fiction. The human brain was not made for this. Even if you resolve to really check, deeply, every line of code produced by the bot, your attention would wander in under an hour. The failure cases are rare enough that you can’t help but start to trust the machine.

It's a verbose coder, it overcomplicates things, and it works fast. Even if you had an inhuman level of attention, you couldn't keep up.

More importantly, it wouldn’t be fun. Checking other people’s code is a grind. Writing your own is fun.

So let’s do it the other way around. You code and you have the AI check your work. Treat it like a reviewer. That’s my advice in a sentence. It can still save you time, it will catch bugs that would have taken weeks to figure out the old-fashioned way. It will tell you about tricks you missed and technology that you were unaware of. But, a lot of the incentives that point the wrong way in vibe-coding are turned around if you do it this way.

In the rest of this essay, we’ll dig into the details. How do you do this in practice? What does it buy you, what doesn’t it buy you? How long will this remain a feasible approach? But first, let’s see if we can come up with a catchy name.

Craft coding

Imagine three...

like students learn really coding check

Related Articles