Categories
t3ch

Coding Isn’t Dead

Coding isn’t dead, but the job has changed. AI handles routine code, so developers need technical lead skills and strong software development principles.

Every few months, someone on the internet asks whether coding is dead. The latest version of the argument goes something like this: AI writes the code now, so there’s no reason to learn software development anymore. I understand why people believe that. I use AI coding tools in my own work, and they’re pretty impressive.

Having said that, I’ve been writing software for about 20 years. I’ve heard “coding is dead” plenty of times before. Code generators, drag and drop site builders, low-code platforms, and offshore outsourcing were all supposed to end programming as a career. Each time, the work changed. It never went away.

This time the change is a lot bigger. It still isn’t the end of coding, though. What’s actually ending is the idea that a new developer’s job is typing out code.

What AI Actually Changed About Coding

For most of my career, a good amount of development time went to menial work. That meant writing boilerplate, building CRUD endpoints, and adding form validation. It meant wiring up a new service in a config file, or writing the fifth version of a function that looks almost exactly like the other four. That work was necessary, and it usually got handed to junior developers. It’s how most of us learned.

AI handles that work now, and it handles it quickly. If you ask for a REST endpoint, a database migration, a unit test scaffold, or a Dockerfile, you’ll get something reasonable back in seconds.

The key word there is reasonable. Reasonable code isn’t the same thing as correct code.

AI-Generated Code Needs an Experienced Reviewer

The trouble with AI-generated code is that it looks right. It runs, it follows common patterns, and it reads like something a competent developer wrote. The problems only show up when you look closer. They tend to look like this:

  • It calls a library method that was renamed two versions ago.
  • It handles the happy path and quietly ignores the failure case.
  • It builds a SQL query straight from user input.
  • It adds a dependency nobody needed.
  • It solves the problem you described, instead of the problem you actually have.

None of those issues announce themselves. A junior developer reviewing that code will often miss them, because the code looks like the examples they learned from. An experienced developer usually catches them, because they’ve been burned by every one of those mistakes before. I know I have.

So, the bottleneck has moved. It used to be producing code. Now it’s judging whether that code is any good.

Developers Now Need to Think Like Technical Leads

Back in 2011, I wrote about what separates junior developers from enterprise level developers. My list back then was design patterns, unit testing, version control, and experience. I still stand by that list. What’s different now is how early in a career those skills are needed.

Think about what a good technical lead does. They rarely write the most code on the team. They define the problem clearly, break the work into pieces that make sense, and set the standards. They also review pull requests and ask the uncomfortable questions. What happens when this fails? How do we test it? Will anyone understand this in a year?

That’s pretty much the role you step into when you work with AI. You’re directing a very fast, very confident contributor that has no memory of your system, no stake in the outcome, and no sense of when it’s wrong. It won’t push back on a bad idea. It will just implement it.

The skills that matter most right now are lead skills:

  • Scope the work before you ask for anything, because vague instructions get vague code.
  • Read code critically. Reading is now a bigger part of the job than writing.
  • Know the architecture. AI sees the file in front of it, but you need to see the whole system. The Docker Swarm environments I manage have routing, volume, and network constraints that no single file explains.
  • Learn to say no. Rejecting a plausible solution because it doesn’t fit takes experience.

The immediate demand isn’t for more people who can type out a controller. It’s for people who can tell whether that controller should exist in the first place.

Software Development Principles Matter More Than Ever

This seems to be the part that surprises people. The fundamentals of good software development didn’t become obsolete. They became more important.

When code was expensive to write, sloppy practices slowed you down. When code is cheap to write, sloppy practices bury you. AI can generate more code in a day than a small team used to write in a week. Without some discipline, that adds up to a week’s worth of technical debt every single day.

The principles that have always mattered still apply:

  • Keep things simple. AI tends to over-build, and it adds abstraction layers and configuration options nobody asked for. I’ve always been a big believer in software being small, simple, and focused. Code you can’t review shouldn’t ship.
  • Write tests. Tests are how you verify that generated code does what it claims. They’re also how you catch the regression when the next generated change breaks something unrelated.
  • Make small changes. A 40-line change gets a real review, while a 2,000-line change gets skimmed.
  • Keep code readable. You, your teammates, and the AI will all read this code again.
  • Take security seriously. AI will happily write code that’s open to injection, leaks secrets into logs, or trusts input it shouldn’t.
  • Know your tools. Library APIs change, and an AI’s knowledge of them is a snapshot. Checking the actual documentation is still part of the job.

None of these are new ideas. Good developers have preached them for decades. The difference is that you can’t skip them anymore and hope for the best, because the volume is just too high.

What AI Means for Junior Developers

This is the hard part. If AI does the menial work, how does anyone get the experience they need to review it?

I don’t think there’s a clean answer yet. I also don’t think the answer is to stop learning to code. If anything, it’s the opposite. Learn the fundamentals deeply. Write code by hand, even when you don’t have to, so you understand what you’re reviewing. Read other people’s code. Debug problems yourself before you ask for the answer. Learn why a pattern exists, and not just what it looks like.

Use AI as a tool, but don’t use it as a replacement for understanding. Developers who treat it like a senior engineer to copy from will stall out. Developers who treat it like a junior engineer to supervise will grow.

So, Is Coding Dead?

Coding isn’t dead, but it has moved up a level.

The people who do well over the next several years won’t be the ones who produce the most code. They’ll be the ones who know what good code looks like, can spot bad code quickly, and hold the line on the principles that keep software working. That’s always been the job of a senior developer. Now it’s the job for everyone who writes software.

By ftpcory

I am a fitness, technology, and music enthusiast. I enjoy introspection and reflection. I believe in decentralization of the web and freedom of expression.

Leave a Reply

Your email address will not be published. Required fields are marked *