> a genuinely good tool that enriches your thinking
A smartphone is also a genuinely good all-around tool. Even social media is a genuinely good tool for connecting people.
Yet, I feel like we've been overly optimistic about the impact of said tools on us and our societies in the past two decades.
Smartphones are so good, in fact, in some societies, half of us are addicted to them. Billions of people world-wide.
I ask myself: Will LLMs enrich my thinking in the long run, or will they ruin it?
And what about most people? Will half of us outsource most of our thinking in a decade from now?
Given that we're running these experiments on a global scale, it's fair, I think, to be a bit sceptical of the conclusion that, in the long run, LLMs will enrich our thinking.
> LLM’s amplify what you already have: opinions, structure, frameworks.
So far, so agreeable, but…
> If you have thoughts, they come out sharper and faster.
I can’t help but wonder whether constant use of “agent” harnesses will lead to an atrophy of the software engineering (or really any field) muscles.
Actual muscles need exercise to stay in shape (let alone grow), so does the brain. Can we really be sure that thoughts, opinions, taste will still come out sharper and faster after five, ten, 20 years of using these tools almost every day?
Conversely, I also am a user of LLMs (true shocker these days, I know), and am noticing a speedup in areas I was already familiar with, and a quicker introduction to new ones. The obvious benefit cannot be denied, and doing so regardless makes you look uninformed. [0]
So what’s the ideal “middle ground” in this situation? Stoically continuing to sharpen your skills on your own, but risking being left in the dust productivity-wise? Or taking an “agent first” approach and trying to learn and improve more only on the side, as more of an afterthought?
[0] Excluding people who don’t want anything to do with LLMs out of moral principle, which curiously just like the overarching topic I also both respect and understand, but on the other hand don’t do myself.
I will just point out the benefit is not as obvious as you think. Developers have consistently overestimated LLM productivity gains, which still seems true for agentic AI: https://metr.org/blog/2026-05-11-ai-usage-survey/ It is particularly striking how similar the results are to LLMs before agents.
Along with the total absence of long-term data, I think the benefit can be (weakly) denied. Maybe not in the employmemt marketplace, but certainly for myself.
> I will just point out the benefit is not as obvious as you think. Developers have consistently overestimated LLM
I think there are two different claims here:
- developers overestimate productivity gains, which is a solid finding in many of these studies. Skepticism of extremely large productivity gains is warranted and I flatly disbelieve "10x uplift" claims.
- LLMs give no productivity uplift at all, which is much harder to defend. A repeat of the famous METR RCT study did find evidence of improved productivity, and this seems to align with the experience of many experts I trust.
If slop is fine (and sometimes it is), the benefits are undeniable. If the dev was the kind that would have produced slop anyway - again, undeniable boost.
If the quality needs to be high I think it actually can slow you down, though.
I don't think there is necessarily one ideal middle ground here. It still feels to me like what's best is a function that depends on who and when.
I see it as something like a personal gradient descent. You're working on a problem, there are solutions down there somewhere, and you can kind of feel the gradient of the tools-and-techniques ground around you. Any way you walk means you're investing time improving some skill or another. So you should go the way that personally feels to you will best get you moving in the direction that you want to go.
For some people it's obvious LLMs are competent coders, getting better, sticking around... and those people should lean into that gradient. For some people what's obvious is nearly the exact opposites of all that, and I'd encourage those people to also follow their gradient/heart/nose down the path of sharpening their personal traditional coding skills. Some people are in a relatively flat area where nothing is obvious, and need to explore and maybe just keep doing their best to hedge with a bit of both.
<< So what’s the ideal “middle ground” in this situation?
Putting all this in 2nd paragraph so that you can skip it if you think 'coding' is your primary portion of your job.
I suppose I am in a mildly privileged position in a sense that my work is a weird intersection of tech, finance, and comprehension. In other words, I don't code much, but I absolutely benefit from now being able to play with various projects I would otherwise have no business touching without a bigger support team.
I don't want to invoke Accelenrando, but the muscle imagery and analogy fits. I will give an example. I recently decided to pick up Go for a project ( have experience in some other languages, but I will still be starting fresh ). I could have codex build me what I want, but I am purposefully taking it slow so that I can learn the foundation so that I can have a frame of reference ( because I assume it won't be the only go project for me ).
Otoh, most of my one off python scripts I barely even skim anymore. And honestly,that is the part that scares me more.
> So what’s the ideal “middle ground” in this situation?
I use agents to code. But I remember the early days of just AI smart complete in the IDE, where as the programmer I had to be more involved with designing and implementating the solution. This kept me engaged with the implementation as it was being built out. Now with agents, I find myself trying to catch up with what the agent did and spend more time code reviewing. Maybe you end up in the same place in the end. But building the implementation, vs code reviewing, feels more rewarding and I think helps keep your mental tool sharpened.
I think that the onus is on us to get better at using agents and AI to solve the pain points and speed things up while keeping quality high and our mental tools sharpened. I do nto think turning back is an option, but managing the pain points and leveling up is.
> whether constant use of “agent” harnesses will lead to an atrophy of the software engineering (or really any field) muscles
Well, I think most neuropsychologists would agree that the answer is "yes, there will be atrophy" - if you don't use it, you lose it.
> So what’s the ideal “middle ground” in this situation?
I've been thinking a lot about this myself. My current plan is to train myself to get good at recognizing the feeling of "there's potential effort here that I want to outsource to the LLM" and occasionally choosing to not outsource it and do it by hand - especially with personal projects, where there's far less pressure to ship with velocity than work projects - but I'm not settled on this. I'll take any idea!
>Can we really be sure that thoughts, opinions, taste will still come out sharper and faster after five, ten, 20 years of using these tools almost every day?
After 5 years, I think the thought profile every power user of the LLMs would be an LLM derived carbon copy of each other.
Prepare the world to get even more boringly uniform
> I can’t help but wonder whether constant use of “agent” harnesses will lead to an atrophy of the software engineering (or really any field) muscles.
It will, but I'm not sure the impact of this will be all too great. We suffer from not knowing how to use an abacus because we have a calculator, and people who feel a pull to keep their low-level chops up will do so anyway.
I don't think this is equivalent. The calculator won't occasionally hallucinate a wrong answer. LLMs are a far leakier abstraction which means skill atrophy impacts evaluation and verification ability.
We will suffer from not knowing how to add. You could still argue "so what?"
Systems aren't a single addition. They are compounded operations with sprawling complexity. What happens when you can't reason through the system? What happens when you start asking for the wrong things? What happens when saying "fix it" on loop stops working?
>Conversely, I also am a user of LLMs (true shocker these days, I know), and am noticing a speedup in areas I was already familiar with, and a quicker introduction to new ones. The obvious benefit cannot be denied, and doing so regardless makes you look uninformed.
My largest concern comes from something tangential to this: I'm not sure we're all that good at deciding what should be learned and sticking to it.
Silly example: regex. LLMs are, as far as I know, well above the average dev when it comes to writing regex. Regex is also one of those things that for many people goes unused for months, but then you encounter the occasional perfect regex problem, and it's really easy to just lean on the LLM to write the regex for you rather than spending some time tinkering and testing. Regex can be frustrating and fickle, I think we've all been there.
But then, you just don't learn regex. So where does the intuition for what regex can do come from? Do you just become unable to write regex with no LLM? People stop writing resources for regex I guess?
My concern is that there's stuff I feel I can just chuck onto the LLM but I'm sure my judgement is not perfect. It's still probably worth it, all in all, but I'm not even sure of what I might be losing along the way and that's an uneasy feel.
I've been using regex decades, but it never really stuck to do anything too complex, it was the perfect intersection of difficult and infrequent. ( And also variable - PCRE vs others customisations / non-regular parts, etc ).
I am very glad that I can now just ask claude for a regex to achieve my intent.
Does it mean I'll never master regex? Yes it does, but decades has shown that was unlikely to ever happen anyway.
Regex came up so infrequent that I found myself referring to documentation whenever I needed to use it. But I always wondered, what are the jobs or roles that use it so often that they have mastered it.
In the era of vibecoding, there are people creating software that haven't ever heard of a regexp. I learned regexps when Perl was popular. It's a useful skill that has served in me well in my career, but if the industry's moved on from a place where regexps and Unix knowledge are useful because this new tool has replaced me, well shit. I'm excited for the future, but also that's not a great feeling to have.
> I can’t help but wonder whether constant use of “agent” harnesses will lead to an atrophy of the software engineering (or really any field) muscles.
For sure. You cannot have "only higher level thoughts" without doing lower level work.
Ironically llm themselves prove that because you cannot remove facts like 'paris is capital of france' from llm and have it just retain 'high level thoughts' like 'countries have capitals that you can look up'
> For sure. You cannot have "only higher level thoughts" without doing lower level work
What do you mean? I think people routinely think about things at a very high level with almost no understanding of the lower levels. How many people use a computer each day and reason about them at a very high level while knowing nothing of capacitors, logic gates, or programming languages?
How many people struggle with their computer, or get scammed, because to them it's just icons on a screen, with not even the concept of a process, memory vs. disk, or anything? How much money is lost each year because someone doesn't know what an URL is?
I think they didn't phrase it precisely, but my guess is the underlying idea is actually "high-level software architecture doesn't have a clear abstraction layer you can use to separate it from low-level coding (unlike logic gates, the CPU's ISA, the kernel API, etc), and so delegating the latter leads to delegating the former".
That makes sense but I'm still not so sure—we have things like software architecture patterns that can be discussed at a high level without knowing the intricacies. Like you can be aware of load balancing and even use it but be unaware of how load balancing might work algorithmically.
Let's consider even the original example.
> You cannot remove facts like 'paris is capital of france' from llm and have it just retain 'high level thoughts' like 'countries have capitals that you can look up'
Wouldn't the knowledge that countries have capitals precede the knowledge that Paris is the capital of France?
This says nothing about the accuracy of our own models based on these abstractions that lack the lower-level understanding.
> we have things like software architecture patterns that can be discussed at a high level without knowing the intricacies
I think the counterargument would be "you can't teach people architecture alone and get good architects".
I've observed this myself in "systems engineers" whose job is to connect boxes together without understanding how the boxes work. They, invariably, design ridiculous architectures on their own and need to basically find a domain expert to route their opinions through to come up with anything sane.
For sure. You cannot have "only higher level thoughts" without doing lower level work.
Spend 3 days a week writing Ruby on Rails and 2 days hand rolling x86 assembly. Every web dev I know has been doing this since long before LLMs. Ensures they can keep having high level Rails thoughts.
> "Last but not least, even when just researching with LLMs, they have the natural tendency to silently sneak in the thoughts of the majority of the training materials, or sometimes even the political convictions of the ones who created the model."
> "Yet I still write all of my texts with LLMs"
So I'm guessing the author is actually ok with the point they put in the "LLMs are bad" part of the article?
One thing about open source is a lot of people are throwing low quality PRs that should have been an issue or even a discussion, so you can understand what was the problem the person encountered that motivated such PR. This is hard to get because usually people use LLMs to also answer questions you make about the PR. I am tending towards blocking PRs from people outside the main developers in most of my open source projects. If the person CAN discuss the problem, authoring the PR is easier if I do it myself, even if using an LLM, because reviewing a PR authored by random internet people/bots is hard because of how much the entire code tends to change after minimal questions are asked. What I am sad of this approach is that I did met a few interesting people through receiving PRs and establishing trust and some relationships in the past (eight years ago and before)
> And this is where the value is for me: I can simply make things higher quality than I could do them alone.
Yeah, that's the thing for me. LLMs have made my work easier and faster, and they've made my side projects easier and faster. I think there are very sensible and valid critiques but so far the tool works for me.
Yeah this is where I stopped. I use AI every day for work but 10k spend to me is a signal that OP is doing something extremely stupid with their AI use.
Because it's a machine, not an oracle. If you "hold it right" you are more productive. When you catch them being "dumb" you're reinforcing your own deep knowledge on the topic. When it is correct, you're either learning something new or your task is complete. You are still at risk when you know little and trust it to work alone.
It depends upon why you have issues with LLMs. If you’re just concerned about quality then sure the dissonance isn’t intolerable. If you’re concerned about their ethics then this becomes a much more challenging position to have.
The implication is that LLM critics don't use LLMs at all, or that the author is not an LLM critic, but both of those things are incorrect. We are very good at inventing entire people out of single opinions we read, and the AI arguments are maybe the best example of that I've ever seen in my many years watching internet arguments (not least due to the expansiveness of AI, and the sheer breadth of pros and cons it holds within).
I'm saying it in jest, but it's also a bit true. Not necessarily because we use it any differently. But because my use of AI saves me time. But their use of AI adds more to my plate, no matter if it's slop or not.
The critics are absolutely right, LLMs have a lot of faults. But they also have a few great benefits. I use them every day for the benefits, fully aware of the faults, and I watch those faults like a hawk.
>as a senior, you don’t need juniors anymore. The mundane tasks, at least I find that a lot of people agree with that one, can be fully outsourced to an LLM
Master craftsmen didn't take on apprentices to give them chores.
Master craftsmen paid apprentices almost next to nothing, and they were often contractually guaranteed to stick around for many years, so the teaching was a kind of wage and also a cost that could be recuperated later on. (The apprentice even often had to pay the craftsman to take them on.) None of those things are true for junior software engineers, who are paid to contribute and can leave at any moment. Also, yes apprentices often had to do chores. It is just not analogous at all.
I think both the LLM critics and the LLM advocates are right.
Even this article has some cognitive dissonance in it. What it really comes down to is how much you trust your own verification process. The branches of questions an LLM generates are still trapped within the biases of its training data. Of course, the authority to craft that initial prompt, the very first question, comes from human experience and learning.
But I think thought itself is the easiest resource to outsource. People say the human did the thinking and the LLM just amplified it, but the truth is, the LLM outsources the thinking. Otherwise, when the result is good, people say "human thought was present," and when it's bad, they say "human thought was absent." But a part of the actual thinking really is outsourced. The alternatives, the counterexamples, the sentence structure. In programming terms, the reader's experience gets outsourced. When you write a blog post, you find yourself thinking about how to make something you understand easy for someone else to understand. With an LLM, that part gets outsourced.
But at the same time, I don't get the argument that you shouldn't use it at all. We don't "think" about everything. We have limited cognitive resources. So we study deeply the things we care about, but for the things we don't need, we mostly leave them to "common sense" or prejudice. We just skim the surface.
I think of "common sense" as "the largest collection of prejudice." Because what we call common sense usually just amounts to surface level knowledge, the kind of thing we know just enough about to get by.
That's why I think LLMs are good. The reason is simple. I don't think deeply about everything in the world anyway. For everything else, I'm buried in some kind of bias. You see it on HN all the time, right? People fight over some technology, but they often don't think about its internal structure or why it works the way it does. They just treat it as an identity. They fight over a particular language, a framework, an operating system, but they rarely check how that technology actually works internally or why it was designed that way. Why use MVC, why a different architecture might be better for my case, it's easier to just go with what's popular. Put more elegantly, "job mobility" gets bundled in there too. I use Windows. In my country, if it's not Windows, you literally can't do anything. You can't even do basic online banking. From regional context like that all the way down to personal interests, people are bound to be different. So I'm just going to use LLMs. The most common excuse you hear around this is the whole "reinventing the wheel" thing.
So yeah, I'm going to use LLMs. Because I recognize that I bias myself toward only thinking about what I want to think about. And I know that bias isn't cognitively healthy. But on the flip side, I think what the world values, whether it's knowing a lot or knowing one thing deeply, is going to change.
Honestly, I don't know what's right. I think both the advocates and the critics are making valid points. I respect the people who don't use it, and the people who do just have their own workflow. There's really no reason to fight over whose workflow is superior.
Good article! This matches how I feel about the situation.
It's really not incongruent to use LLMs and be in awe of their frankly incredible capabilities while at the same time recognize the risks and frankly real damage we are already seeing to junior training and hiring, open source communities and (in my opinion) very soon the entire fabric of our society.
I respect that people don't want to use agents themselves for whatever personal reason.
I respect maintainers not accepting AI-authored contributions. It's a tradeoff between progress, growing new contributors and maintainer sanity. Though I do feel that categoric opposition to anything AI will likely be futile in the mid-term.
I respect people pushing for regulation of AI or a global pause or whatever.
I don't particularly respect people dismissing everything AI authored as slop. Categorically refusing to read an article because it contains em-dashes or the term "load-bearing" is silly. While this is slowly changing now, many people are still in complete denial as to what the frontier AI is capable of.
Love it, hate it - I don't care, but at least respect it, goddamit.
Criticizing use of agents for skill atrophy is valid, it definitely atrophies blank slate coding ability, though I don't think it atrophies engineering abilities unless you just YOLO all decisions to the agent. The data center/oligarchy complaints are also valid.
Saying agents produce shitty code is a bad argument though. They produce shitty codebase organization, but at a micro level their code is solid if not elegant. If you let them turn your codebase into a spaghetti mess, that's on you.
The desire to categorize people as right or wrong should be resisted. It's tangential, and distracts by feeding the tribalism part of the brain instead of considering individual things that are explicitly stated.
The advent of the internet was collaborative and based on introducing shared protocols for a couple of decades. It deserved criticism when globalised capitalism got involved, and monopolies started forming, leading to rent-seeking, excessive centralisation, and enshittification.
The impact is that the internet has a fraction of the value to improve people's lives as it should have. It is a very poor free market, incredibly poor competition because of lack of standards and protocols and interoperability. People's minds are ground down by social media, search engines don't work well any more and so on.
So yes - every new technology deserves many criticisms, so they can be addressed, and as a society we can gain the benefits of that technology and minimise the disadvantages.
The printing press lead to copyright, public libraries, universal literacy... All things which are now widely celebrated. They took centuries to work out, and are all government and regulatory intervention to fix problems critics noticed and campaigned about.
AI is the same, only it is at risk of moving much faster and having a much large negative impact before society reacts.
So no, most of the criticism of LLMs are not wrong - they are correct, as are the people saying the technology of LLMs is useful to people and the economy.
Critics are friends of a new technology - without responding to every criticism in a significant way, AI will rapidly lead to a Butlerian jihad. If you like AI, you should love criticism of AI even more.
> I think the core issue here is trust. You should never trust random people on the internet anyway. But before LLMs, there was this base thing: creating a proper PR with proper descriptions would require at least some human time, so it would keep trolls and low quality submissions out. Or at least you could easily filter them out within a couple of seconds. So even if a new person came in, you could trust that this person would have at least spent a couple of hours on that. And then it was probably worth taking a closer look at it.
Ding ding ding. This is my biggest gripe with AI. Even the SEO blogspam, the fluff in front of every recipe, yarnwork or DIY instruction, it all was clearly written by a human. Someone had invested time (and money) in getting something in front of my eyes.
But now, it's all just slop. Everywhere. And hell I'm tired because the onslaught breaks my trust filters.
Maybe I think this is an age thing. Boomers? They trust everything written down somewhere. No matter what, and no matter if they didn't spend half my childhood to "never trust what people write on the Internet", and now they fall for scams left and right. My generation as said grew up with this "never trust, always verify" thing. And the younger generation? They DGAF about anything any more, all they care about is trying to survive.
> And b), the teaching, aka “How do we teach new people?”: previously, there was this balance aka “the junior does some pretty mundane tasks, but for this the senior reviews it together with him and helps him to grow”.
GOD YES YES YES THIS x1000.
There is barely anything more rewarding than teaching someone something, to watch the other person grow - and eventually surpassing your own abilities. That is when you know you did right and well. My wife is the best example, she started out at "can you help me with Excel", and these days, she pulls off stuff that would make more than a few finance people blush.
> There is barely anything more rewarding than teaching someone something, to watch the other person grow
I think many junior devs (or aspiring junior devs) look for exactly this experience. This is a matching problem we haven't solved yet. Is Open Source the solution ? I really think it has to be solved if we want truely reliable software in the future.
You're all in denial when you criticize LLMs. It's not necessarily that the criticism isn't true. It's more how self assured the criticism is. That's the biggest problem because AI is a moving target. It is getting better, and it is getting better fast. A lot of the criticism can become outdated in a year or six months. The change is happening in front of your very eyes and yet you can always reliably come on HN and find some sort of self assured criticism to say AI can't design, AI code must always be reviewed. Blah blah blah.
The big thing people used to call AI was that it was a stochastic parrot and all it did was summarize things. Clearly. None of this is/was true anymore. And very likely all the current criticism will be eliminated soon and we have to find new excuses about AI that makes us feel we are superior.
The status quo is about to change. Every 6 months. And you will always think of yourself as superior to LLMs. Your current criticisms will evolve as most of them will be rendered not true pretty soon.
The trust problem feels more important than whether the code was AI-assisted. A small, reproducible change with clear tests is reviewable; a huge opaque diff is not, regardless of who typed it.
> a genuinely good tool that enriches your thinking
A smartphone is also a genuinely good all-around tool. Even social media is a genuinely good tool for connecting people.
Yet, I feel like we've been overly optimistic about the impact of said tools on us and our societies in the past two decades.
Smartphones are so good, in fact, in some societies, half of us are addicted to them. Billions of people world-wide.
I ask myself: Will LLMs enrich my thinking in the long run, or will they ruin it?
And what about most people? Will half of us outsource most of our thinking in a decade from now?
Given that we're running these experiments on a global scale, it's fair, I think, to be a bit sceptical of the conclusion that, in the long run, LLMs will enrich our thinking.
> LLM’s amplify what you already have: opinions, structure, frameworks.
So far, so agreeable, but…
> If you have thoughts, they come out sharper and faster.
I can’t help but wonder whether constant use of “agent” harnesses will lead to an atrophy of the software engineering (or really any field) muscles.
Actual muscles need exercise to stay in shape (let alone grow), so does the brain. Can we really be sure that thoughts, opinions, taste will still come out sharper and faster after five, ten, 20 years of using these tools almost every day?
Conversely, I also am a user of LLMs (true shocker these days, I know), and am noticing a speedup in areas I was already familiar with, and a quicker introduction to new ones. The obvious benefit cannot be denied, and doing so regardless makes you look uninformed. [0]
So what’s the ideal “middle ground” in this situation? Stoically continuing to sharpen your skills on your own, but risking being left in the dust productivity-wise? Or taking an “agent first” approach and trying to learn and improve more only on the side, as more of an afterthought?
[0] Excluding people who don’t want anything to do with LLMs out of moral principle, which curiously just like the overarching topic I also both respect and understand, but on the other hand don’t do myself.
I will just point out the benefit is not as obvious as you think. Developers have consistently overestimated LLM productivity gains, which still seems true for agentic AI: https://metr.org/blog/2026-05-11-ai-usage-survey/ It is particularly striking how similar the results are to LLMs before agents.
Along with the total absence of long-term data, I think the benefit can be (weakly) denied. Maybe not in the employmemt marketplace, but certainly for myself.
> I will just point out the benefit is not as obvious as you think. Developers have consistently overestimated LLM
I think there are two different claims here:
- developers overestimate productivity gains, which is a solid finding in many of these studies. Skepticism of extremely large productivity gains is warranted and I flatly disbelieve "10x uplift" claims.
- LLMs give no productivity uplift at all, which is much harder to defend. A repeat of the famous METR RCT study did find evidence of improved productivity, and this seems to align with the experience of many experts I trust.
The productivity depends upon the requirements.
If slop is fine (and sometimes it is), the benefits are undeniable. If the dev was the kind that would have produced slop anyway - again, undeniable boost.
If the quality needs to be high I think it actually can slow you down, though.
I don't think there is necessarily one ideal middle ground here. It still feels to me like what's best is a function that depends on who and when.
I see it as something like a personal gradient descent. You're working on a problem, there are solutions down there somewhere, and you can kind of feel the gradient of the tools-and-techniques ground around you. Any way you walk means you're investing time improving some skill or another. So you should go the way that personally feels to you will best get you moving in the direction that you want to go.
For some people it's obvious LLMs are competent coders, getting better, sticking around... and those people should lean into that gradient. For some people what's obvious is nearly the exact opposites of all that, and I'd encourage those people to also follow their gradient/heart/nose down the path of sharpening their personal traditional coding skills. Some people are in a relatively flat area where nothing is obvious, and need to explore and maybe just keep doing their best to hedge with a bit of both.
<< So what’s the ideal “middle ground” in this situation?
Putting all this in 2nd paragraph so that you can skip it if you think 'coding' is your primary portion of your job.
I suppose I am in a mildly privileged position in a sense that my work is a weird intersection of tech, finance, and comprehension. In other words, I don't code much, but I absolutely benefit from now being able to play with various projects I would otherwise have no business touching without a bigger support team.
I don't want to invoke Accelenrando, but the muscle imagery and analogy fits. I will give an example. I recently decided to pick up Go for a project ( have experience in some other languages, but I will still be starting fresh ). I could have codex build me what I want, but I am purposefully taking it slow so that I can learn the foundation so that I can have a frame of reference ( because I assume it won't be the only go project for me ).
Otoh, most of my one off python scripts I barely even skim anymore. And honestly,that is the part that scares me more.
> So what’s the ideal “middle ground” in this situation?
I use agents to code. But I remember the early days of just AI smart complete in the IDE, where as the programmer I had to be more involved with designing and implementating the solution. This kept me engaged with the implementation as it was being built out. Now with agents, I find myself trying to catch up with what the agent did and spend more time code reviewing. Maybe you end up in the same place in the end. But building the implementation, vs code reviewing, feels more rewarding and I think helps keep your mental tool sharpened.
I think that the onus is on us to get better at using agents and AI to solve the pain points and speed things up while keeping quality high and our mental tools sharpened. I do nto think turning back is an option, but managing the pain points and leveling up is.
> whether constant use of “agent” harnesses will lead to an atrophy of the software engineering (or really any field) muscles
Well, I think most neuropsychologists would agree that the answer is "yes, there will be atrophy" - if you don't use it, you lose it.
> So what’s the ideal “middle ground” in this situation?
I've been thinking a lot about this myself. My current plan is to train myself to get good at recognizing the feeling of "there's potential effort here that I want to outsource to the LLM" and occasionally choosing to not outsource it and do it by hand - especially with personal projects, where there's far less pressure to ship with velocity than work projects - but I'm not settled on this. I'll take any idea!
>Can we really be sure that thoughts, opinions, taste will still come out sharper and faster after five, ten, 20 years of using these tools almost every day?
After 5 years, I think the thought profile every power user of the LLMs would be an LLM derived carbon copy of each other.
Prepare the world to get even more boringly uniform
> I can’t help but wonder whether constant use of “agent” harnesses will lead to an atrophy of the software engineering (or really any field) muscles.
It will, but I'm not sure the impact of this will be all too great. We suffer from not knowing how to use an abacus because we have a calculator, and people who feel a pull to keep their low-level chops up will do so anyway.
Now imagine if your calculator billed per button press.
And imagine you can't own a calculator because owning one outright requires too much hardware (or whatever).
I don't think this is equivalent. The calculator won't occasionally hallucinate a wrong answer. LLMs are a far leakier abstraction which means skill atrophy impacts evaluation and verification ability.
We will suffer from not knowing how to add. You could still argue "so what?"
Systems aren't a single addition. They are compounded operations with sprawling complexity. What happens when you can't reason through the system? What happens when you start asking for the wrong things? What happens when saying "fix it" on loop stops working?
>Conversely, I also am a user of LLMs (true shocker these days, I know), and am noticing a speedup in areas I was already familiar with, and a quicker introduction to new ones. The obvious benefit cannot be denied, and doing so regardless makes you look uninformed.
My largest concern comes from something tangential to this: I'm not sure we're all that good at deciding what should be learned and sticking to it.
Silly example: regex. LLMs are, as far as I know, well above the average dev when it comes to writing regex. Regex is also one of those things that for many people goes unused for months, but then you encounter the occasional perfect regex problem, and it's really easy to just lean on the LLM to write the regex for you rather than spending some time tinkering and testing. Regex can be frustrating and fickle, I think we've all been there.
But then, you just don't learn regex. So where does the intuition for what regex can do come from? Do you just become unable to write regex with no LLM? People stop writing resources for regex I guess?
My concern is that there's stuff I feel I can just chuck onto the LLM but I'm sure my judgement is not perfect. It's still probably worth it, all in all, but I'm not even sure of what I might be losing along the way and that's an uneasy feel.
I've been using regex decades, but it never really stuck to do anything too complex, it was the perfect intersection of difficult and infrequent. ( And also variable - PCRE vs others customisations / non-regular parts, etc ).
I am very glad that I can now just ask claude for a regex to achieve my intent.
Does it mean I'll never master regex? Yes it does, but decades has shown that was unlikely to ever happen anyway.
Regex came up so infrequent that I found myself referring to documentation whenever I needed to use it. But I always wondered, what are the jobs or roles that use it so often that they have mastered it.
In the era of vibecoding, there are people creating software that haven't ever heard of a regexp. I learned regexps when Perl was popular. It's a useful skill that has served in me well in my career, but if the industry's moved on from a place where regexps and Unix knowledge are useful because this new tool has replaced me, well shit. I'm excited for the future, but also that's not a great feeling to have.
[delayed]
> I can’t help but wonder whether constant use of “agent” harnesses will lead to an atrophy of the software engineering (or really any field) muscles.
For sure. You cannot have "only higher level thoughts" without doing lower level work.
Ironically llm themselves prove that because you cannot remove facts like 'paris is capital of france' from llm and have it just retain 'high level thoughts' like 'countries have capitals that you can look up'
> For sure. You cannot have "only higher level thoughts" without doing lower level work
What do you mean? I think people routinely think about things at a very high level with almost no understanding of the lower levels. How many people use a computer each day and reason about them at a very high level while knowing nothing of capacitors, logic gates, or programming languages?
How many people struggle with their computer, or get scammed, because to them it's just icons on a screen, with not even the concept of a process, memory vs. disk, or anything? How much money is lost each year because someone doesn't know what an URL is?
I think they didn't phrase it precisely, but my guess is the underlying idea is actually "high-level software architecture doesn't have a clear abstraction layer you can use to separate it from low-level coding (unlike logic gates, the CPU's ISA, the kernel API, etc), and so delegating the latter leads to delegating the former".
That makes sense but I'm still not so sure—we have things like software architecture patterns that can be discussed at a high level without knowing the intricacies. Like you can be aware of load balancing and even use it but be unaware of how load balancing might work algorithmically.
Let's consider even the original example. > You cannot remove facts like 'paris is capital of france' from llm and have it just retain 'high level thoughts' like 'countries have capitals that you can look up'
Wouldn't the knowledge that countries have capitals precede the knowledge that Paris is the capital of France?
This says nothing about the accuracy of our own models based on these abstractions that lack the lower-level understanding.
> we have things like software architecture patterns that can be discussed at a high level without knowing the intricacies
I think the counterargument would be "you can't teach people architecture alone and get good architects".
I've observed this myself in "systems engineers" whose job is to connect boxes together without understanding how the boxes work. They, invariably, design ridiculous architectures on their own and need to basically find a domain expert to route their opinions through to come up with anything sane.
For sure. You cannot have "only higher level thoughts" without doing lower level work.
Spend 3 days a week writing Ruby on Rails and 2 days hand rolling x86 assembly. Every web dev I know has been doing this since long before LLMs. Ensures they can keep having high level Rails thoughts.
> "Last but not least, even when just researching with LLMs, they have the natural tendency to silently sneak in the thoughts of the majority of the training materials, or sometimes even the political convictions of the ones who created the model."
> "Yet I still write all of my texts with LLMs"
So I'm guessing the author is actually ok with the point they put in the "LLMs are bad" part of the article?
That's the problem with human written text, sometimes it hallucinates.
One thing about open source is a lot of people are throwing low quality PRs that should have been an issue or even a discussion, so you can understand what was the problem the person encountered that motivated such PR. This is hard to get because usually people use LLMs to also answer questions you make about the PR. I am tending towards blocking PRs from people outside the main developers in most of my open source projects. If the person CAN discuss the problem, authoring the PR is easier if I do it myself, even if using an LLM, because reviewing a PR authored by random internet people/bots is hard because of how much the entire code tends to change after minimal questions are asked. What I am sad of this approach is that I did met a few interesting people through receiving PRs and establishing trust and some relationships in the past (eight years ago and before)
> And this is where the value is for me: I can simply make things higher quality than I could do them alone.
Yeah, that's the thing for me. LLMs have made my work easier and faster, and they've made my side projects easier and faster. I think there are very sensible and valid critiques but so far the tool works for me.
Do I understand that spend report right ? 10k USD in a month for AI tokens ? After talking about the environmental cost of AI ?
Yeah this is where I stopped. I use AI every day for work but 10k spend to me is a signal that OP is doing something extremely stupid with their AI use.
Because it's a machine, not an oracle. If you "hold it right" you are more productive. When you catch them being "dumb" you're reinforcing your own deep knowledge on the topic. When it is correct, you're either learning something new or your task is complete. You are still at risk when you know little and trust it to work alone.
It depends upon why you have issues with LLMs. If you’re just concerned about quality then sure the dissonance isn’t intolerable. If you’re concerned about their ethics then this becomes a much more challenging position to have.
The implication is that LLM critics don't use LLMs at all, or that the author is not an LLM critic, but both of those things are incorrect. We are very good at inventing entire people out of single opinions we read, and the AI arguments are maybe the best example of that I've ever seen in my many years watching internet arguments (not least due to the expansiveness of AI, and the sheer breadth of pros and cons it holds within).
> We are very good at inventing entire people out of single opinions we read
Can you clarify what this is supposed to mean?
My use of AI is correct. My coworkers use is not.
I'm saying it in jest, but it's also a bit true. Not necessarily because we use it any differently. But because my use of AI saves me time. But their use of AI adds more to my plate, no matter if it's slop or not.
The critics are absolutely right, LLMs have a lot of faults. But they also have a few great benefits. I use them every day for the benefits, fully aware of the faults, and I watch those faults like a hawk.
>as a senior, you don’t need juniors anymore. The mundane tasks, at least I find that a lot of people agree with that one, can be fully outsourced to an LLM
Master craftsmen didn't take on apprentices to give them chores.
Master craftsmen paid apprentices almost next to nothing, and they were often contractually guaranteed to stick around for many years, so the teaching was a kind of wage and also a cost that could be recuperated later on. (The apprentice even often had to pay the craftsman to take them on.) None of those things are true for junior software engineers, who are paid to contribute and can leave at any moment. Also, yes apprentices often had to do chores. It is just not analogous at all.
>Master craftsmen didn't take on apprentices to give them chores.
Is today opposite day?
I think both the LLM critics and the LLM advocates are right.
Even this article has some cognitive dissonance in it. What it really comes down to is how much you trust your own verification process. The branches of questions an LLM generates are still trapped within the biases of its training data. Of course, the authority to craft that initial prompt, the very first question, comes from human experience and learning.
But I think thought itself is the easiest resource to outsource. People say the human did the thinking and the LLM just amplified it, but the truth is, the LLM outsources the thinking. Otherwise, when the result is good, people say "human thought was present," and when it's bad, they say "human thought was absent." But a part of the actual thinking really is outsourced. The alternatives, the counterexamples, the sentence structure. In programming terms, the reader's experience gets outsourced. When you write a blog post, you find yourself thinking about how to make something you understand easy for someone else to understand. With an LLM, that part gets outsourced.
But at the same time, I don't get the argument that you shouldn't use it at all. We don't "think" about everything. We have limited cognitive resources. So we study deeply the things we care about, but for the things we don't need, we mostly leave them to "common sense" or prejudice. We just skim the surface.
I think of "common sense" as "the largest collection of prejudice." Because what we call common sense usually just amounts to surface level knowledge, the kind of thing we know just enough about to get by.
That's why I think LLMs are good. The reason is simple. I don't think deeply about everything in the world anyway. For everything else, I'm buried in some kind of bias. You see it on HN all the time, right? People fight over some technology, but they often don't think about its internal structure or why it works the way it does. They just treat it as an identity. They fight over a particular language, a framework, an operating system, but they rarely check how that technology actually works internally or why it was designed that way. Why use MVC, why a different architecture might be better for my case, it's easier to just go with what's popular. Put more elegantly, "job mobility" gets bundled in there too. I use Windows. In my country, if it's not Windows, you literally can't do anything. You can't even do basic online banking. From regional context like that all the way down to personal interests, people are bound to be different. So I'm just going to use LLMs. The most common excuse you hear around this is the whole "reinventing the wheel" thing.
So yeah, I'm going to use LLMs. Because I recognize that I bias myself toward only thinking about what I want to think about. And I know that bias isn't cognitively healthy. But on the flip side, I think what the world values, whether it's knowing a lot or knowing one thing deeply, is going to change.
Honestly, I don't know what's right. I think both the advocates and the critics are making valid points. I respect the people who don't use it, and the people who do just have their own workflow. There's really no reason to fight over whose workflow is superior.
Good article! This matches how I feel about the situation.
It's really not incongruent to use LLMs and be in awe of their frankly incredible capabilities while at the same time recognize the risks and frankly real damage we are already seeing to junior training and hiring, open source communities and (in my opinion) very soon the entire fabric of our society.
I respect that people don't want to use agents themselves for whatever personal reason.
I respect maintainers not accepting AI-authored contributions. It's a tradeoff between progress, growing new contributors and maintainer sanity. Though I do feel that categoric opposition to anything AI will likely be futile in the mid-term.
I respect people pushing for regulation of AI or a global pause or whatever.
I don't particularly respect people dismissing everything AI authored as slop. Categorically refusing to read an article because it contains em-dashes or the term "load-bearing" is silly. While this is slowly changing now, many people are still in complete denial as to what the frontier AI is capable of.
Love it, hate it - I don't care, but at least respect it, goddamit.
Criticizing use of agents for skill atrophy is valid, it definitely atrophies blank slate coding ability, though I don't think it atrophies engineering abilities unless you just YOLO all decisions to the agent. The data center/oligarchy complaints are also valid.
Saying agents produce shitty code is a bad argument though. They produce shitty codebase organization, but at a micro level their code is solid if not elegant. If you let them turn your codebase into a spaghetti mess, that's on you.
This sounds like typical german small mindedness and self-importance.
The tech world does not care about woke ideology, german technical illiteracy and self importance.
LLMs are useful and here to stay.
At what point would one say that the LLM critics were wrong in their load-bearing (yes I used it) claims?
The desire to categorize people as right or wrong should be resisted. It's tangential, and distracts by feeding the tribalism part of the brain instead of considering individual things that are explicitly stated.
> The desire to categorize people as right or wrong should be resisted
kinda shih people say after their Load Bearing Claims (thank you Opus 4.6) turned out wrong
When AI frontier labs fire all their engineers.
why
... Because AI is more capable?
If you have no critiques about a piece of technology in an area of technology that has existed for less than 10 years I think that speaks for itself.
so you are saying that the advent of internet also deserved criticism in much the same way as LLM's?
- job displacement
- ethics
- environmental
- skill atrophy
The advent of the internet was collaborative and based on introducing shared protocols for a couple of decades. It deserved criticism when globalised capitalism got involved, and monopolies started forming, leading to rent-seeking, excessive centralisation, and enshittification.
The impact is that the internet has a fraction of the value to improve people's lives as it should have. It is a very poor free market, incredibly poor competition because of lack of standards and protocols and interoperability. People's minds are ground down by social media, search engines don't work well any more and so on.
So yes - every new technology deserves many criticisms, so they can be addressed, and as a society we can gain the benefits of that technology and minimise the disadvantages.
The printing press lead to copyright, public libraries, universal literacy... All things which are now widely celebrated. They took centuries to work out, and are all government and regulatory intervention to fix problems critics noticed and campaigned about.
AI is the same, only it is at risk of moving much faster and having a much large negative impact before society reacts.
So no, most of the criticism of LLMs are not wrong - they are correct, as are the people saying the technology of LLMs is useful to people and the economy.
Critics are friends of a new technology - without responding to every criticism in a significant way, AI will rapidly lead to a Butlerian jihad. If you like AI, you should love criticism of AI even more.
Are you assuming that I believe the advent of the Internet and LLMs are the same thing?
> I think the core issue here is trust. You should never trust random people on the internet anyway. But before LLMs, there was this base thing: creating a proper PR with proper descriptions would require at least some human time, so it would keep trolls and low quality submissions out. Or at least you could easily filter them out within a couple of seconds. So even if a new person came in, you could trust that this person would have at least spent a couple of hours on that. And then it was probably worth taking a closer look at it.
Ding ding ding. This is my biggest gripe with AI. Even the SEO blogspam, the fluff in front of every recipe, yarnwork or DIY instruction, it all was clearly written by a human. Someone had invested time (and money) in getting something in front of my eyes.
But now, it's all just slop. Everywhere. And hell I'm tired because the onslaught breaks my trust filters.
Maybe I think this is an age thing. Boomers? They trust everything written down somewhere. No matter what, and no matter if they didn't spend half my childhood to "never trust what people write on the Internet", and now they fall for scams left and right. My generation as said grew up with this "never trust, always verify" thing. And the younger generation? They DGAF about anything any more, all they care about is trying to survive.
> And b), the teaching, aka “How do we teach new people?”: previously, there was this balance aka “the junior does some pretty mundane tasks, but for this the senior reviews it together with him and helps him to grow”.
GOD YES YES YES THIS x1000.
There is barely anything more rewarding than teaching someone something, to watch the other person grow - and eventually surpassing your own abilities. That is when you know you did right and well. My wife is the best example, she started out at "can you help me with Excel", and these days, she pulls off stuff that would make more than a few finance people blush.
> There is barely anything more rewarding than teaching someone something, to watch the other person grow
I think many junior devs (or aspiring junior devs) look for exactly this experience. This is a matching problem we haven't solved yet. Is Open Source the solution ? I really think it has to be solved if we want truely reliable software in the future.
You're all in denial when you criticize LLMs. It's not necessarily that the criticism isn't true. It's more how self assured the criticism is. That's the biggest problem because AI is a moving target. It is getting better, and it is getting better fast. A lot of the criticism can become outdated in a year or six months. The change is happening in front of your very eyes and yet you can always reliably come on HN and find some sort of self assured criticism to say AI can't design, AI code must always be reviewed. Blah blah blah.
The big thing people used to call AI was that it was a stochastic parrot and all it did was summarize things. Clearly. None of this is/was true anymore. And very likely all the current criticism will be eliminated soon and we have to find new excuses about AI that makes us feel we are superior.
The status quo is about to change. Every 6 months. And you will always think of yourself as superior to LLMs. Your current criticisms will evolve as most of them will be rendered not true pretty soon.
The trust problem feels more important than whether the code was AI-assisted. A small, reproducible change with clear tests is reviewable; a huge opaque diff is not, regardless of who typed it.