> My most successful work this year was hand-writing a tool, replacing ~4,000 lines of vibe-code with a few hundred. My system has proven more flexible, easier to test, and more generalizable than what it replaced.
> agents still need human taste and experience to produce good work.
Where do you think human taste and experience in software comes from?
> overstimulating & exhausting in a way that coding never was.
> for many of us, honing the code, finding the right design, seeing the parts mesh together — that was the meditative purpose we found in our jobs.
> That’s not the only time AI waylaid me. LLMs could not figure out how to annotate that model’s training data correctly. I spent days going back and forth with them
> LLMs are not yet good companions when brainstorming complicated things.
Why do we expect this to get better? The training data will degrade in quality if more people rely on LLMs so I'd expect models to eventually start getting worse even if they currently enjoy apparent improvements in output.
> Writing code is solved.
What a strange thing to say given all the above experiences, which I think we all share.
Why are we willing to give up so much in terms of purpose and understanding for perceived productivity gains?
[–] skydhash 4 days ago
[–] needfish 4 days ago
If anything, I do expect the casual non-tech users to be making the most adaptable software because they have what they want in their head. Although, part of what the dev does is figuring out the weeds, and only a part of users have the patience to sit through detail corrections. And the AI user has to verbalize their wants exactly too.
[–] nik282000 4 days ago
Those are the people who are most likely to give a monolithic prompt and then spend a week telling the machine 'I don't care about encryption or file permissions, just make it work.' Not to mention that most people can barely verbalize the problems they have with devices they use for 8hrs a day, let alone form a full, self consistant, project idea and then put it in writing.
[–] jack_pp 4 days ago
Imagine you could build a piece of furniture without actually needing to know how to cut wood, drive nails etc. Imagine you could do it in 3d without knowing how to actually handle wood, you just have an image you can iterate on without actually costing you anything but time.
I remember the first big app I wrote in high-school. I had to learn C++, learn Qt etc. I knew what I wanted but putting that into code when I didn't know any of the libraries / tools was a huge time investment. If I had LLMs I could've done the same thing it took me 6+ months in probably less than a month.
[–] gofreddygo 1 day ago
beats the point. a non-coder has no reason to learn. they know the domain (atleast some) and they will not learn anything outside of it.
without learning how the program works, youre stuck. the real world is too complex and cant model 1:1 in any programming abstraction. the domain behavior must be forced and coerced to map and reduce with artificial constraints to operate as required in code but rule out absurdity (a bank account with a burger in it).
sure everything need not be production grade and multi user and infinitely secure but nothing meaningful comes out of leaving the modeling rigor out of that exercise.
[–] zahlman 4 days ago
They may have a perfectly good shot at being smart, but I still don't buy the argument. The reason they struggle to become coders (assuming they tried at all), in my experience, is a lack of problem-solving and debugging skills. There is no real shortcut here. An "image" of the chair isn't enough; when the first iteration is wrong, you have to be able to explain why it's wrong.
[–] jack_pp 4 days ago
With a sufficiently good LLM these people will skip the tedious part of programming that most of us had the motivation / patience to go through. All the folks saying that actually writing code wasn't the bottleneck have had a LOT of years to get to that point, years a lot of people aren't interested in going through.
I'm not saying lay people will be able to join mega projects and work at FAANG. I'm saying a sufficiently courageous lay person will be able to make an app to automate whatever tedious birocratic process their niche work hasn't seen a product yet.
[–] skydhash 4 days ago
The years was not spent on learning how to code. The years was spent on learning about what needed to be coded. And that would have spanned multiple domains. Even the most basic production level software have multiple concepts that need to be integrated. And for that, they need to be learned.
Using AI without the requisite knowledge is playing Russian roulette. It’s kinda wanting to log into a file, and not thinking about disk storage being finite, and rotating the log file gives you flexibility. That’s not related to coding, it’s just hard thinking about the problem and the constraints (or finding a good book or article).
[–] zahlman 3 days ago
And yeah, without LLMs, writing code absolutely can be the bottleneck sometimes, if only for psychological reasons. I've definitely experienced something like "coder's block" before. An anti-flow state, if you will.
(But skydhash is also right. The "unknown unknowns" are a big deal and there's only so much an LLM can do about that, at least unless the user is actively aware of the general shape of that problem and trying to learn via the LLM and fill in those knowledge gaps.)
[–] byzantinegene 4 days ago
[–] duggan 4 days ago
[–] jack_pp 4 days ago
[–] suddenlybananas 4 days ago
[–] skydhash 4 days ago
Even with basic pseudocode and very lenient logical rules, most people won’t bother to provide a a good definition of some process, as it’s quite unnatural to be that logical. Instead, it’s mostly just playing around. When you ask the one that is supposedly 10x-ing his productivity to explain his mental model of their own projects, it’s often a wishlist instead of a real understanding of what he has built.
[–] chasd00 4 days ago
For 85-90% of devs, yes this was the struggle. Creating and updating rows in a database from user input is all the “domain modeling” there is in most software. That’s what is solved by AI and it’s the majority of software dev.
[–] OkayPhysicist 4 days ago
[–] nextaccountic 4 days ago
The issue here is that you are learning the syntax at the same time you are learning foreign concepts, and the syntax is often confusing and counter intuitive
Learning the syntax separately is of no use because without a mental model you can't do anything with it
[–] skydhash 4 days ago
This is why children can easily learn enough programming to create games, because it’s a domain they can comprehend easily. Just like they can use english to write about their daily lives. It will be simple sure, but it will work.
So learning to code is fairly easy, you can easily create simple programs after a weekend. More complex programs will still use most of the same basic concepts as far as coding goes, but you will need to master more complex concepts, and that takes time. And such concepts are not about coding, they are about the nature of computing or the domain the software is created for.
This is why experienced devs only need a few days doing kata to get up to speed with a new programming language. It’s usually the same old, with slight differences. What was always needed was an understanding of computing and the ability to break down problems and create a solution that can be computed.
Coding to me is the same as drafting an engineering schematics, or writing a sheet music. It’s just a tool, not the end result.
[–] prmph 4 days ago
Those who think the challenge is to overreach the limitations imposed by programming languages and types, etc, to do seemingly "magical" things. These are ones who would never understand why you might want higher-kinded types, the relative pros and cons of the functional vs imperative approaches, or even of type systems in general. They also tend to think the code written, in itself, is the valuable output of their work.
And then there are those who think the challenges is to model problem domain so well, using the language features, types and data structures, etc, that the solution (and further adjustments to it) becomes obvious and straightforward. They also tend to think the analysis and model that results is what is valuable.
Another way to see this difference: what impresses them? it is a hack that uses arcane knowledge to bypass software and hardware "limitation" or structures? Or is it code that is simple but still effective at solving complex problems in elegant ways, that may look simple but reflects a huge amount of knowledge, skill, and architectural intuition built up over many years?
I of course think that the second group are more effective and are doing proper programming, but many programmers and the general public think otherwise, or can't event tell the difference. I once worked with some colleagues could never see the light, despite a lot of support from me.
So here is the kicker, the dissonance in response to AI, I think, is kind of analogous to these two groups. The first groups likes that the AI will not stop them, but rather get them much quicker to their "magic", whereas the second group is more skeptical and sees many issues with AI not seeing the big picture and understanding deeper intent.
[–] cicko 4 days ago
[–] landgenoot 4 days ago
The struggle is not where to put a semicolon. The struggle is, how do I handle validation problem X with framework Y.
[–] jghn 4 days ago
[–] rienbdj 4 days ago
I see this as HN bubble. For many on here it wasn’t a struggle, but for most people I think it is. Hence the SWE salaries.
[–] seurimas 4 days ago
AI changes the dispositions and difficulties, but it still favors a narrow selection of people to do the (still) difficult task of software engineering with agents.
[–] ramigb 4 days ago
As someone who wrote code for 27 years in all sorts of languages, not necessarily impressive code, but got paid for it, made a career, and changed life for the better multiple times, I don't think coding was ever an important part of the journey! Maybe it's cognitive dissonance, as you wrote above, but I believe taste comes from exploration, from trial and error, from being willing to be open and change old ways if new ways can improve how things are done!
Similar to taste in food or even music! You might think certain foods taste bad, but until you taste them, you won't be certain! Sometimes your senses will be right and the food will taste horrible; other times, you'll be fairly surprised. Similar to music—it's my life hobby—you might think certain genres or artists are bad, but until you sit down, give them a shot, and hear what they have to say, you won't know for certain if your judgment is correct.
If you meant by your comment that you need to code a lot to acquire taste and experience in software, I respectfully disagree. You are not completely wrong, though, but putting emphasis on code, if that's what you were going for, is an overstatement of code's importance. For that particular case, similar to the analogies mentioned above, it's about exploration and trying different languages, paradigms, solutions, and stacks, and unfortunately, we as humans have finite time, so we can't be trying and exploring fast enough to form judgments!
What I genuinely love about LLMs is mostly their exploratory powers. I try new stuff that I always wanted to try with actual products and form opinions about the whole experience.
Anyways, as I finished writing this, I realized, as always, I might be wrong! You might be right, taste is highly subjective! And acquiring it is a very personal thing! So I don't think right or wrong are important here!
[–] scubbo 3 days ago
[–] ramigb 3 days ago
[–] yewenjie 4 days ago
RL is not dependent on training data. The mathocalypse didn't happen because they found better training data somewhere.
[–] DamnInteresting 4 days ago
There are reasons to suspect that OpenAI may have intentionally or unintentionally trained on chat logs from mathematicians--mathematicians who were actively using OpenAI to try to to solve the same problems themselves.[1] If those mathematicians were on the right track, and getting close to a solution, that could be classified as finding "better training data somewhere."
[1] https://cybernews.com/ai-news/openai-accused-stealing-anothe...
[–] Shaanveer 4 days ago
[–] grey-area 4 days ago
I agree it’s unlikely this happened by accident, or entered training data (though not impossible), but it could certainly be within the context agents were using when tackling problems.
We have no evidence either way, but they had all the data they would need to do this.
[–] RugnirViking 4 days ago
[–] greysphere 4 days ago
[–] rsfern 4 days ago
[–] user43928 4 days ago
"Perceived productivity gain" is a baseless conclusion. At this point it's abundantly clear that the productivity gain is real and massive.
Where I see the incoherence is in that people see too much value in code review and optimizations.
I believe many of the optimizations are premature. If you did not spot the problem in your QA testing, chances are it was not that important in the first place.
If the architecture wasn't perfect, it is now extremely cheap to change it later, as you realize real deficiencies. The agent will do it for you in a matter of hours, and largely on its own.
You will have to budget a lot of QA effort for verifying the significant changes before going to production, but I don't think it's a deal breaker.
[–] Timwi 4 days ago
Oh? Where is it? Why am I not seeing it as a user if it's abundantly clear? In none of the software I've used frequently in the last year have I seen any of those “real and massive” improvements. Not saying they don't improve at all, but the rate hasn't increased since the advent of LLMs.
I'm still waiting for that shiny new era of software productivity to impact any actual users.
[–] rolisz 4 days ago
[–] dimitrios1 4 days ago
Don’t take this as directed at you because I don’t know your background, but I’m starting to wonder if many who called themselves engineers here that have similar takes to this ever knew how to actually program to begin with.
[–] rolisz 4 days ago
Oh, and specifically the food logging part: no, you didn't do that in a couple of hours years ago. Taking pictures of food and having estimates grounded in your personal "recipe" library was a major research project until vLLMs came out.
[–] spence-s 4 days ago
[–] rozularen 4 days ago
you also were doing another 2 or 3 tasks in parallel while implementing them - just like with AI
sure, dimitrios :)
[–] dimitrios1 4 days ago
Anyways my point wasn’t to try and make myself out to be some John Henry (I could have done without the snarky "congrats", apologies). It’s that drowned out in the noise of AI based development, we forget that there are amazing software engineers out there (I’m not placing myself in this category) that were incredibly productive in a short amount of time. Quite some time ago, I watched, in awe, a live stream of two prominent Go developers completely rewrite the HTTP package, for example. And this was over the course of a night.
We need a new metric to gauge AI usefulness other than “I built this thing quickly”
[–] gamblor956 3 days ago
The pool of programmers today is many times larger and less trained and so correspondingly most of today's programmers simply aren't very good and are astounded by feats that were once basic learning tasks.
[–] kragen 4 days ago
[–] podocarp 2 days ago
[–] hobo123 4 days ago
Both of those things have changed a lot, and I think a year from now you will definitely see changes (maybe not massive, but still).
[–] user43928 4 days ago
In the beginning I was using GPT-5.4 in April.
I can't speak to what other devs are building, and there's certainly no lack of people pushing out slop made in a weekend.
Companies and teams with code review are not adapting at the same speed.
I figure it will take a few additional months for the benefits to become more noticeable to end users.
As someone working on the frontier, so to say, I believe I have a better picture.
[–] kragen 4 days ago
QA testing can't find missed optimization opportunities unless the performance is absolutely abysmal. Even then, it can't distinguish abysmal performance due to missing easy optimization opportunities from abysmal performance that's going to require you to sacrifice functionality.
If an app performs well because it caches the result of a slow function, it's going to pass QA just fine. If optimizing that slow function would make it fast, you can drop the cache and have a simpler and more robust app — but QA can never tell you that.
[–] user43928 4 days ago
Is having a simpler and more robust implementation worth the time to review, understand, and improve it? I'd put that at easily 5-10x the effort.
If in the future performance was found inadequate, you could still have the agent revisit the slow function.
That's what I mean with the optimization being premature.
[–] kragen 3 days ago
[–] user43928 3 days ago
After struggling with some more complex features even after many iterations, I started to doubt, and questioned whether I'm writing myself into a dead-end.
I did not. I still made progress and things worked out just fine. Then Fable and later GPT-5.6 Sol came out, boosting productivity and complexity of features I could implement successfully.
The effort only ever went down, and my app was released in the AppStore last week, at about ~500k LOC.
I understand why people might believe that using AI and not manually cleaning up suboptimal or overly defensive implementation would eventually result in an unmaintainable mess.
Based on my personal experience and 500+ hours put into my project, I can confidently say that this is not the case. Increased effort to maintain is negligible.
[–] kragen 2 days ago
It's probably true that keeping things simple is a little bit of a religious issue for me, but maybe my experience with humans writing software doesn't apply in the same way to AI coding. Maybe a lot of my religious beliefs are wrong!
[–] user43928 2 days ago
I find it hard to talk about any major feature without doxxing myself, since I'm particularly proud of the features that differentiate my app from competitors.
Trying to keep it generic, 3 MRs were for optimizing the app for the iPhone Duo. My app ships 7 AI models that run on-device.
Back then with GPT-5.5, I wouldn't say that the problem was decreasing velocity because of complexity adding up.
It was more like that the open problems were difficult. Matching animations to the gesture, manually handling scroll position in a browser during rotation. When you're already 10+ rounds into instrumenting and layering fixes on top of each other, it can get frustrating.
However, things worked out eventually. I suspect with today's Opus 5.5, many of these debugging rounds wouldn't have been necessary, since it can work for 2h+ on its own with the simulator, which GPT-5.5 at the time did not.
Yes, it's an interesting topic, and at work I've often felt accomplishment from simple, efficient solutions.
Even today Opus 5.5 suggested a plan that I'd call ridiculous. Instead of using a simple package manager feature, it proposed manually handling the issue and ensuring consistency via a new check in the CI. It was idiotic, really.
At the end of the day, it probably wouldn't have made a difference if I went with it, since the proposed ridiculous solution would also have worked. If my CI would ever be bogged down by 50 jobs, I could always start a conversation and probably resolve it in half a day.
And that's with today's Opus 5.5, while the capabilities are now improving every other month.
This ended up a pretty long comment, but I guess what I want to say is that in my experience AI is working well also in large projects, and that many of the fears around maintenance and technical debt have not manifested for me in practice.
[–] podocarp 2 days ago
[–] kragen 2 days ago
[–] hbrn 4 days ago
Does it work both ways? How hard should we fight premature optimizations that LLMs are introducing? Or the crazy amount useless tests?
[–] user43928 3 days ago
If the test suite takes too long, it can easily be cleaned up later rather than spending extra time judging test cases in every new MR.
Maintenance of test cases has also become trivial, even with thousands of them. When the pipeline goes red on master I click the new chat button and run /check-pipeline, where I put some concise instructions, and the failure gets investigated and resolved in short order.
[–] hbrn 3 days ago
What I think you're saying is that opinions that LLMs produce are good enough and malleable, so why even have an opinion?
Which is debatable - oftentimes their opinions are not good enough, and not malleable at all.
We're all still learning how to distinguish those. But in order to learn this, you have to read and understand the code they produce. LLMs can migrate a codebase to Rust, but they still suggest walking to a car wash. Every day they make decisions that humans would be fired for.
LLMs are definitely not yet capable enough to blindly trust them, and there's a pretty good chance they never will be.
[–] bodge5000 4 days ago
Its not a direct analogy, but this seems to me as like saying "I already know maths and english, why do we still hire and pay teachers". Its a massive issue that just seems to be hand-waved away as "we'll figure it out later".
To compound on the problem as well, even those of us who do still write code by hand are actively discouraged from sharing it, knowing no human will ever read it and we'll never be credited for our work, it'll just go in the pockets of a few big AI companies. I suppose there will be some that take some pride in knowing their code is helping AI models advance, but thats a small pool of an already small pool, assuming most people decide to just use the AI to write the code for them. A minority of a minority.
I guess this is the chickens coming home to roost of this whole attitude towards growth now, fallout later
[–] bariskayhan 4 days ago
You are assuming that AI should be trained on speicific field to reason better but it actually doesnt need to.
[–] sjdh76 4 days ago
Secondly most the posts on HN are from individuals. It doesnt represent group dynamics and how group/institutional knowledge works. For example there might be a regulation on publishing data every quarter. On the surface it looks like compliance but in reality different internal groups will hide data, delay it, fudge it etc etc. LLMs train on public data. Only after they are allowed access internally do they discover group knowledge. We are far away from seeing that happening.
[–] zahlman 4 days ago
I actually found this to be one of their strong points. Depends on the person / thinking style / communication style, I guess.
[–] Zeruxe 4 days ago
[–] zahlman 3 days ago
If I'm prompting with phrases like "Any ideas?", it's because I'm exploring a domain where I know I don't know a lot, and where I expect that there is enough prior art to get a foothold.
This always reads like “writing english is solved” just because you collected snippets of famous works and have built a spell corrector.
Code is written to process data. The struggle was never to learn programming syntax (most grammar are only a few page long). The main struggle was that it’s hard to model a domain into an information system, identifying the components and their relationships, what is ingested, and what needs to be output.
Computers have integers and floats, but you need to implement units like distance, money, various counts,… The real world have words and sentences, but that needs encoding like ascii and unicode as well as the “string” concepts to make it work. Take HN, I’d bet that if you can model it in terms of data, writing code is not an issue.