Top
Best
New

Posted by signa11 12 hours ago

How to keep enjoying programming in a world of LLMs(discourse.haskell.org)
119 points | 176 comments
chicken-stew 2 hours ago|
Not so long ago I read something on HN which resonated with me: we’re moving into the era that is comparable to car mechanics enthusiasts. You have a previous generation of cars where people just enjoy working on with hand tools, and there’s modern cars where people like to tune with software patches.

From the very start of llms I’ve had nothing but bad experiences with code that was generated for me. Either it’s buggy, it works but I end up losing an evening on some obscure bug, or it’s full of red flags.

My latest hobby project is just in a text editor with markup and that’s it. I’m also done with the augmented assistance in the IDE. I google things I forgot. I constantly read these amazing stories of people vibe-coding some firmware/driver that just works, and honestly I’m starting to question whether I’m reading the posts of some promotional bot.

kraig911 6 minutes ago||
For me it's just making stuff for my family and kids and seeing if it sticks. LLM's have given me a way to easily get something off the ground whereas it used to be a few months now is a few evenings.

I've made a wealth of cute things for me and my kids to do (shameless self promotion) https://drawesome.art - multiple people drawing/painting/coloring on the same canvas my kids love this. The architecture took forever for me to get write. Basically server side authoritative state of pixels and blending between two points. How to realistically manage and store it. https://www.catchmemeow.com - random where's waldo-esque game where you find a cat or dog wearing a silly hat I made this for my daughter and me to help the shelter she wants to volunteer at. https://www.cluestep.com - this one is weird I've actually tried to productize it but i made this because I had the HARDEST time helping my oldest with her calculus/algebra II homework. Basically I constantly made her cry. I just wish I could make it not look so "Made with AI"

I think LLM's analogy are prefab with nailguns did for carpentry. It's very complicated to prompt it (at least for me) to try and make it do something novel and net new. It always falls back on node/typescript/fastAPI/python. It's not terrible at using more obscure languages but I have the hardest time describing what I want or thinking without starting something more by hand and then letting it take the wheel and seeing where it drives me.

I should mention too at work I'm practically forced, measured even on the amount of AI I use. The expectation feels like use AI for any and everything. So i'm more worried one day I'll be laid off once I'm found to hit the 'enter' key much anymore. Anyways for me I'd say embrace it, use it and you'll find your output is much higher with the caveat that when a bug occurs it's incredibly hard sometimes to fix if it's with LLM generated code.

xgb84j 1 hour ago|||
It might be that you're just working on projects where LLMs don't provide much benefit.

The second thing is that using LLMs in a useful way is a skill in itself.

i_love_retros 9 minutes ago||
> The second thing is that using LLMs in a useful way is a skill in itself.

I have to disagree here. People who are really into agentic coding like to say/believe this, but come on, it's not rocket science! You literally ask the agent to do something and it does it, that's it. As long as you use a recent model it will do it really well regardless of how fancy your prompt is. There's no moat here, anyone can do it. Your job will be gone and so will mine.

blinkbat 1 hour ago|||
Forgoing the ide is quite a choice
user43928 43 minutes ago||
> I constantly read these amazing stories of people vibe-coding some firmware/driver that just works, and honestly I’m starting to question whether I’m reading the posts of some promotional bot.

No, it just works after a few iterations.

And you'd know this if you would use AI instead of working in a text editor with markup.

To each their own, and I understand if working by hand is more fun for you.

But in my opinion you guys don't get to make strong claims about the quality of works that make heavy use of AI.

You don't have the experience, and I bet neither does the guy who wrote the article about it being essential to handwrite all the code after planning. The arguments about the environment and sustainability do not seem relevant.

jackblack11 28 minutes ago||
Spoken like a true javascript skiddie
beej71 6 hours ago||
One thing to keep in mind is that anytime you punt to the LLM (or anybody) for anything, that skill is going to atrophy.

I've seen this happen to myself where suddenly I had trouble planning out the architecture for a very small project. It should have been obvious to me, and I knew that. So it was disconcerting to not be able to suddenly have the answer appear in front of me like it normally would. I thought maybe I would go to Claude and help get some ideas.

