Hacker News
points by skydhash 4 days ago | 0 comments
>> Writing code is solved

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
Thank you, this is what I've been seeing. Structs and objects are easy, but the hard part is encoding the domain most accurately into given data types of the computer (or creating new data structures to solve the problem!)

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
> I do expect the casual non-tech users to be making the most adaptable software because they have what they want in their head.

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
if they're persistent and patient enough to see the result of what they think they want and iterate enough times they'll eventually learn. non-coders aren't dumb by default after all and I suspect they'll learn much faster than us because they won't be bogged down by the minutiae like reading docs.

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
> if they're persistent and patient enough to see the result of what they think they want and iterate enough times they'll eventually learn

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
> non-coders aren't dumb by default after all and I suspect they'll learn much faster than us because they won't be bogged down by the minutiae like reading docs.

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
I think there are a lot of people out there with good problem-solving skills but for whatever reason did not get into programming or they tried and they got put off with learning the languages / libraries or got stuck and didn't find a solution easily enough and gave up etc.

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
> 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.

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
> Using AI without the requisite knowledge is playing Russian roulette

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
I can absolutely believe this, actually. Considering how the access to rapid prototyping has rejuvenated my interest in programming when I am a seasoned programmer, I definitely see the value in that kind of jump-start.

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
just because you have an idea doesn't mean it will work. kids come up with ideas all the time in their drawings, but they disobey the laws of physics and are therefore not feasible in reality. sure, the model can guide them, but eventually they would have to pick up the necessary knowledge.
[–] duggan 4 days ago
This is where both learning and discovery can happen.
[–] jack_pp 4 days ago
The necessary knowledge needed with LLMs goes from needing to know programming languages and libraries to having a high level view of what is possible which is far easier and less boring to get
[–] suddenlybananas 4 days ago
I think it is very difficult to have the latter without the former.
[–] skydhash 4 days ago
> 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.

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
> The struggle was never to learn programming syntax

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
Learning syntax takes a weekend. Learning to approach problems analytically and algorithmically takes much longer, and is the only "hard part" of computer programming.
[–] nextaccountic 4 days ago
It takes a weekend for a software developer. For a totally novice it takes a lot more time

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
I remember learning python in high school by following the tutorial in the official docs, then from a book. Up until function and OOP, it was fairly easy, but I gave up afterwards because the exercises touch on things I haven’t learned yet like trigonometric identity. I could see and understand the syntax, but I couldn’t understand the code.

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
There are two main kinds of programmers:

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
It certainly wasn't "approaching problems analytically and algorithmically" that prevented me to contribute to many open source projects in the past. On the other hand, I've made 3 apps in 3-days' spare time, which I could not find in years and were not worth investing months of effort at the time.
[–] landgenoot 4 days ago
You are confusing syntax with knowledge of the libraries.

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
But even this was always overblown. Once one has broad enough experience it wasn’t hard to quickly spot patterns and fill in blanks with google
[–] rienbdj 4 days ago
> The struggle was never to learn programming syntax (most grammar are only a few page long)

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
I don't think the education barrier fully accounts for SWE salaries. It takes a particular disposition and other hard things, learned over years of doing, to actually keep do software engineering as a career.

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.