Back to News
Advertisement
Advertisement

⚡ Community Insights

Discussion Sentiment

68% Positive

Analyzed from 3358 words in the discussion.

Trending Topics

#code#write#llms#llm#don#where#more#need#why#better

Discussion (76 Comments)Read Original on HackerNews

mrweasel39 minutes ago
Apparently it's not obvious to everyone, but if you can't write code, you can't review it. I do know people, and companies, that says: "So what, we ask Claude to write the code, Codex will then do the review". The thing that then strikes me as odd is that they still ask for the code in Python, Java, or some other high level language.... Why? Just ask Claude to dump out assembly, or a compiled binary, but no, they don't trust the LLM that much. They still want to be able to read the code. So they need developers that can read, debug and reason about the code, yet they don't want to give them the training that's required to do this?
ryandvm26 minutes ago
They don't have Claude write assembly because there is no training corpus on people making CRUD apps in assembly.

I'm as hateful of LLMs hollowing out the job market as the next guy, but the reality is the frontier LLMs are really good at writing anything that's been done and documented on the Internet a million times and unfortunately most of what software devs have been doing the last couple decades is shitting out cookie cutter CRUD apps.

I have my doubts about whether the state of the industry is going to advance as long as we're having LLMs do all the creation, but that's another diatribe.

deadbabe9 minutes ago
What's there to advance to?

Without a revolutionary new platform to build apps on that no one has ever developed for before, there is basically no reason to believe there is any software left that has some business or economic value that hasn't already been written.

dana32116 minutes ago
I have a few personal projects, i let codex do all the code - i do the thinking and testing.

One time, something didn't work as expected - its the first time it happened with this project. I read through the section of code and it was perfectly readable and well-written.

Turned out a plugin wasn't effecting the audio, so i just got it to pad some blank audio onto the beginning before processing it, then remove it at the end of the process. That fixed the issue, there was nothing wrong with the code but my ability to think laterally is what made it work.

We're getting to the stage where you can just ask them to write code and they will do what you want, and it writes good code. Its up to you to test everything beyond the internal tests it writes.

pjmlpabout 1 hour ago
I write code all the time I can, outside the KPI metrics that everyone is being pushed to, I only care about AI for smarter code completion.
avaerabout 1 hour ago
> For example, have you ever seen an agent follow the boy scout rule? Where they leave code better than they found it? And would you WANT them to try to do this?

Yes, it's in the rules; run profiles, check code coverage, do a critical review, post the report and follow up tasks. 90% of people I've worked with did not follow these boy scout rules nearly as well as today's frontier LLMs.

Is the author implying this is bad?

softwaredoug44 minutes ago
That quote is the lead in to an example I talk about after this quote illustrates what I often see.

> Agents bias to making the current change as safely as possible. I had a situation in a previous codebase where one morning, pre-caffeinated, my meat brain mentioned using browser local storage. So some random state was managed in local storage. Everything else through a backend database. When I looked at the code, the amount of wrapping and indirection to preserve this idiotic human mistake probably tripled the LoC. Agents can amplify our one-off bad decisions by being so conservative.

You can of course solve this many ways. And many of boils down to just how a particular humans brain works. Some will solve this by not reading code. Some will read / write code.

Whatever works for you is great. But many there is upside to the precision of not having code intermediated through the LLM for many.

avaer35 minutes ago
Right, but this just seems like underspecification. In my experience as both a team leader and an "agentic engineer" (ugh), I try to blame myself for the lack of clarity of my asks, rather than the person/agent for making the "wrong" choice.

I'm sure plenty of meat humans out there would make the same mistake (sorry, you said to use local storage boss!). You might give them a scolding. And maybe document that policy. Maybe in a markdown file for the next person. IME the latest models are significantly better than the median engineer at following this feedback.

I don't think it's fruitful to blame the LLM any more than it is to blame someone working under you.

In fact I would say this is an excellent example of how engineering does NOT fundamentally change in the era of AI.

softwaredoug29 minutes ago
Yes but I always have to be on the lookout for this meta pattern that leads to code bloat.

In this case things mostly sorta worked and the simplest way to see the problem was look at the code. And try to take it apart a bit to see where the problem was.

