5 ms·
"you haven’t done any of the hard thinking you would normally do in writing the code yourself" It's true, I spend less time solving problems that arise natural
by whoke 3mo ago
"you haven’t done any of the hard thinking you would normally do in writing the code yourself"
It's true, I spend less time solving problems that arise naturally from the process of implementation. But implementation errors have a poor signal-to-noise ratio. For every error that exposes a real design problem there are 10 others that involve routine fixes: type errors, scope issues, import resolution, dependencies. There's a common argument I see being thrown around, which is "how will junior engineers develop into senior engineers if they don't get reps in with implementation?" But to me it feels like "programmer" and "architect" are becoming more and more orthogonal as the models improve in capability. If my goal is to be an architect, getting more reps in as an architect is in my best interest, and letting the agents do the dirty work frees up space for me to spend the mental effort where it counts. And anecdotally, the scope of projects I've started taking on has scaled roughly linearly relative to how much work I'm able to delegate, while the mental engagement has stayed constant.
- michaelchisari 3mo ago| type errors, scope issues, import resolution, dependencies. I write code myself and use the LLM to find mistakes then fix them manually. I recommend inverting the conventional wisdom on LLMs: 1. Don't use it to write code. It's a terrible programmer. But it's an intelligent rubber duck and a solid analysis tool. 2. Write the code yourself. It'll go faster than figuring it out as you go along. It's just typing if you have a plan. 3. Use an LLM to sanity check what you wrote. It can find potential design issues or future problems or breaks from convention. Decide based on your experience how much you want to address these issues before moving on. Is this as fast as AI writing the code? Not at first but possibly over time. Maybe faster. Certainly better quality. Plus you don't lose any of your skills in the process. You're still doing the gruntwork necessary to keep your skillset. And the token cost is a small fraction of what it takes to get LLMs to write good code.
- dnadler 3mo ago> Don't use it to write code. It's a terrible programmer. I see this sentiment often, and I’m honestly not sure where this comes from, as it’s really not been my experience. I feel like this must come from people feeling threatened and just moving the goals posts, or not knowing how to use the tools effectively.
- deleted 3mo ago[deleted]
- michaelchisari 3mo agoIt's a common enough experience that it shouldn't be dismissed.
- marcosdumay 3mo agoI see your sentiment quite often here on HN¹, I'm honestly not sure what kind of experience you may have had with automatic program writers. LLM code absolutely sucks. 1 - I wonder why my other social circles are so different.
- deterministic 3mo agoI am really curious about this because my experience is completely different. Can you elaborate a bit more on how you use LLM's for coding? Are you doing one-shot coding? Vibe coding (not looking at code)? Small focused one-step-at-a-time with yourself verifying? Anything else?
- purple-leafy 3mo agoI agree. This sentiment is quite tiring and I put it down to one of 3 things: 1) lies and/or cope 2) lack of actual software ability, therefore over evaluating your own skill 3) haven’t actually used LLMs, and want to do a “look at me I’m so unique and different” I roll my eyes whenever someone says “AI bad” “AI sucks” “AI can’t replace me” Yeah. Load of
- bluefirebrand 3mo agoRegarding 2 Isn't it possible that people who think LLMs are awesome at coding are in fact bad at it themselves, leading to them over estimating the LLMs "skill"? To me it feels like people telling on themselves that they aren't very good
- purple-leafy 3mo ago
- nsingh2 3mo ago> Don't use it to write code One of the things I've started doing is to write the high level scaffold myself, create stubs (with comments) and have it fill out the details. I haven't done this for long, but I feel like my mental model of the code rots less, and I can review code faster. I used to do this in the past, when these models were not all that capable, now there is a huge temptation to leave everything to the model. But long term I lose track of whats going on, and have a hard time even communicating with the model about the changes I want. Just a total decay of my mental model of the system, and it's really hard to recover from that state.
- dkersten 3mo agoI like to start out by creating the overall structure of my application: the module structure, high level components, feature boundaries. That way these decisions are already made for the LLM, and it can focus on filling in logic within the structure provided. It works quite well for me, a lot better than when the LLM makes these decisions.
- airport_barfly 3mo agoDefinitely agree. And once you factor in the review time + time spent fixing LLM bugs, I'm pretty sure this inverted process is actually faster than using the LLM to write code
- ManuelKiessling 3mo agoThis is half question, half thought experiment: What exactly is it that makes us think „great, I can delegate coding to the agent, and focus on architecture myself“, instead of „great, I can delegate coding to the agent, and I can delegate architecture to the agent, and I can focus on <third thing> myself“? And how many levels up can you construct this sentence before things go south? What I‘m implying with this question is, of course: What makes us so confident that these things are not also better architects than us? After all there is a huge corpus on how to architect applications correctly, and that’s in the training data just as much as Python best practices and C++ style recommendations.
- brazukadev 3mo agoYou can delegate architecture to agents, as long as you know different architectures and decide which one is the most fit for a given scenario. AI can choose one but it will usually pick the one that is more present in the training corpus. React + NextJS is a terrible architectural decision for most projects that LLMs recommend all the time.
- whoke 3mo agoI'd say this is relative to the novelty of the problem domain. At work I'm often solving problems that have fairly standard solutions, e.g. Python scripts to automate build and execution workflows. For this stuff I'm often happy to delegate architecture, and in general, since I spend a lot of time working with legacy code, the solutions the models develop are both clearer and more maintainable than what was already there. The personal project I'm working on (small research compiler for stateless computation) has sparse precedent, and because of this I spend a lot more time hashing out architectural questions with the models. I think of it as a collaborative enterprise.
- dominotw 3mo agoironically llm prove the its not possible to just think "abstract thoughts" . we cannot remove concrete "implmenation" facts like paris is capital of france and retain just abstract "countries have capitals"
- bcrosby95 3mo agoBusiness has tried and mostly failed to do this since the beginning of programming. Architects that stop coding long enough tend to become shitty architects as their abstractions increasingly become disconnected from the concrete requirements of the actual problem space rather than the idealized version in their head.