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.

  • yamper@piefed.social
    link
    fedilink
    English
    arrow-up
    9
    ·
    10 hours ago

    ive personally found LLM coding to be pretty effective if i adhere to very strict “engineering best practices” like TDD, good documentation, thorough API design, systems design, etc.

    im very afraid that the next generation of software engineers will never develop the skills needed to make the most out of it because they skipped the rudiments of good software engineering.

    to me it feels like playing jazz without learning scales. it’s possible to be an incredible jazz musician without formal training if you’re a savant… but you’re probably not.

    • mystic-macaroni@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      7 hours ago

      I have a little more hope for future generations. Regardless of if you are primarily using ai to speed up a traditional work flow or vibe coding, there still are more and less effective ways to get things done. I’ve found if I write sonething I’m familiar with like bash or Python, I “know enough” to write functions and refactor incrementally. It’s a methodical process which produces code better than I can write by myself in less time.

      Compare that to when I write Lisp. There it’s more or less throw shit at the wall until I somewhat get what I want. It takes longer and can be next to impossible to extend or effectively refactor.

      Based on that observation of myself, I think we’ll find two (and probably more) kinds of programmers in the future. Ones who use it as an assistant to speed up a traditional workflow, and those who produce the slop that we are afraid of.

      Perhaps to give us any amount of additional hope/comparison to now. There still have been people who have programmed now who create slop. And that comes to the way we use references like stack exchange or the Arch Wiki. Are you copy and pasting while learning what things mean and learning in the process? Or are you just stringing things together to get results at all? I don’t think we would argue those references made all of us worse.

      So I think it’s an apt concern, but we’ll have to wait to see what it’s like whole sale. I was a doubter for a long time, but I’ve come to understand where Torvalds et al are coming from.