Earlier quoted context omitted.
I've found I can get quite a bit of use out of it as a basically ever-present rubber duck. Using a cheap model, I usually spend - here's the problem I'm trying to solve: - here's my initial plan for the design: - is there anything I'm not thinking about or my plan is missing? It'll occasionally pop out a suggestion that I like more than my original plan, or it'll give me some new angles to think through the original…
I worry about the finger-on-the-scale mean-reversion aspect of this .. the LLM corralling you ever so gently back towards the median. otoh, LLMs really could become the great illustrated primer for educating kids in science / history / languages etc.
Prevent cognitive debt by manually retyping LLM-generated code
381–390 of 479 posts
Re: Prevent cognitive debt by manually retyping LLM-generated code
#382So we are reduced to code monkeys mindlessly re-typing what an LLM wrote to increase potential understanding... Whatever this approaches, it is not a state of software engineering I find desirable.
Re: Prevent cognitive debt by manually retyping LLM-generated code
#383Earlier quoted context omitted.
I've found I can get quite a bit of use out of it as a basically ever-present rubber duck. Using a cheap model, I usually spend - here's the problem I'm trying to solve: - here's my initial plan for the design: - is there anything I'm not thinking about or my plan is missing? It'll occasionally pop out a suggestion that I like more than my original plan, or it'll give me some new angles to think through the original…
I’m guilty of using this approach too and noticed that an (obvious?) side-effect is that I get fewer wonderful, human, “aha” moments with my colleagues. I mentioned this at a stand-up and only then did others think about it and notice the same of themselves. This, to me, is one of the major downsides of all this: less collaboration, more individualism
Re: Prevent cognitive debt by manually retyping LLM-generated code
#384So we are reduced to code monkeys mindlessly re-typing what an LLM wrote to increase potential understanding... Whatever this approaches, it is not a state of software engineering I find desirable.
I think some sort of visual paradigm is where we will end up. Something like Star Trek, where the system architecture and modules are visually represented in 3D space, and you see how the organization changes with realtime low-latency animation representing the changes as they are made. So you are still in control but just at a higher level. I see some prototypes and weak implementations of this sort of thing but sur…
An AI visual/GUI coding system might be able to address that at a more modular level, but it would still come at the cost of transparency and reproducibility.
Re: Prevent cognitive debt by manually retyping LLM-generated code
#385As others mentioned retyping is not fun. My approach is to let it write the code, but only in small portion. Not "implement this feature". But "open this file and make these changes". Each small change is easily reviewable and often times I end up asking it about better options and iterate a bit. Still feels like I'm in charge. Still feels like I'm learning stuff.
If the project is a mountain, I want AI to assist with the climb so I can learn the mountain, its trails and details. Hitching a free helicopter ride to the summit would leave me with little understanding about the mountain other than the view from the top.
Re: Prevent cognitive debt by manually retyping LLM-generated code
#386Re: Prevent cognitive debt by manually retyping LLM-generated code
#387Also... if your workflow is "think hard, let LLM write it, read what AI wrote, think hard about what AI wrote, re-type what AI wrote, fix what AI wrote"... Where in the heck are the efficiency gains? Couldn't you just drop the LLM part of it and save the company a trillion dollars in tokens?
I think there's some confusion in your post. You're seeing people claiming that the rate their code changes is so fast that they find it hard to keep their mental model up to date and in sync with the actual codebase. They frame this as a LLM issue, but those of us who worked in large teams will understand how it feels to be faced with a dozen changes popping up in critical areas of a code base each time we prepare to submit our own code change.
Once you understand this, you'll easily understand where all the efficiency gains are manifesting. Today's lone cowboy developers are experiencing the same type of struggles to keep up with a project that in the recent past affected projects worked on by large teams.
I mean, think about it for a second: what do you think is behind this higher rate of change?
Re: Prevent cognitive debt by manually retyping LLM-generated code
#388Re: Prevent cognitive debt by manually retyping LLM-generated code
#389Also... if your workflow is "think hard, let LLM write it, read what AI wrote, think hard about what AI wrote, re-type what AI wrote, fix what AI wrote"... Where in the heck are the efficiency gains? Couldn't you just drop the LLM part of it and save the company a trillion dollars in tokens?
LLM speedups have always been predicated on not understanding the code they produce as well as if you wrote it yourself. Reviewing even well written code to understand it in depth, has always taken longer than simply writing it yourself - let alone sloppy LLM code that you have to fix People are, in heavy LLM systems, realising that the most valuable commodity is engineers knowing WTF is going on, and that loss of un…
I don't think this personal opinion holds well when contrasted with reality. The truth of the matter is that in moderately large codebases, which is the norm in any production setting, at best you have a T-shape understanding of the system: in specific areas you might have somewhat deep understanding, but for the vast majority of the system you have at best a high level understanding of the software architecture.
This is why software engineering frames things like design patterns, principle of least surprise,single responsibility, etc as premium design and code quality traits: they allow developers to effectively extrapolate their high level understanding of the project onto components they know nothing about.
In any software development setting,you will find that the most successful and even senior engineer is that which successfully and skillfully manages this uncertainty, and is able to hit the ground running on environments they never touched. I had a colleague who once was a senior software development engineer at a FANG that mastered this art, and called it JIT onboarding.
So why are you pretending this is something new or novel?
I think this blend of criticism only serves to allow inexperienced developers to stand out by complaining that a very mundane aspect of working on projects as a member of a sizeable team is somehow a novel development caused by LLMs.
And don't get me started on the "slop" nonsense. Have you actually browsed through code written by people?
Re: Prevent cognitive debt by manually retyping LLM-generated code
#390Earlier quoted context omitted.
You are cooked if you think the end goal was the quality of the code and not the quality of the product.
You won't get a quality product built on sloppy code. Absolutely delusional if you think the two aren't related