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:
- 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.
- Never trust the automation without checking instruments.
- 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.
Off-topic.
The luddites had a point.
They weren’t opposed to technology, but the use of technology to remove skilled labor to produce inferior products.
Also, the pilot/autopilot argument is, kinda not applicable. The pilots aren’t just fucking around- autopilot systems only manage some aspects of flying, the pilots are still fully engaged.
The pilots absolutely can just fuck around for most of the flight, and even during the critical moments of takeoff and landing, the plane can do a lot of it automatically these days.
Pilots need to actively practice flying without autopilot to keep those skills up in case the autopilot fails.
the plane can do a lot of it automatically these days.
It can but nobody is out there flying CAT IIIc autoland approaches because its ‘easier’.
Just install a second autopilot that can take over if the first one fails!
They do in fact have like 3 autopilots for this reason

I feel like their point was that the gains of technology were not distributed fairly, which is largely the concern today. It’s not “technology is bad”, or “technology make bad thing”; rather, “the owners of the machine undercut our labor, and we lose our jobs”, which I think was true. In the modern world, there are likely less tailors, as a percentage of the working population, certainly in first world countries. Sweatshops still exist, and it’s people’s labor competing against a production line, in terms of ROI for a business.
I get the sense we all know AI isn’t going to bring about a uptopia for all people, because the economic systems don’t incentivize that. There’s some hypothetical world where this sort of technological advance could benefit all people, but it’s not the one we live in. That’s a reality & major problem for the technology (among other issues).
I certainly think the cost of labor for tech development is going to drop significantly due to the market pressures; look at all the tech layoffs. At the same time, the upside is these tools make certain projects accessible & possible, because prior, would have needed significant funding, amazing solo skills, etc. There’s new opportunities available, but it’ll come at the cost of cratering tech position compensation & job security.
I don’t know anyone in my field right now who feels safe (game dev), and I have many talented friends out of work.
They did have a point. The printing press still changed the way information works
Luddites weren’t concerned about the printing press. Their fight was over mechanized looms and knitting frames.
Their concerns were mostly about losing their jobs, as well as the absolute dog shit quality the mechanical machines produced at the time.
In 1814, printers in London did have similar conniptions over the steam press, though.
Til I always assumed they were the dudes who drew the fancy letters
I agree with everything except for vibe coding feeling great.
Am I the only one who gets incredibly anxious relying on AI to code? I still ask it for code when I really just want to move on from a problem but it always feels like voluntarily putting mold in my floorboards.
I only use it to solve specific problems when I can’t find the solution elsewhere. Then I spend the time to understand and rewrite the code myself.
It’s the same workflow as using Stack Overflow, etc. You can’t just copy/paste solutions.
I have a hard time telling AI authored LinkedIn thought leadership apart from formulaic LinkedIn thought leadership sometimes, but this feels AI written, which makes it fairly amusing considering the point it’s making.
(Does vibe coding feel incredible? Also, “Nobody’s asking what happens in Month 18 when the original dev has left and nobody understands the codebase” implies that the vibe coder original dev understood the codebase at any point, which isn’t an argument I’d feel comfortable making for any of the ones I’ve worked with)
Does vibe coding feel incredible?
There’s definitely a magic in watching it print code with almost no input. Like watching git history with Gource.
It’s not good code, but it is cool to see.
“AI is the asbestos we are shovelling into the walls of our society, and our descendants will be digging it out for generations.” - Cory Doctorow,
This isn’t programmer humor… post to the right comm like fuck_ai@lemmy.world
I know that when i started using AI i got over blocks much faster. A system from design to implementation that use to take a week now only takes a few hours with most of that is testing and reviewing the code.
I don’t use agents to test and review code btw because i still want to know what’s going on but my colleagues are definitely using agents to build test large codebases. Im sorry but the truth is AI has changed how we build products in the same way intellisense and jet brains did but on a scale i haven’t seen in my lifetime.
Agreed. If you don’t use AI in coding you are not competitive with someone who does. It really is that simple. You won’t be able to keep up, your bosses will see, you will get fired and that’s that.
Even if the quality you deliver without AI is better, quality is not everything. Time is always a factor and AI beates you ten times over. The rest is sane flows with lot’s of testing etc.
This isn’t One Hour Hot Dog. If you need a big huge fix right the hell yesterday, you fucked up last week. Possibly last year. And what’s gonna prevent that sort of company-liquidating blunder is a layer of crotchety obsessives who can spend a day reading and then commit one line. ‘Hit engine with hammer: $1. Knowing where to hit: $9,999.’
A system that’s pretty good at guessing a hundred places to try hitting has obvious value. Especially when undo is a thing. But this attitude of ‘the future is now, old man!’ is almost as off-base as the folks insisting a magic coding robot won’t help anybody.
Haha, nah. If you’re generally faster with AI assistance it just means you never actually knew how to do your job properly. Sure it can help you get over some hurdles, make docs searches a bit easier if some library has crap docs, but it’s a 5% speed improvement at best and it’s all worse the moment it sends you down some stupid hallucinated rabbithole.
You should give it another go, it has evolved disturbingly since last year. It out performs a junior level software engineer in both design, implementation, testing and debugging.
The hybrid model of a senior engineer using AI to produce code while the rest of the time allocation is spent on reviewing is the new normal.
You get 4 weeks to build x feature, you spend maybe a day with the help of AI then use the rest of the allotted time testing and debugging. What’s happening now is your allotted time is shrinking because managers understand how much faster engineers are working so its a cycle of shorter deadlines which pushes everyone to use AI.
I wouldn’t worry about software engineers going extinct. The role is changing but those core skills are really important to catch mistakes from both humans and AI.
Right now theirs two types of people using AI, software engineers who learned computer science and built software products and Joe MBA who struggles to write a bat file with the latter struggling to build cohesive products
I don’t know whether this is just ragebait, whether you have never tried any advanced AI agent or whether you genuinely think you can work as fast as an AI, but I can asure you that you can’t.
having ai do your homework for you is not a flex
Offloading a homework during brain development to watch some TikTok
This is largely an oversimplification because it depends on how you use AI in the first place. Are you building modularly and incrementally? Or are you letting it ride on black?
All it takes is two developers who let it ride and approve each other’s PRs.
That’s a very good point
I guess exams in school are supposed to represent real life???
Real life is open book. Exams are horseshit.Whether or not you can pass an exam barely means anything IRL
Vibe coding at work lets you slack off and then secure your job when shit inevitably hits the fan and you have to untangle the mess. Seems like a win-win to me, assuming you know how to program to do the untangling part. The only bad part is not having any satisfaction in doing the job, but there was enough corporate bullshit in place all along to ensure that regardless.
The chart they didn’t post showed that time spent on homework correlated well with exam score regardless of AI use.
Turns out using AI to avoid homework (in this scenario, replace work) might be the issue. Using it to improve the quality of work (e.g. when you’re done coding a block, getting an AI to help fuzz your inputs to test that block) is likely to be beneficial.
Compilers would look the same. You give some people a tool that turns fiddly low-level repetition into relatively painless double-checking. Then you yank that tool away, and oh no, they’re not as good at the fiddly low-level repetition.
What matters is - are these students worse-off, with the tool? It’s not going away. Foreverafter, a couple gigs of linear algebra will turn your to-do list into an actual running project. We have to ask if teaching the fiddly low-level repetition is the point… or just a means to an end.
You can scoff that compilers are objectively better, but they weren’t! Sometimes they still aren’t! We were teaching kids to consider inline assembly well into the Windows Vista era. Even now, compilers with decades of active development can have bizarre corner cases, which any hardened bit-banger of machine code would never write. But they’re all good enough that plaintext assembly has become an arcane third-year topic, and hexadecimal machine code is the realm of bare-metal maniacs.
Teaching math, kids have to know what numbers are, and how base ten works, and why the calculator says 11-3=8. But as you go up to college math it matters a lot less whether people can do shit in their heads… or even remember how. Open-book and open-calculator exams are still fuckin’ hard. They’re just hard because you’re trying to apply some obscure proof to a rat’s-nest of swooping symbols, instead of because you’re worried about having enough time to write out long division to umpteen places. The latter can be sufficiently approximated with two wooden sticks. We can assume anyone doing math professionally has two sticks. Continuously! As a given, for their job. Probably at home as well.
Teaching programming, you have to break people a certain way. No gentle and charming syntax can disguise the mechanized nastiness of what code is. Whatever semi-readable text you’re looking at will be squinched through a flake of tortured sand in a bazillionth of a second. But only after getting transformed at least two times in processes you kinda have to trust will be computationally equivalent, unless you want to minor in a branch of mathematics haunted by Stephen Wolfram. Ultimately there is a shockingly small state machine designed to trick you into off-by-one errors.
But once people can knock out fizzbuzz on a paper 6502… they’ve kinda got it. They’ve been inculcated. They will soon apply arcane patterns to a rat’s-nest of obtuse variable names. Ssshould they have to do that by hand? They’re not doing the assembly by hand. They’re not even looking at the assembly. They might never need to think about assembly again. So long as they’re playing spot-the-bollocks for a flurry of pull requests, that’s arguably a more useful skill than writing clean toy code from scratch. Especially in pen and ink.
The main problem with AI is that it’s pretending to understand more than it actually does right now. It can’t do software architecture. It can’t really write maintainable code without a lot of re-prompting and corrections. And yet it will happily make a bunch of those decisions for you when you ask it to write you an app.
Compilers are well-defined tools. “Human-readable” code goes in, “machine-readable” code comes out, according to some spec somewhere. Yes, compilers can be nondeterministic and they do a lot of weird stuff sometimes and they choose the wrong approach often, so some developers still need to understand assembly and CPU cache and SIMD and other features of the hardware our code runs on. At the very least every developer needs to understand the performance tradeoffs they’re making, or we end up with a JS-based start menu in Win11. But at least compilers have a well-defined class of inputs and outputs.
For AI these issues are amplified a lot. They are non-deterministic and unbounded in what layer of software they operate on or produce. I’d argue every developer who uses AI needs to understand software architecture, approaches to software development, and actually read and understand the code that the AI produced, at a minimum. Otherwise the whole industry will become saturated with and built on top of code no-one understands or can maintain, and it will literally collapse in on itself at some point. Carefully reviewed, selected, maintained code has always been precious, it will become a golden nugget in a sea of pig manure.
or we end up with a JS-based start menu in Win11

