Hacker News new | ask | show | jobs
by gyulai 22 days ago
I think that, even among those who have had the ability to code since before LLMs, the skill of coding has been in atrophy, and will continue to be so over the next 10 or 20 years. Learning to code, over the same period of time, will not be worthwhile. At the end of that process, cracks in the system will start to show: Namely, we will have nothing but LLM-generated code to train future LLMs on, and codebases for production code will be so low in quality that they will be unintelligible to humans, and LLMs, too, will have trouble maintaining them. At that point, coding will become a valuable skill again. The practical question for someone planning out their career from todays' point of view, is that it's uncertain when that time will come, and these markets can and will stay irrational for longer than any single individual trying to resist them will be able to stay solvent.
9 comments

It is a bit like in "Profession" by Isaac Asimov. We will still have the need for some people who will write code manually, fix the craft. We will need the "Feeble Minded" asylum that is actually a secret sanctuary for society's true creators. Because everyone else relies on generated code, they can only repeat what is already known. Only the people who learn the hard way through actual studying possess the creativity and intelligence required to invent new knowledge and create new educational tapes.
The reason LLMs seem powerful is that they can churn out the Nth variation of a CRUD app in minutes. But it’s hard to imagine they’ll ever independently develop a compiler for a truly novel programming language, for instance. They don’t have creativity. They are pattern generators.
> it’s hard to imagine they’ll ever independently develop a compiler for a truly novel programming language

I did exactly that using an LLM. It may not count as independent depending on how strict you are about that, but then LLMs don't do anything independently.

I wrote a small sample program and expected output, then told the LLM to write a compiler for it in C using LLVM. I subsequently told it to extend the language until it could be used for its own compiler, and rewrite the compiler in the new language. It did.

I don't think that contradicts your point about creativity. A compiler is probably a more mechanical task than a CRUD app is. There's a non-negotiable definition of done and correct.

Designing a language is a creative task of course, and I wouldn't expect an LLM to come up with a novel or ergonomic design on its own. In fact subsequent experiments have shown me that LLMs will consistently ignore terrible ergonomics in a language, never seeking opportunities to add abstraction or beauty.

My main argument about this kind of work is that it is (essentially if not exactly) in the training set.

I want a different argument before I believe that LLMs are doing “out of training dataspace creativity” (extrapolation not interpolation).

It's true. Creative work is in the training set.

Being serious. "Think about what this might mean..." Finding unexpected links between various ideas and background knowledge. What we call a "novel idea" is virtually always the repurposing of an idea/concept in a new context. A system that maps arbitrary inputs into abstraction spaces in which similarities are discoverable, such as say a deep learning system, is perfect for this.

But what was novel about the language?
At the time the LLM generated the compiler, just syntax. The semantics it generated were the subset of C that the C version of the compiler already used.

You could set the goalposts such that it wasn't novel enough to count, but for a short time I had code running in a language that nobody had ever known. Getting it from that point to a language that's ergonomic to use, teaches something about computing, or both is a longer journey, and certainly not one an LLM could take on its own.

An LLM won't come up with an interesting CRUD app on its own either. Parts of that process are pretty mechanical, but we had skeletons and templates before we had LLMs.

I'd say that even if the task is "a compiler for an existing language" the empirical results are far from stellar, and indeed, border the terrain of comedy.
Claude has made my Ruby compiler pass 8k more rubyspecs tests over the last two weeks, and that includes solving crashing bugs in hours that I'd failed to fix for weeks in the past.

Compilers for existing languages is if anything one of the lower bars for LLMs, given existing implementations or test suites provides an oracle to test against.

It's not lack of ability that is stopping this, but that it's a space where very few people are experimenting and willing to burn enough tokens.

Isn't "creativity" the result of a combination of patterns (usually from different contexts) that casually works? I bet LLMs/agents can do that (we can't know how far that can goes).
For me that creativity is very well expressed by the principle of abduction. With induction, generalise towards rules, or deduction, use rules on data, we have this combination of patterns via different contexts. I think abduction might not be possible via LLMs.
Reminds me of 'I don't think a computer will ever beat a human at chess'.
> ...and [1] codebases for production code will be so low in quality that they will be unintelligible to humans, and [2] LLMs, too, will have trouble maintaining them. [3] At that point, coding will become a valuable skill again.