I felt I arrived at a better pattern I could trust that the agent could use much more efficiently this way than asking the agent to do it. I could then test that the pattern was being adhered to and therefore better trust the agent not to go off the rails.

I personally internalized the details a lot better by doing this writing. I wouldn’t have internalized it - or more likely played whack-a-mole - by guiding an agent.

How do I arrive at the patterns to check for without exploring the code? And capturing a real failure case?

fernandotakaiabout 1 hour ago
i write code because i love it. it's something that makes me genuinely happy, so why would i give that up?
ivanjermakov18 minutes ago
There is magic in telling computer do something and seeing it zap through it billions of times faster than by any other means.
jayknightabout 1 hour ago
Exactly this. I got into this field because designing programs and writing code is enjoyable. I'm probably behind on using AI and need to get more up to speed, but I never want to stop coding by hand.
DaiPlusPlus15 minutes ago
> I'm probably behind on using AI and need to get more up to speed

Same.

My difficulty is that for the past 8 years I've been working for (tiiiiny) SaaS business where I don't have anyone I can simply ask in-person "hey, can you show me how to 'do' all this newfangled AI agentic team coding?"; so my only direct-exposure is with the painful Copilot sidebar chat, which I now find myself allergic to.

So let's see elsewhere: while searching online for some (reputable) "agentic coding courses" my results are for the same kind of people who used to run those dodgy coding-camps from 10 years ago. I'm having difficulty finding resources for practicing SWEs like myself wanting a continuing-professional-development course experience, not a get-rich-by-buying-my-course video library from a contemptable AI booster

Even more surprisingly, my local major university (UW.edu) doesn't seem to offer any certificate courses for getting into agentic development either[1] despite offering courses on C++, Six Sigma, and actual ML/AI courses. It's maddening. I can't be the only one with this problem...

[1] https://www.pce.uw.edu/search?type=certificate&programType=c...

nmehnerabout 13 hours ago
"It’s about attention and understanding. To keep my attention, I must go beyond ‘read code’ like a passive observer of agents from afar. To really connect with the architecture of the system, it helps to truly experience the code"

I guess the funny answer that is behind this sentence is: You have to train your own mental model. We always argue about code in a very abstract and logical manner. But when coding the subconsciousness makes most of the decision ("this just feels right"). But for this to work you have to train it. And this does only work in a very limited way with code reviews or reading documentation. It requires repetition and deep focus.

When there is an issue in production with this mental model you will be able to point to the cause of an error message instantly. With generated code you'll search for a long time with your slow, conscious part of the brain.

For LLMs to be really helpful, they have to take over complete maintenance of the code. So you can treat them like an external library: Just assume it works. Otherwise this will always be problematic.

jurgenburgenabout 11 hours ago
> For LLMs to be really helpful, they have to take over complete maintenance of the code. So you can treat them like an external library: Just assume it works.

We already tried this with humans. It works so poorly that it got the derogatory name “ivory tower architect”. It usually results in theoretical designs that are unworkable in the actual system, implementation teams (or LLMs) that work around the architecture and a lot of slowing down of velocity as the architect and implementers argue past each other.

zelphirkaltabout 10 hours ago
This happens when the architect is out of touch. If the architect themselves works on the code, writes code, deals with the imposed restrictions, then the chances of that happening is much lower. Assuming, that they are a good architect.
jurgenburgenabout 10 hours ago
I agree, if the architect participates in the implementation then they avoid this anti-pattern. That’s not compatible with hands-off autonomous agents where you treat implementation as a black box.
kqrabout 13 hours ago
> With generated code you'll search for a long time

The observability people will claim that if the dynamic runtime behaviour of your system makes it hard to find the source of a behaviour, your system must be made more transparent and observable. They would also claim this was always the case -- we should never have relied on people's mental models being amazing because people move around.

(I don't know yet where I stand on this but I'm trying to learn more.)

nmehnerabout 12 hours ago
If it was only "my" system without any integrations, I might agree.

But currently e.g. I am working on an MES/Scada layer that integrates data from a load of different machines in a factory. These machines are from China, Korea, Germany, Sweden ... Upwards there is an ERP integration (and some other systems).