But then I stopped myself. I knew I should be able to do this! So I got out a piece of paper and I scribbled ideas until the dam burst and suddenly the entire design was obvious, like it should have been in the first place. It took about 5 minutes.

But those were an alarming 5 minutes. It was like I'd gone blind to the solution.

And I realized that when I asked Claude for a bunch of ideas and then I selected the best one based on my experience, I was exercising that exact skill. I wasn't exercising the skill of coming up with the solution from scratch.

Lots of times we're happy letting particular skills atrophy. Maybe we don't like exercising them and we just don't want to do that anymore. And I think that's valid.

Just be careful how you use it.

seanmcdirmid 3 minutes ago||
It’s not just that, punting something to an LLM is its own skill that will push out the other skills you were using to do everything on your own. It’s like going from an IC to a tech lead manager, you go from doing things on your own to figuring out how to get a team (of agents) to do it instead.
pton_xd 6 hours ago|||
5 minutes... what about 5 hours, or 5 days? Imagine spending 5 hours with a pen and paper sketching solutions. Unthinkable to spend that amount of time "unproductively" today. I feel like there's just so much pressure to make visible progress, and with these tools available it's getting harder to convince yourself to take the time to think.
vconnor 1 hour ago|||
It is unfathomable to me that spending 5 hours of hard mental work is deemed ‘unthinkable’ and ‘unproductive time’

I might be of the old “hammock driven development” school, but I wonder if people have any idea of what productivity and creativity consists of, how it works and how to promote a state of flow and deep work. Hint: it’s not about context switching between 15 different agents per minute.

I keep wondering if I am defending my experience in this field against the deep hubris of 19 year olds that are still figuring it all out (programming but also system design and how to tackle hard problems efficiently)

gspr 1 hour ago|||
Absolutely not unthinkable! We're paid for exactly that in research, for example.

It's terrifying to hear that 5 hours of focused thinking is considered crazy. I can understand a budget battle if it's 5 months, but 5 hours?! Everyone, in every profession (or none), would be better off mentally if they "wasted" 5 hours thinking about something every now and then!

kaffekaka 54 minutes ago||
I completely agree with you, but being "better off mentally" is really not valued very highly today.

Fast, visible progress and delivery is the melody.

josephg 42 minutes ago|||
Sometimes you gotta do things that others don’t value highly. A long career needs you to act with good judgment. Even - sometimes - when the optics are bad.
gspr 50 minutes ago|||
If you were in need of legal services in a high-stakes case, or if you needed brain surgery, would you want "fast visible progress" or "I need to think this through"?

I'd say both relevant professions are highly regarded.

dylanhouli 2 hours ago||
This is why I like to come up with my own solution(s) for a problem first, and then ask AI what it recommends to see if we match up. Makes it a fun exercise, and usually ends up helping creating one ideal, combined idea.
BizarreByte 2 hours ago||
My jobs made me hate programming long before LLMs. If anything I enjoy programming more now that I can tell the LLM to do the bullshit I don’t want to do, saving my energy for interesting problems…usually ones found outside of my 9-5.
josephg 40 minutes ago|
If your job makes you hate programming, why do you stay there? Sounds miserable.
Chinjut 22 minutes ago|||
If only we could all snap our fingers and have our dream jobs.
thoughtbefore 8 minutes ago|||
[dead]
Buttons840 16 minutes ago||
I miss having a canvas. I miss having a place where I created something that is a reflection of my understanding.

The code used to be my canvas. But I suppose it never was an ideal canvas, because the code's primary purpose is to achieve a business objective, or make something work.

I want a really polished literate programming environment where I can slice up the code and add drawings and annotations, and it is all automatically kept in sync with the actual code. I could use this to record my own understanding. Teams could use this to collaborate and create documentation.

The code still matters, but the time for human hand crafted code seems to have ended. Humans still want and need to craft something though. We need to create something to solidify and record our understanding.

Humans need a place to write as a tool for thought, and if the code is no longer that place, we need something else--and if done well it can be better than the actual code.