You are a very optimistic person. IMHO, claims #1 & #2 will happen, but #3 won't. People, especially business leaders, will just adjust their expectations downwards (or be forced to do so).

Just think of how often some "new and improved version" drops some important feature you used without providing a good replacement? We'll get more of that. If the codebase is unmaintainable, they'll just regenerate a new pile of garbage that will change stuff randomly and call it an improvement.

> Just think of how often some "new and improved version" drops some important feature you used without providing a good replacement? We'll get more of that. If the codebase is unmaintainable, they'll just regenerate a new pile of garbage that will change stuff randomly and call it an improvement.

Most production systems dont have such a high tolerance for embarrassing bugs. Startups can completely fail if they have too low quality. Established businesses can lose to competition if orders don't arrive, compliance has bugs etc etc. So quality has to be good enough, that's a constraint that wont go away.

Having worked at a company with thousands of microservices, I feel like most of it is just a bunch of boilerplate riddled with tons of ridiculous business logic, security and otherwise bugs. It seems like people were historically more concerned about Java inheritance and spreading everything around different files and directory hierarchies, while ignoring common sense business requirements completely. With each service being on separate older version, many being very difficult to start up locally, I don't see how LLMs could do worse than that, and that is a profitable, working business.

Funnily enough AI is the one discovering all those glaring issues now, and everyone is overwhelmed with getting it fixed. You could allow AI to attempt fixing it, but even though all of it was human written it is still hard to review, and even locally spin up or test because no one any more knows the true business requirements as people have rotated etc, so it's a nightmare.

The code on the first sight looks good, but what could be a simple config map, is spread out abstraction that is impossible to understand. Think just massive amounts of boilerplate to make a proxy call to another microservice etc.

The 1500 line react component that my unsupervised agentic coding side project produced says that it can get worse than we have now.
I swear I see far worse from humans for working businesses, and in much worse ways than just duplication of code. At least AI tends to be smarter about React intricacies even if it does create huge files. For my personal projects however I have straight token limits per file, whether it is backend or frontend so AI can't do that many lines of code. And I have specifically token limits so it would avoid hacking with formatting. And for React specifically I force it to put hooks in separate files and component files to be presentational only with max 1 hook usage.
> At least AI tends to be smarter about React intricacies even if it does create huge files.

Oh no it's not. You just haven't seen where it goes when barely supervised by someone new to React. I've seen a level of spaghetti code with excessive useEffect and useMemo, reinventing two-way binding, I didn't even know was possible in React.

Spent months detangling weeks of AI-generated work earlier this year. Eventually got to the point we were actually fixing bugs by accident that previously neither they nor the tool could figure out.

24000 line central function in a mobile game that did 6 figure revenue monthly.

Made by an actual human, before OpenAI was a household name.

I'm 99% sure any SOTA LLM could've refactored that in a day to something actually manageable. It could've done it on a weekend.

The difference is, if you tell the LLM that the component is too big and ask it to use some strategies to break it up, it will.

Humans? Also maybe, but I always suspect the humans actually don’t know a better way. The LLM does, just that pathway wasn’t activated.

> Funnily enough AI is the one discovering all those glaring issues now, and everyone is overwhelmed with getting it fixed. You could allow AI to attempt fixing it, but even though all of it was human written it is still hard to review, and even locally spin up or test because no one any more knows the true business requirements as people have rotated etc, so it's a nightmare.

No. It's just screwed up priorities. Those "glaring issues" were always a problem for the people maintaining those apps. It's just that no one gave a shit about those people or cared to make their job easier or them more successful (see the challenge or prioritizing tech debt remediation), but those same people are some reason willing to whatever it takes to make the machines successful.

There's a lot of contempt for humanity in the business world. It probably stems for a contempt for labor and a fetishization of capital.

