We're about to learn a painful lesson about delayed gratification in software engineering.

New data from China, 26,811 students tracked January 2023 through June 2025. Students using AI for homework saw their scores jump 20 percent. Completion time dropped nearly half. They aced the assignments.

Then exam season came. Those same students scored 20 to 40 percent worse when they couldn't use the tool.

The homework phase is over. The exam phase is coming.

We're doing this in software right now. Vibe coding feels incredible. Features ship fast. Nobody's asking what happens in Month 18 when the original dev has left and nobody understands the codebase.

Commercial pilots fly with autopilot for most of every flight. They're required to maintain manual flying proficiency regardless. If the system fails mid-air and the pilot can't take over, people die.

Most teams using AI right now have forgotten how to fly manually. They've become passengers in their own systems. The autopilot flies, nobody checks instruments, and the first sign of trouble will be a breach notice or outage.

Three rules:

  1. Command the mission. Define architecture before prompting. Ambiguity kills in code and in flight. Delegate selectively. Offload mechanical work. Keep design and security reviews human. Verify everything. Audit before production.
  1. Never trust the automation without checking instruments.
  1. Quick wins feel good. Sustainable engineering feels boring. Boring keeps systems standing.

Organisations surviving the next two years won't ship the fastest. They'll be the ones who remember how to fly without the aids.


people insisting that you actually be skilled, independently of your tools, doesn't make them Luddites. Rather, being unable to do so makes you a phony.

you are viewing a single comment's thread
view the rest of the comments
[+] -10 points 17 hours ago (15 children)

Nobody's asking what happens in Month 18 when the original dev has left and nobody understands the codebase.

Throughout my career, I've often had to sync a git repository for some random project that I've never worked with before and then had to muddle through whatever was in there hoping that the documentation was vaguely complete and accurate.

Nowadays it's actually much easier. If the documentation isn't complete or accurate I just turn my coding agent loose on it and tell it to write the documentation.

I get the impression that the guy writing this hasn't actually used modern coding agents, this is not a problem.