Sometimes machines are updated and suddenly behave differently. Giving error messages in Chinese.

The ERP has the nasty behavior of returning error messages where it is not clear whether the actual processing actually happened or not. There are some heuristics on parsing the error messages, but these also change with new versions.

Sometimes one machine overloads cloud infrastructure and completely unrelated functionality fails.

Sometimes the on-premise network stops working for whatever reason and data is lost.

Sometimes operators do not understand a perfectly valid error message like: "The batch you loaded into input position XY has expired on XZ and cannot be used for production": "But we have been told to use it..."

So when you get called out at night, because the production line stopped and "MES is displaying an error message", it is mostly about finding out what integration failed and who else to wake up. Getting this right is very much appreciated by your colleagues.

And this is where you need a mental model of how things are connected, what error message happens because of what external causes etc.

Observability can only work perfectly for known problems. In a complex system for unexpected problem you can either provide too much data, so analyzing it and finding the relevant part becomes really hard, or too little data which makes finding the issue impossible.

There are so many companies claiming to provide the perfect observability solution and there are certainly solutions that help. But it is all very far from perfect.

Not relying on people is managers wet dream. And for a lot of people it might be true that they can be easily replaced. But for complex systems there are always some key people that you cannot replace without causing issues.

b112about 10 hours ago
And here's the thing... juniors become seniors become experts, by doing this their entire career.

By having an understanding built during their entire career.

Right now we live in a fairly-land of mixed capacity. LLMs being used in parallel with skilled people. But as time progresses, there will be no more skilled people, because no one will learn and develop those skills.

If you're in the world of LLMs now, you are basically completely stalled in your personal growth in this field. You will never improve, and some seem to say they lose capabilities as they rely upon LLMs.

The world always changes. But the decisions being made today, are being made by skilled people.

What will the world look like, when it's just all "bro, lol, just tell it to make your thing" and then done?

hack1312about 12 hours ago
The observability people are correct. It’s not either-or though.
minimaxirabout 1 hour ago
Note as some may be confused by the "1 hour ago" with comments older than that: this submission was rescued by dang when a previous discussion existed: https://news.ycombinator.com/item?id=48883341

fwiw I think the rationale behind it is counterproductive because the only difference between a OP submitting their article link and someone else submitting their article link is internet points.

softwaredoug42 minutes ago
I was fairly confused myself as the author :)

This was actually my original submission last week. There was a front page submission last night from someone else (hence the comments). Then my old post got re-upped just now (1 hr ago)

goodness4allabout 12 hours ago
I always hated writing code but loved debugging. LLM super charges systems thinkers & auditors, it’s just a different process and no different than copy and paste from stack overflow. It all comes down to the architecture design and LLM just exposes how bad people are at designing dynamic architectures.
girvoabout 10 hours ago
> and no different than copy and paste from stack overflow

This isn't really the point of your comment, and for that I apologise, but: not all of us did that. For many good reasons, too.

leptons38 minutes ago
>architecture design and LLM just exposes how bad people are at designing dynamic architectures

Speak for yourself. A lot of people have great abilities at designing "dynamic architectures" and anything else an LLM is used for. It sounds like you don't realize that an LLM is only capable of what it does because it was trained on human-written code.

TacticalCoderabout 8 hours ago
> ... and no different than copy and paste from stack overflow.

It's even got a name: sloppy-pasta.

imtringuedabout 9 hours ago
I'm not sure this is a good combination?

I mean you're basically saying it is a good thing if the LLM messes up so you have a reason to debug the code.

prymitiveabout 12 hours ago
I need to write code because otherwise LLMs will write too much code, it’s only when you fully understand the problem you can generalise it enough to not end up with 10k lines and 5 abstraction layers for “hello world”. LLMs are token predictors, so all solutions are you tokens, the more problems to solve == the more tokens (code) to output.
softwaredougabout 4 hours ago
LLMs love to defensively wrap code instead of thinking holistically about the big picture. That creates a lot of bloat.

A human coder might OTOH follow the Boy Scout rule and clean up as they go.

h2aichatabout 11 hours ago
If tokens are the problem, SDD is the solution
TacticalCoderabout 8 hours ago
> I need to write code because otherwise LLMs will write too much code, ...

