Tell HN: I Lost Joy of Programming
79 comments
·July 8, 2025jon-wood
Have you considered not doing that? It's not obligatory to have an LLM shit out unreviewed code for you, you're making a choice to do that, and you can make a choice not to.
Review the code. Hell, maybe even write some code yourself.
What you're describing is how I feel whenever I use an LLM for anything more than the most basic of tasks. I've gone from being a senior level software developer to managing a barely competent junior developer who's only redeeming skill is the ability to type really, really quickly. I quit the management track some time ago because I hated doing all my software development via the medium of design documents which would then be badly implemented by people who didn't care, there's no way you're going to get me to volunteer for that.
derekp7
I take a hybrid approach. I will describe a simplified problem to the LLM, have it generate a well commented and reasonable approach for the problem. I then use that as a cheat sheet for implementing my actual code. This still gives me hands on codi and more control, without needing to agonize over the details of each coding technique.
jvanderbot
Not OP, but you nailed my feelings perfectly. I did not like managing for precisely this reason, and it never got better. The trenches are for me.
Re LLMs I love collaborative coding because I can sometimes pick up or teach new tricks. If I'm too tired to type the boilerplate I sometimes use an LLM. These are the only two redeeming values of LLM agents: they produce code or designs I can start from when I ask them too. I rarely do.
I hope OP can find a balance that works. It's sad to see the (claimed) state of the art be a soulless crank we have to turn.
gwbas1c
I think you're on to something: It sounds like the developer needs to be more hands-on in making changes; as opposed to treating the AI like a subordinate with autonomy.
---
For example: About two years ago I worked with a contractor who was a lot more junior than our team needed. I'd give him instructions, and then the next day spend about 2-3 hours fixing his code. In total, I was spending half of my time handholding the contractor through their project.
The problem was that I had my own assignments; and the contractor was supposed to be able to do their job with minimal oversight. (IE, roughly 0.5-1.5 hours of my day.)
If the contractor was helping me with my assignment; IE, if the contractor was my assistant, I'd have loved the arrangement.
(In case you're wondering how it ended up for the contractor, we let him go and hired someone who worked out great.)
---
I suspect if the OP can figure out how to make the AI an assistant, instead of an employee with autonomy, then it will be a better arrangement. I personally haven't found an AI that does that for me, but I suspect I'm either using it incorrectly or using the wrong tools.
null
drdrek
Technology is about efficiency, and for people to adopt it you need to be 10x more efficient. LLMs took a 15 years process of burning out, and shortened it to 1.5 years.
ykonstant
That is a hilarious and depressing perspective!
John23832
I think that's just the way you're doing it?
I feel the opposite. I appreciate the ability to iterate and prototype in a way which lowers friction. Sure I have to plan steps out ahead of time, but that's expected with any kind of software architecture. The stimulating part is the design and thought and learning, not digging the ditch.
If you're just firing off prompts all day with no design/input, yea I'm sure that sucks. You might as well "push the big red button" all day.
> If it fails, I just switch to another model—and usually, one of them gets the job done.
This is a huge red flag that you have no idea what you're doing at the fundamental software architecture level imo. Or at least you have bad process (prior to LLMs).
gwd
> I feel the opposite. I appreciate the ability to iterate and prototype in a way which lowers friction.
I feel the same way. Things I like: Thinking about architectures and algorithms. Things I don't like: Starting out with a blank slate, looking up the exact function names or parameters. I find it much easier to take something roughly implemented and improve upon it than to start from nothing and build it.
I think about what I want fairly specifically. I discuss it with the LLM. It implements something. Half of the time it's what I expect, I can move on. Sometimes it's done something I wasn't expecting in a better way, which is nice. Frequently it's done something I wasn't expecting in a worse way; I either tell it to fix it, or just fix it myself.
In my previous role, I did a huge amount of patch review, which I always found quite tedious. Even though this looks superficially similar, it doesn't have the same vibe at all. I think it's because the LLM will accept being told what to do in a way no self-respecting coder would. (One complaint I'd heard about another person's reviews was that the person whose code was reviewed felt like they were a marionette, just typing exactly what the reviewer told them to type.)
This way I can do the things I enjoy, while neither having to worry about some human being's feelings, nor having to do the low-level stuff that's a chore.
bgwalter
As the saying goes, mathematics is not a spectator sport. The same applies to programming. If you don't do the lower level work, you are a spectator that is rearranging other people's laundered code, or even their laundered architectures.
roenxi
> This is a huge red flag that you have no idea what you're doing at the fundamental software architecture level imo. Or at least you have bad process (prior to LLMs).
Particularly in the present. If any of the current models can consistently make senior-level decisions I'd like to know which ones they are. They're probably going to cross that boundary soon, but they aren't there yet. They go haywire too often. Anyone who codes only using the current generation of LLM without reviewing the code is surely capping themselves in code quality in a way that will hurt maintainability.
andrei_says_
> They're probably going to cross that boundary soon
How? There’s no understanding, just output of highly probable text suggestions which sometimes coincides with correct text suggestions.
Correctness exists only in the understanding of humans.
In the case of writing to tests there are infinite ways to have green tests and break things anyway.
ryan42
I actually brought back some of the joy of programming for myself by leveraging LLMS
Context. I'm burnt out,doing web software development for business apps for 15 years now and going
I started to get into game development. I started to test out chatGPT and claude to assist and it's been going great. I make so much progress and the results are fun which makes the coding process fun. The LLM covers gaps in my knowledge of math and physics and game dev strategy and architecture. But since I know how to code I can take what it gives and accomplish all kinds of things that would be much more difficult going on my own.
manthan1674
I always enjoyed problem solving, and programming was more of a means to that end for me. These days, focusing on syntax feels a bit tedious, especially when LLMs can handle so much of it. That being said, I still find myself obsessing over code quality, reading and reviewing code, and thinking a lot about architecture and best practices. I still get a lot of satisfaction from building things well, even if the actual mechanics of typing out code aren't always the most exciting part.
Eatcats
in this world of LLM coding, we jumped to architect level
Octoth0rpe
Many of us will make that shift effectively, sure. I think the problem is that to really be a good architect, you need 10+ years of actually doing things to understand what should/should not be built, and the industry is rapidly removing the jobs that let people acquire that experience.
Winsaucerer
Is AI genuinely that good for you all? I can't leave it to its own devices, I have to review everything because (from experience) I don't trust it. I think it's an amazing technological advancement, perhaps will go down as one of the top 10 in the history of our species. But I can't just "fire and forget".
And that's not just because its output is often not the best, but also because by doing it myself it causes me to think deeply about the problem, come up with a better solution that considers edge cases. Furthermore, it gives me knowledge in my head about that project that helps me for the next change.
I see comments here where people seem to have eliminated almost all of their dev work, and it makes me wonder what I'm doing wrong.
gwbas1c
> it makes me wonder what I'm doing wrong
I'm in the same boat: I'm mostly doing C# in Visual Studio (classic) with co-pilot, and it very rarely gives useful code from prompts. Often times the auto-suggestions are hallucinations, and frequently they interfere with "normal" tab completion.
I'm wondering if I'm using the wrong tool, or if Visual Studio (classic) co-pilot is just far behind industry norms?
Winsaucerer
The main problem I have with auto-suggestions is that they distract my flow of thinking. Suddenly, I go from thinking about my code carefully, to reviewing someone else's code. To the point where I get a bit stressed typing, worrying that if I go too slow, the suggestion will pop up. As you may guess, I therefore have them turned off :)
I am playing with Zed now though, and it has a "subtle" mode for suggestions which is great. When I explicitly want to see them, I press option key. Otherwise, I don't see them.
Herring
I think it depends on your niche and model. Gemini pro worked amazing for me in when doing (relatively simple) graph algorithms in python, but completely sucked when I switched to (relatively complicated) latex layouts.
vinnymac
I don’t think you’re doing anything wrong. Some shops just have very low quality bars where they can ship things that are to be frank, broken. I tend to use Sonnet 4 these days, and use it for tasks that aren’t too important or ones that require prototyping and iteration over perfection.
I find it’s really great for augmenting specific kinds of concentrated tasks. But just like you, I have to review everything it creates. Even Claude Opus 4 on MAX produces many bugs on a regular basis that I fix before merging in a change. I don’t mind it though, as I can choose to use it on the most annoying areas, and leave the ones I enjoy to work on myself.
smohare
[dead]
msgodel
Vibe coding sounds miserable. I use LLMs pretty heavily but never as a replacement for my own mind. I'm glad it exists for the people who can't program but it's much less pleasant than being explicit myself.
osigurdson
For me, vibe coding is becoming more of a niche. I still use it but not that often. I prefer the Codex style workflow in which you do spent a lot more time on specifying things, providing examples and reviewing PRs.
Essentially, vibe coding is synchronous as it is necessary to wait around for the LLM to respond. Codex is async and allows you to focus on other things while it is working. The primary issue with async workflows is you really don't want to have to iterate much. Therefore, investing more time upfront clearly defining the prompt / agents.md and prior examples becomes really important. Usually if it is > 90% correct I will just fix the rest myself. For hand coding, I use a fairly basic vim setup with no LLM plugins. I do not like LLMs jumping in and trying to auto complete stuff.
apwell23
what is 'codex style workflow' ?
osigurdson
OpenAI Codex. You provide it access to your github repo, provide prompts and AGENTS.md and it creates PRs for you.
4b11b4
You're doing it wrong, even with language model...
You stopped reviewing the code..? You're not gonna make it.
You still need the visceral feel of writing the code, this builds the mental model in your head.
hennell
>Recently, I realised I no longer enjoy programming.
You don't? Sounds to me like you just don't enjoy prompting. Try doing some programming again. Engage your brain with a challenge and try to solve the problem itself not just explain it to an ai and never even look at the code. You enjoy the driving not the destination, getting a taxi there is removing your purpose.
spacemadness
Which products are you working on so I can be sure to avoid using them?
koakuma-chan
I feel you, but I think that if you want to make exceptional software, and not just a large volume of mediocre software, the best way is still to write code manually.
aristofun
Seems like you were never programming in the first place. If by programming we mean solving engineering problems with code.
Small confession
I’ve been using Windsurf editor for about six months now, and it does most of the coding work for me.
Recently, I realized I no longer enjoy programming. It feels like I’m just going through the pain of explaining to the LLM what I want, then sitting and waiting for it to finish. If it fails, I just switch to another model—and usually, one of them gets the job done.
At this point, I’ve even stopped reviewing the exact code changes. I just keep pushing forward until the task is done.
On the bright side, I’ve gotten much better at writing design documents.
Anyone else feel the same?