I see coding AI as being similar to a compiler. Before compilers came along programmers had to work in assembly language. Nowadays very few programmers ever do anything in assembly and that's perfectly fine.

  • source
  • hideshow 15 child comments
  • [–] 2 points 5 hours ago* (1 child)

    Yeah you're right, at the very least its great at untangling 10 years worth of interns working on a codebase.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 4 hours ago

    Heck, I've been using them to untangle years worth of me working on codebases. I've got a lot of random little scripts and "applications" and whatnot that I threw together to perform various tasks on my home computer over the years and most of them were extremely sloppy because "who cares, this is just for me and just for this one weird thing I need to do." I've been pointing my AI agent at these things and telling it to clean them up. I'm hoping this isn't putting me a lot higher on Skynet's naughty list when the time comes for the robots to punish all those who have been mean to them.

  • source
  • parent
  • [–] 10 points 16 hours ago (5 children)

    i’d say it’s not quite like a compiler because you still need to know what the code does… a compiler you largely don’t care, and it’s deterministic… an LLM hallucinates, so you can’t just trust it, which means you have to be able to assess when it’s doing the wrong thing

    i agree that setting an agent going helping you learn a codebase is reasonable, largely because it can quickly point out connections in the code quicker than you can understand the architecture, and its guesses are usually just as good as your guesses until you get knowledgeable with the codebase

    however, and that’s a very load-bearing however, i don’t think you should just jump into a codebase and just go ahead and tell the LLM to write new code without understanding what it’s done… the understanding is exactly what this graph is trying to show: actually learning is critical, so your review of the code becomes doubly important: you’re gaining institutional knowledge, and you’re making sure the output isn’t slop

  • source
  • parent
  • hideshow 5 child comments
  • [–] -3 points 15 hours ago (4 children)

    an LLM hallucinates, so you can’t just trust it, which means you have to be able to assess when it’s doing the wrong thing

    Unless you can define what the right thing is. Then you just have it write proper tests, and it’s able to verify itself.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 3 points 11 hours ago

    an LLM frequently writes shit tests… you’re just moving the architecture problem: either you properly understand and review the initial code, which means you catch not just binary “correct input/output” but also performance, layout, DRY, style, heaps of things

    OR

    you properly review the tests because “passing” doesn’t mean tested

  • source
  • parent
  • [–] 2 points 10 hours ago

    Don't let an AI verify itself, it will just make the exact same mistakes.

    Verification should still be done by a human. You can use a different AI in addition to human verification, but a human should still be in the chain somewhere.

  • source
  • parent
  • [–] 4 points 13 hours ago (2 children)

    (talking about non-trivial code bases here)

    Not being able to understand a code base and needing an agent to do that is one thing (skill issue I guess), but not knowing the intention behind a piece of program is a complete different thing (the agent can't read the mind of the original author on why certain business compromise was made, how the design evolved to this point, ...).

    I get the feeling all these people defending vibe coding never worked on a non-trivial project and something that has to live and serve large volume of requests for 5+ years.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 6 points 16 hours ago (3 children)

    I'm no dev, but did do my HND in computing some 25 years ago. I have also tinkered with scripts to solve an itch and have has plenty of VBA and of late DAX and power query.

    I did a project for myself around a year ago that was much larger than I normally would these days and I used Gemini. It was a constant battle with the LLM (man it's hard not to gender and personify these LLMs) to keep it on track and not keep breaking shit all the time. It struggled to writ valid rules for it's own firebase/firestore. It generally felt like a bad time.

    This past week end I got codex to migrate the PWA from google's services and database into a selfhostable docker stack. It was a pleasure, it documented the whole process map, built a full test environment, followed through and imported my data. It the suggested a few improvements. It even rewrote a a complex equation that Gemini could nust not get correct and added manufacture safe/max bounds.

    all this to say 'yes, modern agents do seem to do a good job of a codebase that they have never seen'

  • source
  • parent
  • hideshow 3 child comments
  • [–] 6 points 15 hours ago (2 children)

    Yeah, I've been tinkering with coding agents for a while now and it feels like some sort of "phase transition" happened earlier this year - the models and their harnesses went from being the sort of clumsy barely-passable student coders that people make fun of to being actually highly competent. Lately even the small local models have reached that level - I've been using Qwen3.8 27B on my own machine and it's been doing just fine. I suspect a lot of the folks making fun of them tried them early on and wrote them off, not giving the latest versions a second chance.

    The compiler comparison works there too, IMO. I remember back when I was learning the tricks of the trade there were all sorts of ways you were supposed to write code to trick compilers into generating more efficient results. Coding standards would say to use ++i instead of i++ for incrementing loop indices, use x*0.1 instead of x/10 because division was way more expensive than multiplication, using memcpy instead of copying values with =, using int instead of bool, and so forth. Lots of stuff. Some of it was never useful, it was just folklore and superstition. Other stuff did make a difference with early compilers but modern ones know these tricks themselves and can often apply them better than the human programmer can. So the old-school greybeards who still insist on doing that stuff can actually make things worse these days (disclaimer: my beard is pretty grey these days too).

    I expect so too will this "hah, vibe slop" attitude eventually pass away. AI is getting quite good quite quickly.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 15 hours ago* (1 child)

    I fear for my career in this field.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 3 points 15 hours ago

    To be serious for a moment here on programmer_humor, yeah, it's a real puzzler. For now there's still a role for programmers like us in all this because we're still good at knowing how to translate the requirements of non-technical people into the things we actually ask the coding agents to build for us. But AI's getting good at that too. As might be expected, they're language models so interpreting what people tell them using language is kind of their jam.

    If I were advising someone who's looking at whether to get into programming as a profession right now, I'd tell them to only go that route if they had the resources to take a mulligan on their education and try something else if a couple of years from now it turns out that the robots have completely taken the job over. I think it's a real possibility, and will lead to some interesting times indeed.

    Until then, I guess we keep making jokes about it? Just make sure not to take them too seriously. AIs can count how many Rs are in "strawberry" now. They can whip up a bit of Javascript to do it for them in their harness' sandbox.

  • source
  • parent