I second that and I can give an example that happened to me yesterday with a totally SOTA model (a US, not Chinese model).

I needed to display an information on the client-side. Something trivial. I ask the LLM to do it. The thing went onto a rampage: it somehow found a way to pass the information from the server to the client during the initial handshake (already: why, just why?). Modifying both server-side code and client-side code. And it worked.

To an unsuspecting programmer/tester (or automated test)/user: the info is there, what was asked has been done. So it's perfect, flawless LLM victory right?

Except none of that sloppy-pasta was necessary: the info was already available on the client-side and was a one-line change, purely client-side.

These thing shall definitely, as of 2026, write way too much code.

And btw the companies selling metered tokens have a very serious incentive to produce the most complicated, rube-goldberg, solutions that use as many tokens as possible, while still kinda solving the problem.

That way not only you consume tokens to produce the code, but later on you consume tokens when working on that code (which btw is a guaranteed thing: for the LLM just introduced new bugs in that gargantic amount of crap it output).

Funnily enough the very same people who made fun of copy-pasta happen to be in love with sloppy-pasta. Go figure.

majorbuggerabout 1 hour ago
Why is this even a legit question? I need to keep writing code to stay relevant, not to forget my craft, be able to review code... So many reasons. AI doesn't change a thing.
avaer42 minutes ago
Before my time ppl mostly did things in asm, I bet the vast majority of people reading this have never touched assembly and will never have any reason to. This is quickly becoming true of most "code". AI has changed that.

One way to "stay relevant" would be to admit that.

softwaredoug39 minutes ago
Yet as a C developer for 15 years you frequently look at asm and on occasion even write a little.

And that is a far stronger abstraction than LLMs :)

conqrrabout 1 hour ago
All this debate around use LLM or not is tiring and just black and white thinking.

Can I use agents to code a SWE project? yes, with nuances.

Can I write code for a SWE project? yes, with nuances.

Its more options now, I'll write code about projects I deeply care and will use llm at work where its shared slop and forced usage.

guyzana2 days ago
I found myself working mostly at the requirements and architecture level, but do not give up proper code-review, creating skills along the way that maintain conventions.
Advertisement
feverzsjabout 13 hours ago
Unless you want some unmaintainable shitty sloppy app.
slopinthebagabout 1 hour ago
Seems like there’s broadly two ways to use LLMs for coding - either as a way to generate the same code you would have written but faster, or as an opaque program-generator where you have no idea what the code is doing. One of these methods results in roughly the same amount of understanding and the other one radically less.
gb2d_hnabout 13 hours ago
I think fragility is the key reason i intervene in llm code too. Good article.
mcrkabout 13 hours ago
Do ppl think that programmers just write code from sratch each time..?!

Even without AI I barely write code. 95% of time are spend setting up integrations, configs, copying & adjusting code from previous projects.

jonplackettabout 13 hours ago
Prediction: in 2027 a coding agent will read this as inspiration for why it should code.
mikkolaakkonenabout 4 hours ago
The software factory is exactly what I'm building. The world is changing, we can either be the ones changing it or be forced to change afterwards.
sublinearabout 12 hours ago
> If we’re building a software factory, details matter. The details that establish architectural patterns. Down to algorithms and performance. Agents push us to evaluate, measure, and guard. They’ve made it cool to add CI into side projects early, not as an afterthought. That’s massive improvement to the state of software.

Why are you building a software factory though, and why weren't you immediately adding CI to every project?

> It’s our job to build the software factory - not just the software. Software engineers maintain the assembly line allowing anyone to prompt for a change and ship immediately.

Again, why? Where are you working where this is considered a good idea? This would mean that the software engineers are not just being completely kicked out of all business decisions, but asked to build a moat that ensures they stay on the other side of it.

Any business that intentionally devalues the insights gained through implementation will eventually starve itself to death by making too many passive thoughtless moves. No insight will ever be gained just spot checking AI. Is their intention really just to make tiny amounts of profit while riding the thing into the ground? Crabs in a bucket, man.