It can’t really write maintainable code without a lot of re-prompting and corrections.
Which is a skillset being learned. One which users are presumably better at than non-users, since they’re practicing it. If the chatbot-that-codes Just Worked, there’d be nothing to discuss; we could consider human coding successfully completed. The people who don’t move up to proper computer science can get on with whatever they wanted software for. We only teach them all of this because they’ve got shit to do, and up until now, it’s been really really hard. Like if beginner astronomy meant telescope engineering.
Already the key complaint has become “maintainability.” That’s quite a high-level criticism. When I sass specific compilers, it’s for using register-juggling macros that could have been one hardware instruction… not for adding a feature from a one-sentence description, but in a way that will complicate any future refactor. Or would, if refactoring was not also something you can tell the chatbot to do.
Compiler developers are a hardened core of ultranerds. I couldn’t do it above a toy level. If I needed to understand how they work, in detail, then I would be in trouble. Thankfully it is sufficient to abstract all of their work into ‘C goes in ARM comes out.’ Or at least to mumble about intermediate representations and distract people with Godbolt before running away. Sure, ‘add a button above the widget’ is more pluripotent than a K&R-standard Hello World, but even the foundation you celebrate is layer upon layer of Don’t Worry About It.
AI coding right now is a blunt instrument. Those often suffice. And this one can already be used to remove layers. To obviate a fat framework. To translate to a faster language. To golf. Or it could format your hard drive if a website tells it to, IDFK. It is a higher class of footgun. We take those.
Fuck software engineers
You’re absolutely right! We should.