We've been on this merry go round before with the "outsourcing to the cheapest programmers in india" boom.

That slopfest ended with a new executive dogma of "hire only the best programmers" as so many of those projects were humiliating disasters which had to be junked. I do not think that was coincidental.

Executive fashions can remain remarkably consistent and irrational for years as they try to make reality conform to their expectations before doing a complete 180.

Funny you say that.

Outsourcing to India never ended. The Indian Service companies kept growing over last two decades.

Now many Western companies are setting up Global Capability Centers driving strategic innovation, IT, and R&D.

So the work going to India has moved up from "outsourcing to the cheapest programmers in india" to "we will hire the best talent in India directly and set up our company's base there".

To give some credit to your point, moving some low efficiency work to India since early 2000s freed up resources for many Tech companies to invest their best programmers into more profitable ventures.

But with the GCCs being set up in India, even a lot of the innovation and R&D work is now moving to India.

If that's any indication to your parallels with companies investing in AI. Something similar can happen with AI - where low end work moves to AI first, and the over time as the Technology develops more challenging and innovative tasks move to AI.

Outsourcing never ended but it did happen in waves. Right after ZIRR ended but before the AI panic multiple companies started to layoff in developers in western countries and double down on outsourcing to India. During ZIRP they employed more people in the US/EU and less work was outsourced.
I have the last native Fujitsu laptop that is worthy of mention. I am a big fan. Fun story: about 5 years ago they decided to resume their laptop production, and the only practical way was to enroll old retired Japanese workers. I guess, the youth do not have the skill or/and do not want to bother. They made some batches, then I believe it ended.

Panasonic still makes laptops, enterprise use only, very expensive.

How is that relevant? Well, directly.

I think in order to be a productive programmer with Claude you still need to understand what you are doing.

Learning to code is a must. You need to know what is possible or easy to know how much you can ask.

What will be less important is to keep your sword sharp.

I notice that if code less for some time I do more one-off errors, copy/paste mistakes etc. With llm keeping the coding skill warm is less important but I cannot imagine doing my work - even with Fable if I didn't know how to do it without him

To be clear: I don't envision a scenario where people who are completely unable to code will come out of nowhere, and make a career out of prompting claude to write software without ever learning to code. What I am saying is that the threshold of what constitutes "good enough" coding skill has shifted down, and those people who already knew how to code now have a certain multiplier on the outcomes they deliver. (this multiplier is high if you measure on low time horizons and gets lower, the longer the time horizons, but the latter doesn't matter in managers' minds). So there will, for a time, be a massive overhang of good-enough coding skill from "old stock", so to speak. For those who do not already know how to code, this make the proposition of learning to code right now uneconomical. If there is already a massive oversupply of grapes in the market, and you're trying to decide which crop to plant, then planting more grapes is economically probably a pretty poor decision. It would be better to plant things that are undersupplied.
> make the proposition of learning to code right now uneconomical

I disagree with this part. The bar of skill you need to write complex now is much lower now, so a new person might very quickly learn just enough to be able to build cool products.

Maybe not operating systems, but useful web apps, browser plugins, productivity tools, programs that solve business needs outside of IT, ETC.

Edit; but if you mean learning to code with the purpose of finding a job as a programmer then I'm more willing to agree.

One might argue that these people will not understand the code they write if they use LLMs. I would counter that with my observation that plenty didn’t understand the code they wrote before LLMs too.
This is the correct take.

Of course you need to know how to code to code. We just no longer need to write code the same, or even reason about the same problems. It's awesome.

LLMs are trained with a large corpus of commercially available source code. However, intentional training on individual skills such as medicine, finance, mathematics, and software engineering is conducted to the tune of a few billion dollars per year.

Your scenario would only unfold if frontier labs decided not to compete on capabilities. It sounds unlikely.

How will they hire experts from those professions on whose output to train on, if they destroy the skills currently extant in those professions? Maybe lawyers will still read contracts every once in a while. Certainly, programmers around me no longer bother with reading code. ...and you can make an argument that a similar effect will happen that is widely observed in language-learners: Namely, if you only ever use a language passively (to read/listen), you're not necessarily able to use it actively (to write/speak).