vips7Labout 15 hours ago
I still exclusively write my code. The quality is higher. I know exactly how it works. It’s more extensible. You don’t have to generate it.
sphabout 14 hours ago
In fact, not many people know that these days, but a human doing a thing by bashing their head against it, often tends to improve. My hand-written code is my best yet. My breadth of knowledge, wider than ever.
bigstrat2003about 14 hours ago
In fact, it's better not to generate it imo. Like you said the quality is higher, and by the time I get done reviewing the LLM's output I haven't really saved time over just doing it myself. LLMs are only useful for things you can verify extremely quickly (like a short script), or for things where you don't care about the quality.
glouwbugabout 14 hours ago
Turns out you internalize it when you write it and refactor it with iteration
light_hue_1about 14 hours ago
This is too generic. There's some code I need to write like core abstractions that are going to set the pace for everything. Or tricky steps that can look good without actually working well.

Then there's the mass. I don't need that anymore. The mountains of boilerplate, etc.

I write little islands which need high judgement that are then connected by the obvious goo.

dlvhdrabout 12 hours ago
lol what a slopper
Advertisement
simonaskabout 14 hours ago
"Why cook food in 2026 [while McDonald's exists]?"
olsondvabout 15 hours ago
TL;DR: Write it so you’re actively involved and not a passive reviewer. Then a sign up link for his course.
jdw64about 13 hours ago
Recently, even a tourist lost to OAI's model in competitive coding. To be honest, I haven't been able to beat AI at coding since around 5.2. People often say 'AI can't write good code,' but in reality, the quality of AI's output is layered depending on the level of the prompt input. The deeper the prompt, the better the code actually gets.

Usually, when people say AI code is terrible, it's because they either don't understand the theory well but have grown through hands-on experience and can't explain things properly to the AI, or they don't know what they don't know. Or there are the very few who are just far better coders than AI. Some people will say they're among the rare few who can write better code than AI, and for some that may be true. But in my experience, the vast majority are not. Even from my perspective as a beginner, I could see flaws when I looked at their git code. It's a metacognition problem.

Realistically speaking, at the script level, it's quite common to see AI surpass human programmers as you increase the input level. You might disagree, but that's probably because you're a specialist in that field, deeply immersed in a very narrow area—it only holds true in that limited scope. In the general domain, most people would agree that AI writes code well.

Human programmers don't know much outside their own domain. But AI, while it loses in very narrow specialist areas, writes better code than humans across the broader range. It loses in the 1% zone (the expert's domain), but wins in the other 99%. Usually, when that's the case, you have two choices: become the 1%, or learn how to use AI.

Since I'm a non-native English speaker, I'm already at a disadvantage compared to native speakers in programming skills, so I chose the latter. But I still code. Not for any other reason—if I don't maintain at least some typing muscle, I won't be able to review AI code properly.

That's why I think coding is essential. Even if I can't understand the entirety of AI's output, I still need to understand the core business logic. At the very least, the core logic requires human understanding, so coding is necessary.

crestingabout 12 hours ago
AI is a tool. Learn how to use it!

Interesting article btw

saghmabout 11 hours ago
> AI is a tool. Learn how to use it!

If you think that everyone agrees on the "correct" way to use it, you're mistaken. If you think that your way is the best possible way to use it, you're arrogant. And if you think that the way you think is correct is obvious and that everyone should already know that's the right way, you're delusional.

h2aichatabout 11 hours ago
It seems to me that AI won the code Battle and that humans are just trying to justify the defeat. I will relax and wait for the Next AI generation to see how it fixed its problems. May be, everything will be ok.
ataruabout 11 hours ago
I've got a coin that answers questions. You have to give it a heads or tails query, then flip the coin, and it returns an answer. It's incredible. Now, it doesn't get the right answer every single time, but we're all learning how to use the new coin technology, and this is only the first generation of coin. The next model of coin is going to be even better. Soon we're not going to need humans any more, for any question we have, we'll be able to use the coin.
yard2010about 10 hours ago
I have a coin that can tell you whether a program would halt or not. But it's not always right. I think it's a coin like you have? Still trying to figure out how to use it to prove that p=np.
JackSlateurabout 8 hours ago
Even a broken clock is right twice a day :)