And it has to not fucking suck--I'm not talking about Jira and Confluence here--good Lord, I know if I present this idea to a project manager they're just going to tell me to use Confluence.

And, again, I'm not talking about just a really great note taking app here. It needs to be interleaved with the code and kept in sync with the code.

humlex 11 hours ago||
I recently (2 days ago) noticed i enjoy it a lot more if i use a super fast model with low reasoning (gpt 6 luna low effort + fast mode). That way, i can still have hands on the entire time and dont have to wait around for 20minutes for it to finish up and have made a bunch of decisions without me.

Also, LLMs are first and foremost excellent at reading ultra fast. Makes it excellent for summarizing and re-representing modules of your code

r_lee 2 hours ago||
I've had bad experiences with gpt 6 luna, but 5.6 luna worked real nicely with e.g React, you can do a back n forth and it'll work like a teammate vs just a "done!" where you then have to clean everything up afterwards
Kiro 1 hour ago|||
Yeah, I've come to this realization as well. It's like the inverse of that classic interruption comic. The waiting makes me lose the context.
coffeefirst 10 hours ago|||
Oh yeah. I discovered this back in February. Faster and cheaper is better, because faster means you can focus.

Frenetic multitasking is for suckers.

bunderbunder 1 hour ago||
I’ve also found that fast cheap models are more sustainable because they make it easier to keep technical debt under control. Partially because I’m keeping sustained attention in one place. And partially because small fast models with low reasoning don’t seem to love technical debt either and will (unintentionally) start to give you negative feedback signals when you’re letting things get messy.
badestrand 11 hours ago||
That's a great idea, I will try that too. The LLMs are so capable, but the slowness annoys me. I always end up working on a few things at once and always doing rounds of reading its output, giving new orders, and going back to Reddit/HN/YouTube while it's doing its thing for the next 5 minutes.
TSiege 22 minutes ago||
All pros and cons of LLM coding aside, something has really shifted for me with the latest agentic coding. I’ve found my motivation to work slowly slipping away. No matter what role I had I always found something to keep me engaged with the job. Now though there’s no motivation. Every week it feels like my skills, talents, even ideas themselves are less and less relevant. I’m just meat shuffling data and permissions between bots
DonaldFisk 10 hours ago||
I've avoided using LLMs. You might not have the option of doing this in paid employment, but you certainly can in your spare time, and if you don't you'll gradually lose the ability to think in a programming language. This applies similarly to any other cognitive skill too: writing music or playing a musical instrument, speaking and reading a foreign language, doing cryptic crosswords, playing chess or go, etc. You wouldn't stop playing chess just because computers are now much better at it. The point is learn, understand, and do those things yourself.

Here's my advice, based on what I have done: implement a programming language yourself, from scratch, without using an LLM, and then program in that. Don't release your implementation, or any code you've written in it.

Most (almost all) of my programming at home has been done in a Lisp dialect I designed and wrote myself, which is superficially similar to Common Lisp, but with subtle differences, including some deficiencies that I have to work around. And in my Lisp dialect, I implemented a visual dataflow language. Code samples are on my web site, but they're PNG images, so are safe from LLMs (I think). The language was designed to run on MIMD hardware, which doesn't exist in the real world. I've also implemented a Prolog which doesn't use Edinburgh syntax, which I use for type checking, and for parsing a controlled English implementation. So the temptation, and also the option, of using an LLM was never there.

In the course of doing all this, I've learned a lot along the way, which I wouldn't have if I'd used an LLM.

