6 ms·
These days, my work has become: generate code for 20 minutes, then spend an hour reading it.
by jdw64 2mo ago
These days, my work has become: generate code for 20 minutes, then spend an hour reading it.
- danggggg 2mo ago[dead]
- dullcrisp 2mo agoIt could be. Or it could be 1x, or 0.2x. You don’t have enough information to make that judgment.
- danggggg 2mo ago[dead]
- slopinthebag 2mo agoIt’s worthwhile to me under specific conditions, mainly that the codebase has existing patterns and abstractions that the LLM utilizes, and they’re actually good. It’s not a common case but I’m lucky that one of the codebases I’m in is one I built myself mostly by hand, and LLMs are really effective in it at the moment. My main concern is making sure the generated code maintains the high standard, but it’s definitely saving me time. I’ve kind of changed my mind on prompting, it’s definitely a skill. It’s a skill based on your own skills in the domain. I’m at the point where I can get the LLM to generate the same code (roughly speaking) that I would have written. So it’s basically generating the same thing I would write, just faster. So it’s like reading your own code. Using it as a crutch to do things you aren’t capable of is where people run into trouble. That’s where the massive amounts of code review come into play. For me, I’m only ever reviewing 100-300 loc changes at a time. Often less. Because I know what I’m doing and can break things down into manageable diffs. Can’t see myself going back, but also can’t see myself doing it without the experience I have without LLMs. Which is a bit of an issue for new developers. Not sure what the solution is for that.
- dullcrisp 2mo agoThat plus if you’ve ever stared at your code and then searched StackOverflow to see if you could find a better way of doing it, it’s like having that running continuously.
- slopinthebag 2mo agoYeah it’s great for prompting for improvements, granted you can actually judge the suggestions for yourself. They’re often slightly or majorly bad.
- danggggg 2mo ago[dead]
- deimos_28 2mo agoI’ve reached a similar conclusion, but there’s a part that worries me: the expertise that allows us to judge AI’s output was itself built by doing the work we’re now delegating. So there’s a risk that our judgement will decay over time. I’ve been thinking about the problem as choosing where we can afford to “borrow” comprehension, versus where we need to keep exercising it, and how to “claim back” the critical comprehension we lost.
- hypfer 2mo agoA possible heuristic: Everywhere the LLM made a design decision is probably a place to revisit later. You can ship it now, but to stay in the game you need to stay in the loop. If you need the LLM to explain to you the concept behind something - or even if you figure out yourself what it did - that's likely wrong and will lead to the undesirable outcomes you've mentioned. As long as it just types and doesn't think otoh, you should be good. There is - I'd argue - little to no value in manually typing if (foo) {}. And it's also great for bouncing ideas around.
- danggggg 2mo ago[dead]
- dullcrisp 2mo agoWell you got me. I’d agree about that workflow, but something more rapid like a few seconds generating code and then a couple minutes reading it can be more engaging to me than writing it out yourself. I think it’s near time we all stop having such strong opinions about the matter either way personally.
- danggggg 2mo ago[dead]
- dullcrisp 2mo agoI’m entitled to my opinion about your opinion just like you’re entitled to your opinion about my opinion about your opinion.
- slopinthebag 2mo agoYeah I kinda agree. The AI boosters have been super annoying for a while. I’m not anywhere close to an AI booster but I find value in it. I think we should think of it less like some intelligent being or “agent” and more as a code generation tool. It would both be more productive and healthier.
- danggggg 2mo ago[dead]
- tankaiji 2mo agoAnd then more hours cleaning it up and re-prompting.
- danggggg 2mo ago[dead]
- jdw64 2mo agoWriting code directly takes longer to warm up. Usually, I'd keep tens of thousands of lines in my head. In the past, I spent a lot of time designing error propagation and execution contexts. (Talented people might figure it out right away, but unfortunately I don't have that kind of talent.) So I'd have to think about things like Result<T> and how far to propagate errors—and worry about whether my approach would conflict with the existing codebase. But these days, AI just generates code following the existing patterns of the codebase. In the past, staring at a blank screen meant going through a checklist of things to design—starting from policies and writing everything down step by step. Now, I just ask AI and it gives me a template—which is great. Then if the AI makes a mistake, I fix it manually. Of course, I still hand-code sometimes—but only in the areas I enjoy. Most of the time, I use AI coding. Both are fun, and they complement each other in interesting ways. Doing both together is actually enjoyable.
- skydhash 2mo agoFor me, coding is either a flow state (when I have huge swaths of code to write) or deeply thinking about just a few lines (mostly to figure if I caught everything). The latter case is when I procrastinate the most, because I usually have an idea of a solution, but don’t want to do the work of actually verifying if it’s correct. Using AI then is skipping the enjoyable part (writing the code) to the unpleasant part (formulating hypothesis and verifying them).
- jdw64 2mo agoI feel similarly, but at the same time, I think I am the exact opposite. I actually find formulating hypotheses more fun. For hobby projects or things I start casually, I usually do not think about errors and such at all. When it is a tool I want to build or need for myself, I really do not care about that part. In my case, I do not contribute to open source at all. Mostly, I deliver code for factory systems or specific companies, and usually, there are strict enterprise requirements. (To be precise, there is always that mandatory code the lead developer on their end dictates, right?) That kind of code is mostly no fun, but it has to meet their requirements and often clashes with my own style. Having AI write that code for me is a huge relief. In that sense, I think it is just a difference in personality and preferences. I originally became a programmer because I wanted to make games. I started programming because I found it fascinating to see things drawn and displayed on the screen. Becoming a programmer was all because making Flash games was so much fun... So in that regard, for me, writing code is just 'drawing what I want on the screen', which is why I guess I do not mind if the code is written by AI. When I contribute to other people's projects, I do not use AI for anything other than English translation, but for my own projects, I have no hesitation. Is this really just a difference in inclination? It is not that I did not enjoy writing code, but rather that seeing what I want rendered on the screen brings me more joy. When the concept of 'vibe coding' first came out, I really hated it (since my knowledge was earned over 4 to 5 years of getting scolded by lead developers as a subcontractor and factory software provider). But thinking about it, what I really wanted to do as a developer was just to build the worlds I envisioned, so I decided not to let it bother me too much. We talk often here on HN, and I really enjoy debating with you. I learn a lot from you.Mr."skydhash", I actually remember you quite often, and I even steal a few keywords from your posts sometimes. Because we have different tendencies, we occasionally clash, but having these conversations is exactly what makes it enjoyable. Thank you for always replying. Have a great day, and I hope this does not offend you in any way.
- mulanroo 2mo ago[dead]
- whateveracct 2mo agoI spend 45 minutes writing it. then i git commit and move on cuz i made something good. who is winning here? lol
- danggggg 2mo ago[dead]
- ReptileMan 2mo agoLike the Titan submarine team's moto mine is - real men test in production. The LLM produce so much code that the best I can is skim and look for obvious flaws, also pass it trough adversarial one.