> large corpus of commercially available source code

Like garbling up GitHub? Currently, people put hand-crafted code there to earn "street cred". Will people continue to do that, if AIs regurgitate their code without giving credit? Will people continue to bother with learning to code, when AI has reconfigured the economy to make this skill a worthless commodity?

Your argument assumes premises that are hardly certain. We use automobiles to travel, yet tens of thousands can still ride horses today. Hell, there are thousands of blacksmiths and glass blowers. If there's a several hundred million dollar market for programming language experts, this will provide sufficient incentive for some people to remain sharp.

We still have COBOL programmers for a reason. The economic incentive to keep the skill never left.

====

>linkregister: LLMs are trained with a large corpus of commercially available source code. However...

This concedes your point. Hence the following "however". It's bizarre to argue against it.

Actually, riding horses is a great example, and you happened to pick a domain within which I dabble: People are not capable of riding horses today at the level of skill of a nobleman from Renaissance Europe. People at the forefront of the riding arts today read manuscripts from Guérinière, second-guessing at the meaning of every last syllable, because many of those sources describe things that are unintelligible and unfathomable today that seem to have been quite commonplace. And this is despite even the centuries of continuity of government funding for institutions that have been dedicated to trying to prevent precisely this. (Namely the Spanish Riding School of Vienna and similar institutions in Lisbon and Jerez, the Cadre Noir, etc.)

Also: Saying that "learn to code" has been reduced from a meme about a surefire ticket to economic security to the equivalent of glassblower, is not really refuting what, in broad strokes, the original point actually was; is it?

Similarly, I spent a few hours one day going down a rabbit hole of modern marble carvings, wondering if there were any hidden great masters of the art. I found that despite there being essentially limitless wealth and people compared to when the Pietà was made, there’s nobody making marble carvings like the masters did. Now there are some somewhat stylized marble carvings but in my opinion they pale in comparison to a masterwork marble statue. After all, why do that when you can just snap a photograph?
More like, "old developers will continue to denounce the diminishing code quality, and long for the old days of programming".

Meanwhile more people will build and use software than ever before, and all of these "everything is going to hell" diatribes will be laughably overblown.

If you haven't read it, I think you'd enjoy The Machine Stops by E.M. Forster. It's amazingly prescient, given it was written in 1909.
>codebases for production code will be so low in quality that they will be unintelligible to humans, and LLMs, too, will have trouble maintaining them

The concern for code quality has become increasingly unfounded. I have noticed over the last year or so that you can still tell when a codebase is 100% AI generated, but not because it is poorly written or disorganized, but that it is now dramatically better than any human would have written.

Funny but also not true unless you have low standards, potentially as a result of just not being very good yourself.
Part of the industry always seek humans able to code with deep understanding. AI is fast but always lacks depth, works better if you are able to pilot it with your knowledge. If that changes, learning code becomes useless. If you learn code with limited depth (nextjs bros), this is already useless.
> Part of the industry always seek humans able to code with deep understanding.

Name them. In my 16 years in the business I've never come across any; I've always worked under leaders who did not care about code quality in the slightest and just looked at outcomes, and when outcomes stopped happening as a result of poor code quality were always unable to connect those dots (or wilfully looked the other way).

I think embedded software for highly-regulated medical devices or whatever is just not enough to take in all the "AI-refugees" who are now seeking meaningful work that has been taken away from them. The pessimistic side of me expects that it's probably not true in the first place that these industries work any different than what I'm used to. And even the optimistic side of me has to admit that the laws of supply and demand imply that, in those few niches where it still matters, there are enough people out there desperate to do that kind of work right now, that it will be done for free and won't present a real earning opportunity.

Most AI-refugees where quality doesn't matter will embrace the slop, they will become slop experts, slop consultants. Learning to code become less relevant, except if you are looking for a work that really needs it and it will still be valuable, that won't be for everyone.