Remix.run Logo
onion2k 3 days ago

Learning what though? When I wrote software I learn the domain, the problem space, the architecture, the requirements, etc, as well as how to turn those things into code. I don't actually care about the code though - as soon as something changes I'll throw the code out or change it. It's an artefact of the process of solving a problem, which isn't the important bit. The abstract solution is what I care about.

LLMs only really help to automate the production of the least important bit. That's fine.

Calavar 3 days ago | parent | next [-]

> Learning what though? When I wrote software I learn the domain, the problem space, the architecture, the requirements, etc

You don't learn these things by writing code? This is genuinely interesting to me because it seems that different groups of people have dramatically different ways of approaching software development

For me, the act of writing code reveals places where the requirements were underspecifed or the architecture runs into a serious snag. I can understand a problem space at a high level based on problem statements and UML diagrams, but I can only truly grok it by writing code.

3 days ago | parent | next [-]
[deleted]
yannyu 3 days ago | parent | prev [-]

You're right, but also coding 10 years ago, 20 years ago, and 30 years ago looked very different to coding today in most cases. In every decade, we've abstracted out things that were critical and manual before. Are LLMs writing the code that much different than pulling libraries rather than rolling your own? Or automating memory management instead of manually holding and releasing? Or using if/else/for instead of building your own logic for jumping to a subroutine?

orev 3 days ago | parent | prev | next [-]

Writing the code is like writing an essay—maybe you have some ideas in your head, but the act of writing them down forces you to interrogate and organize them into something cohesive. Without that process, those ideas remain an amorphous cloud, that as far as you’re concerned, are perfect. The process of forcing those thoughts into a linear stream is what exposes the missing pieces and errors in the logic.

onion2k 3 days ago | parent | next [-]

Without that process, those ideas remain an amorphous cloud, that as far as you’re concerned, are perfect.

This is absolutely not the case. My first startup was an attempt to build requirements management software for small teams. I am acutely aware that there is a step between "an idea" and "some code" where you have to turn the idea into something cohesive and structured that you can then turn into language a computer can understand. The bit in the middle where you write down what the software needs to do in human language is the important part of the process - you will throw the code away by deleting it, refactoring it, improving it, etc. What the code needs to do doesn't change anywhere near as fast.

Any sufficiently experienced developer who's been through the fun of working on an application that's been in production for more than a decade where the only way to know what it does is by reading the code will attest to the fact that the code is not the important part of software development. What the code is supposed to do is more important, and the code can't tell you that.

pvelagal 3 days ago | parent | prev | next [-]

I totally agree. Trusting the LLM means, you are not thinking anymore and are happy with the high level ideas you had before you started coding, which may be incomplete. Missing pieces will be missed until you see issues in Production and I have seen this happen.

onion2k 3 days ago | parent | next [-]

Only if your idea of using AI is to write a single prompt to generate everything you need. That's a terrible way of using AI though, because it doesn't work.

If you approach AI as an iterative process where you're architecting an application just as you would without AI, but using the tool to speed up parts of the process like writing one method or writing just the tests for the part you're building right now, then AI becomes a genuinely useful tool.

For example, I've been using AI today to build some metrics tooling, and most of what I did with it was using it to assist in writing code to access an ancient version of a build tool that I can't find the documentation for because it's about 30 versions out of date. The API is wildly different to the modern one. Claude knows it though, so I just prompt it for methods to access data from the API that I need and only that. The rest of the app is my terrible Python code. Without AI this would take me 4 or 5 times longer if I could even do it at all.

raw_anon_1111 3 days ago | parent | prev [-]

As if missing pieces don’t happen when people write code. No one is suggesting that you don’t thoroughly test the code.

dangets 3 days ago | parent | prev [-]

Or similarly the difference between reading/listening to a foreign language vs. writing/speaking one. Knowing how to read code or learn algorithms or design is different than actually writing it. The difference between the theory and practice.

pvelagal 3 days ago | parent | prev | next [-]

LLMs are doing more than that. They are doing so much that I have seen bad ideas creeping into the code base. I used to trust some engineers code, but with introduction of LLMs, I am working more on code reviews and unable to trust significant portions of code checked in.

dionian 3 days ago | parent | prev | next [-]

I use llm to generate a lot of code but a large part of what i use it for is orchestration, testing, validation. that's not always 'learning', and by the way, i learn by watching the llm decide and execute, as it draws from knowledge pools faster than me.

LtWorf 3 days ago | parent [-]

You're not learning

raw_anon_1111 3 days ago | parent [-]

Is he getting paid? At the the of the day that’s the only reason I write code or do anything else once I get out of bed, walk over to the next room and log onto my computer.

Before the pearl clutching starts about Mr lack of coding ability. I started coding in 1986 in assembly on an Apple //e and spent the first dozen years of my career doing C and C++ bit twiddling

LtWorf 2 days ago | parent [-]

His claim is that he is learning, not if he's making money or not.

CharlieDigital 3 days ago | parent | prev [-]

Good taste in how to build software.