7 ms·
I find LLMs so much more exhausting than manual coding. It’s interesting. I think you quickly bump into how much a single human can feasibly keep track of prett
by cglan 7mo ago
I find LLMs so much more exhausting than manual coding. It’s interesting. I think you quickly bump into how much a single human can feasibly keep track of pretty fast with modern LLMs.
I assume until LLMs are 100% better than humans in all cases, as long as I have to be in the loop there will be a pretty hard upper bound on what I can do and it seems like we’ve roughly hit that limit.
Funny enough, I get this feeling with a lot of modern technology. iPhones, all the modern messaging apps, etc make it much too easy to fragment your attention across a million different things. It’s draining. Much more draining than the old days
- hombre_fatal 7mo agoI think the upper limit is your ability to decide what to build among infinite possibilities. How should it work, what should it be like to use it, what makes the most sense, etc. The code part is trivial and a waste of time in some ways compared to time spent making decisions about what to build. And sometimes even a procrastination to avoid thinking about what to build, like how people who polish their game engine (easy) to avoid putting in the work to plan a fun game (hard). The more clarity you have about what you’re building, then the larger blocks of work you can delegate / outsource. So I think one overwhelming part of LLMs is that you don’t get the downtime of working on implementation since that’s now trivial; you are stuck doing the hard part of steering and planning. But that’s also a good thing.
- clickety_clack 7mo agoI’d love to see what you’ve built. Can you share?
- SchemaLoad 7mo agoI've found writing the code massively helps your understanding of the problem and what you actually need or want. Most times I go into a task with a certain idea of how it should work, and then reevaluate having started. While an LLM will just do what you ask without questing, leaving you with none of the learnings you would have gained having done it. The LLM certainly didn't learn or remember anything from it.
- jeremyjh 7mo agoIn some cases, yes. But I’ve been doing this awhile now and there is a lot of code that has to be written that I will not learn anything from. And now, I have a choice to not write it.
- orbisvicis 7mo agoEhh, I find that the most tedious code is also the most sensitive to errors, stuff that blurs the divide between code and data.
- jeremyjh 7mo agoI doubt if we're talking about the same sort of things at all. I'm talking about stuff like generic web crud. Too custom to be generated deterministically but recent models crush it and make fewer errors than I do. But that is not even all they can do. But yes, once you get into a large complicated code base its not always worth it, but even there one benefit is it to develop more test cases - and more complicated ones - than I would realistically bother with.
- claytongulick 7mo agoI actually like writing the tedious code by hand. The whole time I'm doing it, I'm trying to think of better ways. I'm thinking of libraries, utilities or even frameworks I could create to reduce the tedium. This is actually one of the things I dislike the most about LLM coding: they have no problem with tedium and will happily generate tens of thousands of lines where a much better approach could exist. I think it's an innovation killer. Would any of the ORMs or frameworks we have today exist if we'd had LLMs this whole time? I doubt it.
- stavros 7mo agoIt depends on how you use them. In my workflow, I work with the LLM to get the desired result, and I'm familiar with the system architecture without writing any of the code. I've written it up here, including the transcript of an actual real session: https://www.stavros.io/posts/how-i-write-software-with-llms/ https://www.stavros.io/posts/how-i-write-software-with-llms/
- galaxyLogic 7mo agoRight when you're coding with LLM it's not you asking the LLM questions, it's LLM asking you questions, about what to build, how should it work exactly, should it do this or that under what conditions. Because the LLM does the coding, it's you have to do more thinking. :-) And when you make the decisions it is you who is responsible for them. Whereas if you just do the coding the decisions about the code are left largely to you nobody much sees them, only how they affect the outcome. Whereas now the LLM is in that role, responsible only for what the code does not how it does it.
- eucyclos 7mo agoHehe, speak for yourself- as a 1x coder on a good day, having a nonjudgmental partner who can explain stuff to me is one of the best parts of writing with an llm :)
- galaxyLogic 7mo agoI like that aspect of it too. LLM never seems to get offended even when I tell it its wrong. Just trying to understand why some people say it can feel exhausting. Instead of focusing on narrowly defined coding tasks, the work has changed and you are responsible for a much larger area of work, and expectations are similarly higher. You're supposed to produce 10x code now.
- eucyclos 7mo agoNot sure if it's what you're talking about but I had a coworker trying to break into eSports and he talked a lot about the micro vs macro skills a game requires. Sounds like we all have an aimbot for programming so the competition has shifted hard towards the macro. That could definitely be tiring.
- lelanthran 7mo ago> Because the LLM does the coding, it's you have to do more thinking. :-) I keep seeing this sentiment, but it sure sounds wrong to me. Coding requires thinking (in humans, at any rate). When you're doing coding, you're doing both coding-thinking and the design thinking. Now you're only doing one half of it.
- grey-area 7mo agoMaintenance is the hard part, not writing new code or steering and planning.
- ipaddr 7mo agoYou can outsource that to another llm
- jplusequalt 7mo ago>how people who polish their game engine (easy) This is such a weird statement. Game engines are among the most complicated pieces of software in existence. Furthermore, a game that doesn't run smoothly increases the chances that your player base doesn't stick around to see what you've built.
- deevelton 6mo agoThis hits home for me. Lawyer, not developer here. Implementation was never a hard part for me, it was an impossible part. Now that the time/cost needed to experiment with prototypes has dropped to near zero I've been been spending a lot of time doing exactly what you describe (steering, brainstorming). I find it fun but I do it mainly as a bunch of personal side projects. Can understand how it might feel different for users when the stakes are much higher (like when it's part of the day-to-day in a real job).
- senectus1 7mo agoI imagine code reviewing is a very different sort of skill than coding. When you vibe code (assuming you're reading teh code that is written for you) you become a coder reviewer... I suspect you're learning a new skill.
- pessimizer 7mo agoThe way I've tried to deal with it is by forcing the LLM to write code that is clear, well-factored and easy to review i.e. continually forcing it to do the opposite of what it wants to do. I've had good outcomes but they're hard-won. The result is that I could say that it was code that I myself approved of. I can't imagine a time when I wouldn't read all of it, when you just let them go the results are so awful. If you're letting them go and reviewing at the end, like a post-programming review phase, I don't even know if that's a skill that can be mastered while the LLMs are still this bad. Can you really master Where's Waldo? Everything's a mess, but you're just looking for the part of the mess that has the bug? I'm not reviewing after I ask it to write some entire thing. I'm getting it to accomplish a minimal function, then layering features on top. If I don't understand where something is happening, or I see it's happening in too many places, I have to read the code in order to tell it how to refactor the code. I might have to write stubs in order to show it what I want to happen. The reading happens as the programming is happening.
- qudat 7mo agoIt’s easier to write code than read it.
- lukaslalinsky 7mo ago
- raincole 7mo agoIf you care at code quality of course it is exhausting. It's supposed to be. Now there is more code for you to assure quality in the same length of time.
- onion2k 7mo agoIf you care about code quality you should be steering your LLM towards generating high quality code rather than writing just 'more code' though. What's exhausting is believing you care about high quality code, then assuming the only way to get high quality code from an LLM is to get it to write lots of low quality code that you have to fix yourself. LLMs will do pretty much exactly what you tell them, and if you don't tell them something they'll make up something based on what they've been trained to do. If you have rules for what good code looks like, and those are a higher bar than 'just what's in the training data' then you need to build a clear context and write an unambiguous prompt that gets you what you want. That's a lot of work once to build a good agent or skill, but then the output will be much better.
- Frieren 7mo ago> write an unambiguous prompt That's an oxymoron. Prompts by definition are ambiguous otherwise you will be writing code.
- lelanthran 7mo ago> LLMs will do pretty much exactly what you tell them That bit is quiet funny :-)
- akomtu 7mo agoYou used to be a Formula 1 driver. Now you are an instructor for a Formula 1 autopilot. You have to watch it at all times with full attention for it's a fast and reckless driver.
- esafak 7mo agoYou're being generous to the humans; we're more like Ladas in comparison.
- p_v_doom 7mo agoThat may not be a bad comparison. A F1 car is really fast, really specialized car, that is also extremely fragile. A Lada may not be too fast but its incredibly versatile and robust even after decades of use. And has more luggage space
- superfrank 7mo ago> I find LLMs so much more exhausting than manual coding I do as well, so totally know what you're talking about. There's part of me that thinks it will become less exhausting with time and practice. In high school and college I worked at this Italian place that did dine in, togo, and delivery orders. I got hired as a delivery driver and loved it. A couple years in there was a spell where they had really high turnover so the owners asked me to be a waiter for a little while. The first couple months I found the small talk and the need to always be "on" absolutely exhausting, but overtime I found my routine and it became less exhausting. I definitely loved being a delivery driver far more, but eventually I did hit a point where I didn't feel completely drained after every shift of waiting tables. I can't help but think coding with LLMs will follow a similar pattern. I don't think I'll ever like it more than writing the code myself, but I have to believe at some point I'll have done it enough that it doesn't feel completely draining.
- apsurd 7mo agoThanks for the story. I also spent time as a delivery driver at an italian restaurant. It was a blast in the sense that i look back at that slice of life with pride and becoming. Never got the chance to be a waiter, but definitely they were characters and worked hard for their money. Also the cooking staff. What a hoot.
- qq66 7mo agoI think it's because traditionally, software engineering was a field where you built your own primitives, then composited those, etc... so that the entire flow of data was something that you had a mental model for, and when there was a bug, you simply sat down and fixed the bug. With the rise of open source, there started to be more black-box compositing, you grabbed some big libraries like Django or NumPy and honestly just hoped there weren't any bugs, but if there were, you could plausibly step through the debugger and figure out what was going wrong and file a bug report. Now, the LLMs are generating so many orders of magnitude more code than any human could ever have the chance to debug, you're basically just firing this stuff out like a firehose on a house fire, giving it as much control as you can muster but really just trusting the raw power of the thing to get the job done. And, bafflingly, it works pretty well, except in those cases where it doesn't, so you can't stop using the tool but you can't really ever get comfortable with it either.
- gotwaz 7mo agoTheory of Bounded Rationality applies. Tech tools scale systemic capability limits. 3 inch chimp brain limits dont change. The story writes itself.
- rhysfonixone 7mo agoWorking with LLMs for coding tasks feels more like juggling I think. You're fixating on the positions of all of the jobs you're handling simultaneously and while muscle memory (in this metaphor, the LLMs) are keeping each individual item in the air, you're actively managing, considering your next trick/move, getting things back on track when one object drifts from what you'd anticipated, etc. It simultaneously feels markedly more productive and requiring carefully divided (and mentally taxing) focus. It's an adjustment, though I do worry if there's a real tangible trade-off at play and I'm loosing my edge for instances where I need to do something carefully, meticulously and manually.
- Cthulhu_ 7mo agoI suspect it's because you need to keep more things in your head yourself; after a while of coding by hand, it becomes more labor and doesn't cost as much brain power anymore. But when offloading the majority of that coding to an LLM, you're left with the higher level tasks of software engineering, you don't get the "breaks" while writing code anymore.
- simonask 7mo agoThe tactical process of writing the code is also when you discover the errors in your design. Like, did we think waterfall suddenly works now just because typing can be automated? No.
- danielbln 7mo agoWho says you can't iterate on a design just because an LLM does the manual typing?
- simonask 7mo agoI meant to write “tactile”, not “tactical”, but missed it before the edit window expired. Anecdotally, ask people who knit whether their brain is stimulated. Physically engaging with the thing you are making is part of the process that makes it actually good.
- danielbln 7mo agoYet someone who knits can do so without spinning the yarn themselves, or shaving the sheep.
- lelanthran 7mo agoHow often, in your life, did you write code without stopping, in the middle of writing, to go back and review assumptions that turned out to be wrong? I'm not talking about "oh, this function is deprecated, have to use this other one, but more "this approach is wrong, maybe delete it all and try a different approach"? Because IME an AI never discards an approach, they just continue adding band aids and conditional to make the wrong approach work.
- afandian 7mo agoSame feeling as pair programming in my experience. If your consciousness is driving, your brain is internally aligned. You type as you think. You can get flow state, or at least find a way to think around a problem. If you're working with someone else and having to discuss everything as you go, then it's just a different activity. I've collaboratively written better code this way in the past. But it's slower and more exhausting. Like pair programming, I hope people realise that there's a place for both, and doing exclusively one or the other full time isn't in everyone's best interests.
- fluoridation 7mo agoI've had a similar experience, where I pair-programmed with a coworker for a few days in a row (he understood the language better and I understood the problem better) and we couldn't be in the call for more than an hour at a time. Still, although it was more tiring, I found it quite engaging and enjoyable. I'd much rather bounce ideas back and forth with another person than with an LLM.
- Sparkyte 7mo agoIt feels no different than inhheriting someone's code base when you start at a company. I hate this feeling. AI removes the developer's attachment and first hand understanding of the code.
- empath75 7mo agoI go through phases with it where I am extraordinarily productive and times where i can't even bear to open a terminal window.
- ModernMech 7mo agoClassic coding was the process of incrementally saying "Ah, I'm getting it!" -- as your compile your code and it works better each time, you get a little dopamine hit from "solving" the puzzle. This creates states where time can pass with great alacrity as we enter these little dopamine induced trances we call "flow", which we all experience. AI is not that, it's a casino. Every time you put words into the prompt you're left with a cortisol spike as you hope the LLM lottery gives you a good answer. You get a little dopamine spike when it does, but it's not the same as when you do it yourself because it's punctuated by anxiety, which is addictive but draining. And I personally have never gotten into a state of LLM-induced "flow", but maybe others have and can explain that experience. But to me there's too much anxiety around the LLM from the randomness of what it produces.
- 5o1ecist 7mo ago[dead]