derpyzza 9 hours ago|
this is awesome, but also code samples being in PNG images does not make them safe from LLMs anymore unfortunately, LLMs are really good at reading text from images now
DonaldFisk 9 hours ago||
Thanks. The code (here: https://fmjlang.co.uk/fmj/tutorials/TOC.html) isn't text, it's directed graphs.
matsemann 11 hours ago||
I don't mind using an LLM while programming. At least the way I use it, I still feel like my experience, knowledge and taste is being utilized to make it better than if I were to vibe it.

What has made me enjoy it less, is having to deal with colleagues' use of it. Sorry to say, but I don't enjoy talking to meat proxies, or getting huge PRs that solve the wrong problem. It's like half the people have turned off their brain. We produce faster, but we don't produce the right stuff.

lolakutty 10 hours ago||
> We produce faster, but we don't produce the right stuff.

Same here...

We commit bad decision, then in the next PR, workaround the bad decision (instead of undoing it), then in the next PR we have to workaround (aka deal with) the initial bad decision + work around...so on and so forth...

And at any point, manually reviewing the changes becomes impossible because you have to reason about the changes keeping all the workarounds and special cases in your mind...

RunSet 2 hours ago|||
> At least the way I use it, I still feel like my experience, knowledge and taste is being utilized to make it better than if I were to vibe it.

> What has made me enjoy it less, is having to deal with colleagues' use of it.

https://en.wikipedia.org/wiki/Third-person_effect

matsemann 2 hours ago||
No, it's not a bias. If I vet every line of code still, but my coworker ships thousands of lines they don't understand, we're actually using it differently.
joegibbs 11 hours ago|||
Yeah same here. I feel like I’ve been promoted and not get to manage my own very efficient team that needs a lot of micromanaging. I’ve seen what other people have made without any experience, but I personally feel like I can get my vision done much, much faster, and like I’m not so encumbered by how long it might take to implement some small feature.

In fairness though I never really enjoyed programming for the sake of it, I was always about what you’re getting at the end.

bluefirebrand 11 hours ago||
> I feel like I’ve been promoted

The correct response to "I feel I have been promoted (without a corresponding title or pay change)" is to be pissed off, not excited

tome 8 hours ago||
Why would you want to be pissed off when you could be excited?
bluefirebrand 7 hours ago||
Excitement is for when good things happen.

A promotion is only a good thing if you actually benefit from it

na1026 11 hours ago||
> It's like half the people have turned off their brain.

LLMs are for people who want to turn off their brain. If you want your team to improve, you should lead by example and stop using LLMs. You need to create an environment where it is unacceptable to turn off your brain. Your underlings will never use LLM tools the way you want them to. LLM tools are designed to be used the way your underlings use them.

AyanamiKaine 11 hours ago||
While reading "The Nemesis of Creativity"

It uses a Chinese sage to illustrate the fight against using machines:

"I have heard my teacher say that whoever uses machines does all his work like a machine. He who does his work like a machine grows a heart like a machine, and he who carries the heart of a machine in his breast loses his simplicity. He who has lost his simplicity becomes unsure in the strivings of his soul. Uncertainty in the strivings of the soul is something which does not agree with honest sense. It is not that I do not know of such things; I am ashamed to use them."

It resonates with me similarly as the post.

na1026 11 hours ago||
> he who carries the heart of a machine in his breast loses his simplicity.

A lot of these AI guys seem pretty simple to me...

yesbut 31 minutes ago||
"hold on, let me ask Claude what I should think about this topic."
cautiouscat 11 hours ago|
I’ve been experimenting with this idea that I can implement features faster and more accurately than the big model + agent swarm paradigm. I also have been trying this because of what the post brings up when it comes to AI burnout.

For me, writing the code (literally typing), shifting files around, renaming things is slow. So I’ve been using small models + much stronger grasp on the reins. Similar to what this post mentions. It’s been great, the decisions come from me. I tell it to make a domain class with these fields and these invariants. It does it in a split second, I look it over, tweak it and move to the next part of implementation.

When I experimented with swarms it would spend an hour just having agents adversarially review to decide some pretty trivial details. This way, when someone asks me a question during review, I can answer it. When I need to dive back in, I know what to look for and where to look for it. I have way more connection to my work, than a few months prior.

meander_water 11 hours ago|
Sounds like you could just use an autocomplete model for the exact same benefit.

And that's not a criticism, that's what I've come back to myself.

dawnerd 3 hours ago||
Early copilot was exactly what I wanted for a long time. A smarter autocomplete. Then they started taking it too far with just filling in the entire file.
More comments...