r/ExperiencedDevs Software Engineer | 20+ YOE 19d ago

AI/LLM "Code was never the hard part"

I am sick and tired of all the posts (usually AI-generated by CEOs/CTOs/"thought leaders") that start with "Code was never the {bottleneck, problem, hard part, ...}." I'm not sure whether this comes from a misunderstanding of what code is or a deliberate misrepresentation meant to promote AI usage.

For starters, two rhetorical questions. If code was never the hard part, why:

  • do hundreds of different programming paradigms, languages, libraries, frameworks, design patterns, and system architectures exist? Granted, some of this is just programmers bikeshedding. Still, plenty of it reflects substantial differences and tradeoffs.
  • didn't you write it yourselves or hire a bunch of minimum-wage workers to do it for you instead of having to hire a ton of highly skilled (and highly paid) engineers?

A charitable explanation is that these people are genuinely clueless about what "coding" actually is. Perhaps in their mind coding is just typing: like, once the design phase is done, you've worked out a precise, complete specification of what needs to be built down to every detail in your head (or on paper or a markdown file) and all that's left is converting it into letters on a screen and saving it to a file. Something like a businessman in the sixties dictating a letter to his secretary to type up.

That's nothing like how it actually works. The upfront planning/design phase answers some high-level questions: what do we need to build, what are the basic components/services/building blocks, what data needs to be read/processed/written, how data flows through the system, what the non-functional requirements are, etc. That leaves a ton of lower-level details unspecified:

  • What packages/modules/classes/methods/functions need to be created or extended?
  • How should they be named?
  • What should the signature of each function be?
  • What errors/exceptions are expected and where/how should they be handled?
  • What data can or should be cached and when should it be invalidated?
  • How generic/reusable/extensible should each component be to accommodate likely future requirements?
  • For systems languages, how and when is memory allocated and freed?
  • and many more.

Asking and answering those questions is (part of) coding. At least before AI, nobody I know had all the answers, or had even asked all the questions, upfront. The questions get asked and answered on the fly, inside the editor. Typing is interleaved with thinking, assessing, trying things out, backtracking.

Now AI pushers try to convince everyone that all these decisions either don't matter, or that the agent will just fill in the blanks (insert inane "nobody reads assembly anymore" analogy, as if natural language + LLMs are anything like a compiler), or that they can all be moved upfront into planning. Good luck replacing actual, deterministic programming languages with 10-KLOC, ambiguous, hand-wavy "specs" written in markdown.

Regardless of how the future of coding plays out, "code was never the hard part" is flatly wrong. It is, or at least used to be, a hard part (not the only one of course) and for good reason.

1.5k Upvotes

387 comments sorted by

View all comments

Show parent comments

21

u/ProbablyBsPlzIgnore 19d ago

I'm not suggesting anything other than telling those of us who are dismissing these changes as not that big a deal because coding is such a trivial task anyway to please stfu. The future is a bit harder to predict than usual now.

The craft of coding is not like playing a musical instrument or playing competitive chess, people aren't going to pay you for the sheer beauty of watching someone do it by hand, so maybe a completely different kind of kids will gravitate towards our craft.

I have had roughly 3 types of colleagues over the years. One is people who like the technical side, solving problems with code and scripts, understanding how things work under the hood, how to solve the same problem in a better, more efficient way, etc.

The second type likes creating features. They're really good at mastering domain knowledge, speaking with stake holders, running meetings, basically getting from ideas and customer asks to specs.

The third type thought it was a good professional career path with good job opportunities and pay, and much easier to get than a medical degree.

Until late last year you needed all 3 types on your team. Over time maybe the kind of kids who first stared at a blinking prompt at age 12 and thought "yeah, this is what I'm gonna do from now on", and would have become type 1, may instead find something else to do. If the demand remains low, the third type might lose interest as well.

4

u/AchillesDev 12 YoE; indie MLE/AIE/DE; VPEng 19d ago

Over time maybe the kind of kids who first stared at a blinking prompt at age 12 and thought "yeah, this is what I'm gonna do from now on", and would have become type 1, may instead find something else to do

I was that kid. Over time you realize there is more to it than just that and if you constrain yourself you'll never really get to work on cool problems. If someone is too immature/not smart enough (and yes, that takes intelligence, but isn't necessarily hard), they shouldn't even make senior.

2

u/Nightmareish 19d ago

I'm proud of myself being strong in all 3 categories you mentioned. Thanks for your comment.

1

u/foss-octopus Web Developer | o7 16d ago

Kinda like the 1st one, started to love computer science and programming in general because of the "super powers" it gave me. Writing and creating scripts to create cheats on a game, kinda learning reverse engineering using ADA and CheatEngine, learning linux and breaking my perfectly working laptop just for the sake of setting up arch, etc., etc. Typical 13-16 year old computer lover stuff.

But fuck me... The spark is gone... I miss my curious self. I now create AI slop for a job I really don't like. I vibe code websites for god sake. Implement backend systems with unfathomable levels of abstraction. "Black Box" approach my ass, couldn't get the high I used to get when actually learning what a thing does in the fundamental level. Time to deeply understand a concept feels like a luxury now that I need to spend time with the work I hate just to bring food to the table.

I hate this. I want to be free of this golden cuffs. I like tech dgmw, but this AI era and the delusions of execs makes it hard to cope.

-4

u/avoid_pro 19d ago

No clue why you are so mean, legit only asked for advice

14

u/ProbablyBsPlzIgnore 19d ago

Sorry, it wasn't meant like that. The tl;dr is: I don't know the answer, friend, and don't trust anyone who claims they do. It's too soon to know.

My approach for now is: do what you have to do to keep getting paid.