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.
[–] needfish 4 days ago
[–] 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).
[–] jack_pp 4 days ago
Every few months that revolver has a few more empty chambers and even if it shoots them in the foot, it can bandage them quite nicely. Will a solo lay person with an agent build a high quality high reliability software business? Doubtful. Will they be able to make a tool that helps them and 10 other people or a personal website? probably.
[–] 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.
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.