Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
How to keep enjoying programming in a world of LLMs (haskell.org)
317 points by signa11 1 day ago | hide | past | favorite | 326 comments
 help



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.


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.


> 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.

I feel somewhat qualified to opine on how humans learn because I've successfully taught my 2x boys[1].

Teaching is difficult. It requires a lot of patience and understanding, and a working mental model of the human brain.

If you have tried, and failed, teaching calculus to your kid, then maybe you don't have a good model of how human brains work.

TBH, it doesn't even have to be correct, it just needs to work; celestial navigation had the wrong model for centuries, but ships still got to where they were going (mostly).

I'm finding that developers claiming to have learned something have often very superficially learned it. If they were tested on what they learned, they'd fail, just like the HS trig students who read the textbook and did no problems fail when they hit the exam.

--------------------------

[1] My youngest, at grade-1, reads at a grade 3 level and can do things like multiple 27 by 4 in his head. That is a result of a structured and scheduled 10m lesson per day since he was 3.5 My oldest was getting 5% in trig/geometry in grade 11 (long story behind that one), and became solidly mid-70% after my tuition.


Yeah I have 4 kids. I'm come to the realization all brains are different. My daughter struggles with anxiety and feeling terrible if she doesn't immediately 'get it' especially in a social setting. She does great with online tools where she can feel like no one is judging her.

My son doesn't get upset at all with me he'd just play his mom to get the help to the right answer and didn't have the 'want' to understand a problem he just wanted to move along.

I have another daughter who is autistic. I'm still trying everything I can possibly do to get her past reading at a 2nd grade level. That's another problem I'm trying/struggling to solve.


I feel the same way. Mostly with tools for people though. How do you bring people closer in the age of social media and ai. I keep seeing things like https://www.wishlst.com and https://journalee.com and trying to brainstorm things that would be helpful to humans regardless of tech.

It just dawned on me that LLM use is a lot more measurable then "the rockstar engineer spent a week bouncing their favorite nerf ball off the wall all week and then the solution came to them" and the business side always loves to measure productivity metrics etc. As someone who's worked for mom and pop and big corporate the stats spook me, or if they're available to the worker I find them more distracting and encourage gaming the stats then being productive or humane to your co-workers.

> "the rockstar engineer spent a week bouncing their favorite nerf ball off the wall all week and then the solution came to them"

I wouldn’t call myself a rockstar but I did get a job after a summer internship which I mostly spent touring with the Grateful Dead. At the end of the summer I was in the office and the head of the research division said he hadn’t seen me much(!). I said I’d been thinking and had some ideas on how the group’s research plan was flawed and how to do it better. I then filled his whiteboard with off the cuff ideas.

I spent the next several years with a team implementing the whiteboard.

I like to think things work better these days, AI or no AI


I've written about this at length on my blog[1], but it's sorta impossible to measure the work that goes on in ourbrains. So we just say "anything we can't measure doesn't matter".

[1] https://blog.nilesh.io/post/llms-and-jobs


Idk, I could see some of my stats (like Claude usage) and I tried to avoid spending an unjustified amount of money.

There are times when I wonder if a model is just spinning its wheels to burn tokens, and how hard would it be to write that loop from the API provider side... Lex Luther shower thoughts!

I'm hardly AI-pilled but these are lovely parent/child apps. Kudos

Lowering the barrier to proof of concepts for personal projects is a beautiful thing. I don’t love AI but I’m 100% playing the cards I’m dealt.

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.


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

Not really. I don't even bother writing complete sentences as my prompts anymore. Once the LLM has enough context on my current issue, even incomplete sentences or phrases result in the same outcome quality in LLM's responses.


> 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.


It very much is a skill. You wont get good results by asking it to "go do X" and walking away from the desk. You have to know how to use it as a tool to: 1) research the task 2) develop a plan the agent can follow to complete the task 3) check the plan for completeness/issues

After a (potentially long) session of investigation and planning _then_ you let it code. Even just being aware of this process is part of the skill involved (then you have to actually get used to doing it effectively).


> It very much is a skill. You wont get good results by asking it to "go do X" and walking away from the desk.

You soon will. If not next year, then maybe the year after, or the year after that.

Whatever value you are providing will evaporate in a few years.

Are you planning on stopping eating in 3 years?


Ask a human to "build twitter" and walk away and tell me how it goes. Vague requests will never work, no matter how intelligent the person being asked is, because they don't have enough information to give you what you want.

"No no no, when I said build twitter I meant without the character limit!"


> You wont get good results by asking it to "go do X" and walking away from the desk

but you will!! you absolutely will!


> You literally ask the agent to do something and it does it, that's it

Exactly, you have to know what to ask, especially on large codebase. I still have to baby sit Astra and opus 5.5 into reusing existing structures/functions, not reinventing the wheels, telling them "yes this might be a legit race condition, but you added 5000 LOC and I'm pretty sure it will never ever be a problem in production given it would require 5 distinct catastrophic failures at once to trigger it, if it ever happens log it in sentry and we'll have a look by then".

Some people are really really bad and won't even think about asking stuff like "run a memory profile and see if we can decrease our footprint", "benchmark the top 3 options for this bug and keep the one that uses the less cpu but still respond under 150ms".

You still need to have a broad understanding of what a computer is and how it works, both are skills, which a lot of dev didn't have anyways, but now they can shit out a looooot more code


My wording was bad. I've been using latest models recently and I can pretty much say build xyz feature or fix xyz bug and it will do it really well. It will ask me any clarifying questions. It will highlight things I haven't thought about. It will make suggestions on how to test and verify. And all of these things it will highlight the recommended choice I should choose.

So I stand by my assertion that anyone can do this now, it's definitely not a hard to learn/master skill, and people who say it is are naively believing there is a moat around their career.

So people who choose to not use it are not losing out on building any skills- in fact if they are focusing on hand coding and learning and keeping their brain sharp they, in my opinion, will be in a much stronger place than the AI enthusiasts whose brains are rotting.


You’re so profoundly incorrect that it’s obviously not worth the time and effort to even begin to try to realign you with reality on a site like this. I don’t know how to educate others on this topic. It’s a serious problem and the gap is continually broadening.

The skill is in recognizing where they go wrong, which is indistinguishable from the skill of being able to do the job without the LLM.

>You literally ask the agent to do something and it does it

It's not that simple, you have to remember at the end of the day these things are just doing next token prediction. If you don't give it the proper tokens to attend to, then your outputs won't be satisfactory.

You can get stellar outputs from LLMs, but it really is a function of how well you manage your input tokens.


that is to say, you have to be a good dev first and foremost, and no matter how much harnessing you do there is gonna be a limit to the quality of output by the user (otherwise why not just use a no-code tool instead)

(the ironic thing is tho, people starting out with just llms will probably never progress to 'good dev' in the first place...)


This is the one thing I'm curious about, what's the next generation of devs going to look like? Just a bunch of people who treat the codebase as a black box, pump out slop, and call it a day when the feature works?

I imagine there will be value in being able to understand every line of code for a while, because many (most?) things don't seem amenable to long term vibe coding. But how will that knowledge be obtained? Maybe there will be a much smaller pool of devs with the patience to actual learn bespoke software development.

Or, AI will actually get good enough that vibe coding is better in every case than mindful development. I guess the main factor is how long it takes for that to happen.


  > Just a bunch of people who treat the codebase as a black box, pump out slop, and call it a day when the feature works?
my guess is yes, because that is what i am seeing today in front of me with new grads

  > Or, AI will actually get good enough that vibe coding is better in every case than mindful development. I guess the main factor is how long it takes for that to happen.
i think there is a limit to this; you could train an llm to never dereference a null pointer or something like that, and you could probably minimize other security related stuff, but in the end its a token predictor, so you stuck with probabilities... i wouldn't vibe anything that had any security/legal/user related things but thats just me.

Most of us effectively function as next-token predictors, in my experience. Some of us are trained not to dereference null pointers, but there's always a non-zero probability that we do so anyway. To reduce that risk I use the same tools an LLM would, i.e. code review, automated testing and verification, etc. There isn't obviously much difference between humans and LLMs in that sense.

Like you I would not vibe code something important, but I think that's primarily because I want to have a deep understanding of a system before I accept responsibility for it. An LLM would still be useful during implementation and likely to increase the quality of the result.

It seems very likely that AIs will become capable enough that they can take complete responsibility for development, deployment and maintenance of the systems we're used to building. Further, it seems likely they'll end up much more capable than humans have been. I think that's an eventuality we need to be prepared for.

A well-utilised AI tool can probably already build a much safer and more robust security/legal/user related system than you or I can, in any given time budget. There's a question around what happens as humans are required less for the "well utilised" part, and who is responsible when humans are not really involved anymore.


>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.

As someone who's used more and more software made this way—either for hobby stuff or because I've had to for work—I just don't get it. You don't always get exactly what you ask for, and you often ask for something that is really sub-optimal in many ways.

The problem with waterfall wasn't ever solely "it takes a long time to write the code."


It's not hard to use a drill or a hammer but learning how to use them as tools to make things was always the real challenge. Using LLMs in a useful way I would argue is a much more important skill than programming as was learning how to make programming useful was always the more important skill, but it depends on if you view programming as a means to an end or the end in and of itself.

Using LLMs in a useful way I would argue is a much more important skill than programming as was

The trouble with this argument is that fundamentally this whole field has no sound theoretical foundation. It has no deterministic rules you can learn that will reliably get good results.

That also means there is no way to prove that what works well today will continue to work well tomorrow. Nor can you be sure that something you've tried and ruled out in the past because it didn't get satisfactory results won't be the new SOP next week. Any experience you gain in the field might be obsolete within hours.

An important consequence of this is that you can't train someone else to use LLM-based tools effectively either. At best you can train them to use specific tools and models that exist today effectively and hope the knowledge remains useful for a significant period of time. Even that assumes you have the knowledge yourself and aren't relying on something that worked well yesterday but could already be out of date after something new was released last night.

This looks like a fundamental problem that can never be fully solved as long as LLMs of the type that are popular today are behind the tools. People forget in all the hype and rapid change that the whole idea of agentic AI tools in mainstream development is barely a year old. We have no idea yet what the long-term consequences of so many people and organisations in the industry all but abandoning traditional programming skills in favour of AI agents will be. There already seems to be a lot of anecdotal evidence about programming skills atrophying, developers burning out, and the quality of the finished product dropping but it's probably too soon to have serious data to analyse or to draw any big conclusions about what is a good way forward from here.


Then on the other hand you have people who have doubled or tripled their real-world business by using these tools… And the folks who have developed apps that benefit their child’s development, etc.

You don’t have to look too far to see where we are going. But you do need to have your eyes open.


You don’t have to look too far to see where we are going. But you do need to have your eyes open.

As I said - we have no idea yet what the long-term consequences of the recent rapid shift towards AI and agents will be. I prefer to make decisions based on evidence, not hearsay or wishful thinking.

I have been around long enough to see a lot of hype cycles in programming. They were all going to be revolutionary. They were all going to change the nature of programming forever. They were all going to result in dramatic increases to productivity (or other similar claims).

Many of those phases did turn out to have some good - sometimes excellent - ideas. A lot of those have since been widely adopted in the industry. They also had plenty of ideas that didn't really work out. In the end we have improved some areas to a useful degree but none of those phases resulted in orders of magnitude increases in useful productivity or quality.

So far LLMs and agents are looking like a familiar story. They're proving to be useful tools for some types of work. They're now quite good at producing code to the standard of an average developer doing a well understood task - and in many cases that is all you need! But the jury is still out on whether they'll ever be able to replace good programmers or build genuinely innovative products where there aren't lots of examples of good existing implementations to train the models. Those are the parts of the industry where I do most of my own work and I hear much more scepticism about these tools from those developers than in the average online discussion.


> Using LLMs in a useful way I would argue is a much more important skill than programming as was learning how to make programming useful was always the more important skill, but it depends on if you view programming as a means to an end or the end in and of itself.

No, it's not. As evidence of intelligence atrophy, I offer up this word salad that barely makes any sense as evidence: someone barely able to write a coherent thought can apparently produce working software.


> You literally ask the agent to do something and it does it, that's it.

When was the last time you built something meaningful with it? I admit, LLMs do help and save tons of time and effort, yet building noteworthy software still remains a difficult task, with or without LLMs.

Funny, but your comment reminded me of my wife. Circa 2009, she was walking behind my back, she stopped to watch me work without me noticing. I was using Visual Studio (sluggish, temperamental mammoth, not its smaller cousin). She stared at my screen for a few minutes and suddenly exclaimed: "You're not even working, this thing is telling you what to do. I could probably do this shit too..." By "this thing" she obviously meant the intellisense completion that was giving me hints whenever I typed.


> 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.

Sure, the skill of writing beautiful for loops and recursive binary search tree is basically worthless, but software is written for a purpose. That purpose is not gone. People will keep wanting POS system, accounting system, lawyers, manufacture stuff, personal assistant, etc etc


If you have watched a normie use AI and thought See?! It's not rocket science! We are all the same. then buddy, you are a normie. They are very very bad at it. (If you have not watched an average someone use AI, then I highly recommend it, if for no other reason than to understand your placement on the curve.)

> Your job will be gone and so will mine.

I mean, that's probably true, but the person you are replying to is talking about the present.


I just recently replaced LSP with ctags. I am loving it. I plan to write a post about it but I’m leaning heavily into grep and search tools to navigate code. I do miss some autocomplete and auto import features but other than that I can actually navigate through code better with ctags instead of go to definition.

For linting style errors I’m using entr in a separate terminal which is also awesome.


Please write this up! I’ve had similar ideas but haven’t tried going back to ctags yet. I’d love to read about your experience.

I'm going to get left behind as a developer I guess because I still haven't seen output in my niche that's done well enough to just let it go and develop entire projects. I essentially just still talk to it like it's a rockstar dev and it gives me good suggestions and technical talking points on why one paradigm might be better than another.

  > 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.
I think this is a prettier picture than reality suggests, it's overly simplified and a statement people like because it's a variant of "everything is the same"

I think the analogy with cars is apt, but we should also like at what happened with cars. People are being locked out of fixing them, even for simple jobs that would usually be task that introduces someone to the hobby or career. Fixes like changing your oil or brakes. Remember that the Ford CEO said that cars are "too dangerous" to fix. Probably connected with the other thing they talk about... a $100 bn repair industry that they want a bigger piece of. There's an easy way to do that, John Deer and Apple have clearly shown that it's not hard, even when we get the right to repair. Is it any wonder far fewer people work on their cars these days? Ask the people with electric vehicles... there are people out there, just as there always will be, not the numbers do matter

Weirdly, I think LLMs would be much more useful if everything was open source. No need to hack your microwave to give it a firmware update to the door doesn't lock, just patch. More training for the LLMs and turns what would be a specialized task into one anyone can do if they point the LLM at the code. Plus, people submit patches to the source code, getting companies free work. There is a way everyone can win in this. Sometimes (often) being greedy prevents you from getting a bigger fill


> 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 one uses assistance in the IDE for project like these. They're all using Claude Code (or similar harnesses) and lots of sub-agents. People who haven't seriously tried out SOTA models + their proprietary harnesses just don't know what they're missing out.


Hyped by those stories, I connected an agent to my old Chinese xiaomi phone and asked to install lineageOS on it.

After several days, it managed to brick it and unbrick it. The boot loader is still locked.


I just use plain old vscode with no AI integrations at all.

> 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.

There is a lot of bullshit out there for sure and I'm still not convinced llms are a net positive for society (even ignoring energy use and hardware inflation) but it's clear that it works in a lot of areas, for example when it comes to reverse engineering it pretty much is black magic, the progress made in ps5 and other consoles emulation is out of this world


Was happy to see someone forked Zed into "Gram". It was very disappointing to see every code editor go the route of being more than a code editor or even full IDE. I can literally just invoke a separate AI app to do code if I want that. I don't want to have to be actively conscious of every keystroke being shipped up to a backend to be processed. Sometimes I just need a dumb scratchpad to plop a password onto with other shared notes while I'm mid-task in an unsaved tab.

> I google things I forgot.

The problem here is that search engines are trash now. The AI companies are going to have to start running their own (if they haven't already) for their models to use that haven't been nerfed. That might be the next moat against open/local LLMs by cloud LLMs, so the search engines are probably going to get even worse.


> 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.

I don’t question those posts, but these days, I can code something with vi (nvi) and be ok with nothing other the small motion helpers. These days, whenever I see a project with more than a dozen files, my gut tells me there’s something in there that ought to be a library.


Forgoing the ide is quite a choice

> 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.


Yeah I don’t understand. This is late 2026. Opus 5.5 can literally build anything I throw at it. We’re still seeing people who have not been satisfied with _any_ AI generated code?

Sure, they can build “anything”, but the quality is not good. I have recently played a few vibecoded games I found on F-Droid and the implementation sucked.

LLMs could write perfect code in 2 seconds every time and you'll still be on the hook for figuring out what makes something fun to play and nice to use. In fact maybe even more on the hook since you wouldn't get to procrastinate by working so much on impl details.

But what are you throwing at it?

I've thrown a 20 year old .net 4.8 codebase that's a mixture of proprietary sdks and legacy code and LLMs choke. Building some greenfield pieces for the same application works great so far though.

I've also made some plugins for some hobby software with very limited viewing of source code that I'm very happy with.


people get AI psychosis because they see tailwind-infused gradient dashboards and think every codebase has much smaller problems than this, so AI can build everything else

we have a 6 year old codebase with pretty much everything proprietary and there's no AI that can keep up without having an entire team to create an in-house RAG and throw thousands per day in tokens and spend expensive developer time on reviewing and asking for stupid changes that don't fit in

these arguments would make much more sense if tokens were practically free and LLMs could run in pc graphics cards, but when the model requires a data center that can be seen in space just to give you 100 tokens per second then you're basically a car in 1900 when all the roads were dirt roads for horses


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.


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.

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)


Yep. For a lot of problems, I can build a prototypes with a few lines of bash, or spend the time to create a proper gui and have error handling. The first is not difficult’ no need for AI. And if I’m going to invest in the second, the “slow is fast” approach is often best

This is why I love working on open source (not as a part of a job) so much. No one is going to be upset with me that I took a week instead of a few hours to implement something. No one is going to pressure me to use an LLM to work faster.

On one hand I'm really afraid that in a few years, developers won't actually know how to develop software anymore, and the LLMs won't actually get good enough to make up the gap.

On the other hand, if that does come to pass, my still-sharp skills will be in even higher demand than they were pre-LLMs.


> 5 minutes... what about 5 hours, or 5 days? Imagine spending 5 hours with a pen and paper sketching solutions.

yeah, that's the dream. I do it whenever I get the opportunity to


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!


If 5 hours of thinking time to solve a problem is unthinkable to some people does that mean they have some form of Attention Deficit Disorder, be it a natural thing or introduced by an over-dependence on LLMs? Like stopping for an hour to think through a problem is unfathomable and instead they would rather hit small dopamine spikes every few minutes from talking to a chatbot?

I think you're onto something. And we're on a fast path to normalizing, even encouraging, this kind of behavior, so I'm very worried.

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.


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.

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.


Why do you think that brain surgeons "think this through"? They just get on with the job, one brain after another. Same with legal services.

And "getting on with the job" in those professions involves stopping and thinking.

Are you only alive to be productive?

From an employer's perspective, yes.

All I read about if productivity, but where are all the products? I keep reading about a lot of work, and I still see little to show for it. Why is the vast majority of software still utter shit (and getting worse)?

I think our entire field would benefit from us taking the time to think a bit more. I have no opposition to LLM usage either.


> 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.

Makes me think of Japan, where young people learn to recognize kanji. They type the sound of a word into a computer, then choose the appropriate one.

When they have to write by hand, they often draw a blank (not only children, I had a university professor I knew temporarily forget the character for "police").

An article from 2012 said that 66% of Japanese surveyed believed that they were losing the ability to write kanji.


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.

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.

Before LLMs I noticed I would never rethink a problem if I thought a solution could already be recalled from somewhere else. That might have been a book, a colleague, or some work I've done in the past. Only when I really needed to would I actually think and come up with something.

Now it seems like the need to think is rapidly going away. More and more I realise I'm not actually needing to think about anything. I'm not worried so much about losing my ability to program as I am about losing my ability to think. Programming without thinking is the worst kind of grunt work. I wanted more time to think and less time typing, but it's just far too tempting to not bother thinking either.


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

Yes. In a few years we all have shrimp-brains compared to AI.

The only thing to be proud of will be that we are genetically close to Sam Altman, the Creator of AI and über-shrimp.


Never beating the cult allegations. Have you tried offering to suck his dick? He's into that sort of thing.

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


Oh yeah. I discovered this back in February. Faster and cheaper is better, because faster means you can focus.

Frenetic multitasking is for suckers.


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.

Do you use luna to plan as well, or is it just code? I am interesting in understanding the process you follow.

My workflow is the most common one - use something like Opus to help create a spec document (I decide the specs and then get the LLM to ask me questions to harden it), then generate a plan, and then implement. I use Opus the whole time. Sonnet sometimes if it is a simple task.


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

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.

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.

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.


> you'll gradually lose the ability to think in a programming language

So be it. It's fine. It will be fine. At some point I knew assembly well enough; I read hex fluently and confidently changed things directly in some random-looking files. This skill sometimes comes in handy (even today) when reading network packets. How many people today need to really understand offsets, field sizes and padding, so shit like: "bytes 12-13 are the EtherType" feels natural? What percentage of programmers actively creating software need to know how to read, say, exploit and malware traffic?

Some may say: "well, this is enormously important", but the reality is, "no, it's fucking not". For like 95% of programmers, it isn't.

And the number of programming languages I had to learn and then forget later... The point is - you don't need to be "thinking in a programming language". You just need to be thinking, period. Whatever language it will be tomorrow, it really doesn't matter. Cuneiform tablets with math still hold the math even though nobody in the world does any math in cuneiform anymore.

Technology has always been moving from lower abstractions to higher ones, and that's a normal cycle. Why is it so inconceivable to think that most of the software developers of tomorrow would have no idea how to "think" in Python, C++, Java, or Clojure? Does every car mechanic need to be able to explain the principles of a combustion engine?


> Does every car mechanic need to be able to explain the principles of a combustion engine?

Probably. I’d certainly not want to use a mechanic who doesn’t understand the combustion engine, or who is incapable of giving at least a high-level overview of it.


Not sure that's right in general. Steam trains -> electric trains, ICE cars -> electric cars, thermionic valves -> transistors, copper wire -> optical fibre, incandescent bulbs -> LEDs, CRT televisions -> digital televisions, film cameras -> digital cameras. Same sort of thing with more efficient technology.

For software, we've gone from machine code to high level languages, but were still writing algorithms, which is the important thing as you still use your brain for that. Until vibe coding came along.


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

Thanks. The code (here: https://fmjlang.co.uk/fmj/tutorials/TOC.html) isn't text, it's directed graphs.

I gave it a try, does it look like it got it right?

https://files.catbox.moe/nbcyg7.png

It's a program that draws the Claude logo.


I don't think it's right but if it got as far as it did it could be corrected after several rewrites, so not a complete failure and not bad for a first attempt given the limited documentation I put on my web pages.

If I'm reading it correctly, polar is a function which is supposed to convert from polar to Cartesian coordinates, and rayPolygon seems to convert a list of polars to a list of Cartesians. But it's unclear exactly what it's doing. Also, there is no fillPolygon or fillEllipse.


Out of curiosity I saved one of the images to my disk (the first image on this page: https://fmjlang.co.uk/fmj/tutorials/IterationAgain.html), then asked LLM about it, without any context:

> prompt: /tmp/iterReverse.png what could this image be?

Thinking:

> Identifying the visual dataflow language from the node layout and iterReverse label, likely Prograph.

> Confirming Prograph identification and mapping node roles to list deconstruction and reconstruction.

Answer:

> This is a Prograph method window, for a method called iterReverse.

> Prograph is a visual dataflow programming language - you program by wiring boxes together instead of writing text. What you're looking at is the implementation of iterative list-reverse:

    - big box = method editor, top pins = inputs, bottom pins = outputs                                                                                                                                                                        
    - black circle top-left = method icon                                                                                                                                                                                                      
    - yellow boxes = controls: start*+, when*+, unless*+, repeat*+                                                                                                                                                                             
    - blue boxes = list primitives: null test, decons split list into head/tail, cons prepend                                                                                                                                                  
    - red lines = data links, green = the small control / boolean wiring
> In other words: if input is null, when succeeds, else unless loops with decons / cons + repeat to build the reversed list.

> The window chrome with Save / Close and that style of drawing is the Marten clone of Prograph running on Linux.


It isn't Prograph, but there are some similarities.

If you've "avoided using LLMs", how do you know "you'll gradually lose the ability to think in a programming language"?

I had a career for 18 years but I'm ready to leave programming behind. Its funny I never successfully learned Haskell, tried a couple times. Unlike probably most people here, programming was not something I felt was a "calling" - I started fairly late at age 17 or so and it seemed like a decent way to make a living, and that was sort of true for a while. But now in my early 50s, that is no longer even "sort of true" (no paid programming work for years now), so IMO its not useful for me to spend energy maintaining that skill. I still eyeball some of the code that Claude gives me, but that's about it.

Programming, at least for me, is rapidly going the way of the dodo bird. Time to spend what I managed to save for retirement, a bit earlier than I expected, hope it lasts.


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.

If your job makes you hate programming, why do you stay there? Sounds miserable.

If you think that is bad, you should sample poverty.

“Programming job you hate” and “poverty” aren’t the only two choices.

Hyperbolic to be sure, but I think it’s fairly common for people to get into programming for fun as a teenager, turn that into a well-paid job, realize that programming jobs are often entirely different from programming as a hobby, then feel trapped because all the experience they have is in programming, and finding an alternative starts to look like competing with recent college grads for entry-level office jobs (ask a 22 year old how that’s looking these days), an expensive degree, or something menial for $15/hour or less.

First world problems, perhaps, but also a microcosm of our broader societal divergence, where a reasonably comfortable middle is increasingly being replaced by growing working and upper-income classes, with very different lifestyles.


If only we could all snap our fingers and have our dream jobs.

Inability to get a better job.

Adults do that often.

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.


Machines eliminate drudgery, freeing up time for better, more important things and doing things efficiently creates abundance. Simplicity is romanticised, I'd like to let things that can do themselves go do themselves allowing me more time for the fun parts. That's not to say 'turn off your brain' but backbreaking and mind numbing work isn't fun or noble. Whoever's doing it would rather not do it or has the option to NOT do it but chooses to. Those aren't the same thing.

> 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...


"hold on, let me ask Claude what I should think about this topic."

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.


> 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...


> workaround the bad decision (instead of undoing it)

I'm convinced that LLM-generated comments accelerate this problem, because they embed twists that a human didn't choose, and then those affect what gets generated next.

Much the same way LLM-characters don't do so well at answering "I don't know", there's a problem of them failing to cull context.


I delete all comments (except one liners that explain meanings of non-obvious constants / register values, etc.) from actual code, and just keep a plaintext README of overall current concepts/design in the given directory that has to read as a human useful prose (eg. have a defined audience, describe unfamiliar concepts first, then goals, how they are achieved, benefits/drawbacks, quirks).

Code is easier to look at/read that way. I skim the README, then read the code.

Otherwise code comments are just nuts and unmanageable, because there's no hard/enforcing feedback loop on those. They can contain anything, even non-sensical things, old information/decisions, history of development, wrong information, contradictory information, and code still compiles. There's no pressure to keep them in check.

Lint step that fails build if code contains long comments is also useful as a hard-constraint.


> 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


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.

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.


> 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


Why would you want to be pissed off when you could be excited?

Excitement is for when good things happen.

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


> 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.


The CEO vibe-coded an app last week and shat it out onto Railway, contravening the company's security, testing, and CI/CD practices. As far as he is concerned, that is proof that LLMs are a massive productivity booster, and as such must be used by every employee in the company. An agentic workflow which is to be accepted as standard and used for all future development companywide is forthcoming from upper management. Keep an eye on your calendar for the meeting explaining it.

P.S.: An employee discovered, five minutes after deployment, that click events are not properly handled in one of the app's buttons, leading to visual and behavioral glitches.


Programming is all about creation. If i am in project doing mundane things it kills me. LLMs enabled me to explore fascinating new things that would otherwise have spending too much time on setting up, reading tutorials etc etc. That said, i believe that the need for programmers will decrese but will not go away. Managers need people to manage ;-)

I feel like I was a line-cook in a bog standard eatery, stressed, drinking to cope and hating the work but now they've replaced the cooking part with using a microwave. The last thing I enjoyed even though I hated it in aggregate, is gone from the job, the skill expression.

There's always going to be skill expression, whether you can find a way to make that part of it interesting is a different question.

This is great for personal projects, but at work chances are someone will have completely rewritten/refactored/rearchitected everything I'd built up a good mental model of next time I blinked.

Yeah, further reducing emotional attachment to code at work is a yet another benefit of LLMs.

Changing code without justification is still very bad.

LLMs aggressively rewriting parts of the system break the mental models people have built. The less people have a accurate mental model of the system the more quality will suffer.

Most emotional attachment to code I have seen is a byproduct of understanding the code and being averse to breaking that mental model.

Doesn't mean sometimes people need to look past that and accept change. Reducing attachment though implies less people are understanding the code.


Wow, I had never considered it, but it really seems like a huge benefit that all implementations in the company codebase are now perpetually refactored.

It's all fun and games until SRE gives up and hands you the pager.

> are now perpetually refactored.

Sounds more like a fantasy than reality...


If I'm totally honest, I lost my interest in programming. There's not really much money to be made, I'm not efficient enough for the work force and the people I end up working with are mere shells of people. Not everyone, but they end up leaving the company anyway.

I'd rather use my time in a field that is rewarding. Somewhere I can find like-minded people.


> I'd rather use my time in a field that is rewarding. Somewhere I can find like-minded people.

Such as? Can you make a living out of it?


Enjoy falling down a few economics levels I guess.

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.


It's the difference between constantly reviewing someone else's code and getting to write the code yourself.

There's both deep satisfaction and deep value in having an understanding of the past, present, and notional future of the system (especially at scale). If I use agentic tools to do the actual coding, I never feel like I have as deep an understanding of the implementation, it's inherent assumptions or lessons learned. Over time, my understanding of the system atrophies badly enough that it becomes difficult to steer the LLM, instead of the other way around.

This is what makes those "unicorn"/great managers who both manage well AND maintain a clear understanding of the system over time so amazing.


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.


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.

> For me, writing the code (literally typing), shifting files around, renaming things is slow.

Did it ever occur to you that slowness is good because it gives you time to think?


I remember enjoying myself more as an intern in a fullstack capacity than I did when I was given the job full time about three months later. But that was 7 years ago.

I also remembered the sheer joy of forking enterprise codebases like that of cal.com and highlight.io - just to study and try to understand how large teams worked. I followed issues, I read through PRs and related comments, looked at how some of the comments were resolved. I studied the various moving parts of the app - highlight especially being effectively a log ingestion and aggregation platform, had some rather large infrastructure requirements - kafka, redis, postgresql, clickhouse. It was hard to run with infrastructure directly on your computer. You had to use their docker containers.

I also remembered reading through a tutorial for an sqlite clone in C. It was interesting. I particularly enjoyed typing out the C code and even trying alternate implementation of b-tree operations.

I remember back in 2022 - after I was unemployed for a while - I discovered open source bounties on algora.io (LLMs have since made this platform go bust). I was able to earn roughly $300 per month for a while working on open source issues ranging from $50 to $350. Now most $50 bounties can be one-shot with frontier models. So of course, no one posts open source bounties anymore. If you do, you may just end up with 50 slopped PRs.

Just random thoughts.


yeah. My rule of thumb has been to use LLMs to compress the distance between an idea and working software, but never outsource my understanding of how each piece or component fits together.

For example, when I'm working on something, I intentionally don't use an LLM to break down the problem. I take the time doing that myself, including defining the implementation details and my style preferences. Then I use plan mode in tools like Cursor or Claude to generate a detailed technical design.

Before I hit build, I read through the plan carefully and make sure I understand every part of it. I want the file structure, component boundaries, and overall organization to be exactly how I intend them to be.

Ultimately, the goal is to make sure "I own the solution, not the AI"


Here's the prompt I'd ask AI about on this topic ironically and unironically:

Some programmers are distressed by AI and say they do not enjoy programming with AI's help. What tips do you have for them to continue to enjoy programming?


The best use case of LLMs for me is as learning tools. They are very good in generating tutorials in a style suited to your way of learning. I generate a lot of tutorials and cheatsheets for new concepts and libraries I plan to use.

I just realized that the last time I wrote a for loop was in November 2025, so it’s been ten months.

The previous time I had this kind of break from hands-on imperative programming was in… 1987.

I was seven years old when I started doing BASIC, and though interests came and went (at one point I went to film school), I never stopped coding entirely. Until now.

The amount of code I’m producing today is higher than before. I’m now also middle-managing a team and doing what’s effectively customer-facing product management, a combination that has become bearable thanks to AI. But it’s hard to shake the feeling that something is permanently gone from my life.


For the last four years, this is what LLMs have been doing as modus operandi:

1. here's thing you asked for. And here's a lot more you didn't ask for.

Then I notice there are mistakes, so I point them out. And I get this pattern:

2. Oh yes, sorry for that and thanks for pointing out my mistake. I think a better thing to do that would have been XYZ.

Then I see that the output is far from what I originally had in mind. I steer the LLM back by saying they have strayed and made the thing far more complicated than it should have been. And then I get this pattern of responses:

3. Oh right, you are right, I unnecessarily complicated it. Let me tackle it differently, simply just as you said I should.

By then I have run out of tokens, so I have to wait. When I have tokens again, I restart the convo, and once I get my 'solution', I notice that the LLM has done additional things in there that make it clear, at a glance, it was done by AI. I don't mind that so much as these create clutter and are totally unnecessary. So I ask it to clean it up and remove all those frills I never asked for. Then I get:

4. Got it, getting rid of those extra things.

Now the outcome I have is still a far cry from what I originally had intended to have. I would have been more efficient but definitely happier had I hand-coded it all by myself in the first place. It's not like I have to type everything out anyway, good IDEs already have made me fast.

There, now don't worry about AI taking your job. They can't and they won't.

PS. Pro-AI midwits will downvote this (it's a pattern on HN when you say sth against AI you get downvoted, so if you think I am right, please upvote so as to counter those midwit downvotes. It's a shame one has to change one's opinions in order for the opinion to be available to read. But I won't. I will say what I think, regardless of the downvotes).


I'm a pro-AI midwit and I've upvoted you, but please don't solicit upvotes, it's against the site rules...

The article resonates with me. I am easing back off of vibe coding. Now I will use dsh with a deepseek-4.1-flash commercial API occasionally, but now run Laguna-xs-2.1 running on oMLX locally for code reviews, and routine code changes. I am “devolving” back to doing most work myself.

LLMs are transitioning programming from a profession to a hobby. We've seen this happen with several professions that have been largely automated. People still enjoy blacksmithing. Luthiers still enjoy hand-crafting guitars. Both are economically impractical, but people enjoy doing it. Some are even able to monetize their hobby, like lots of people on YouTube do.

I don’t know if this is 100% true because there’s value in writing code for education and idea exploration.

I find it saves tokens and reduces slop piled on slop to have a foundational technical grasp of the technology behind your projects. And that means writing code for exploration and scaffolding.

Agents are such rich BS machines that I also don’t trust them. So I frequently debug and dive into my code rather than letting an agent layer brittle fix on top of brittle fix


Most of my enjoyment came from the feeling that I'm learning and becoming more capable with every bit of new code I write. That has completely evaporated because agents are gaining ground on my formely exclusive abilities far faster than I can acquire new ones. No solution seems to be in sight.

My enjoyment is shifting from this to having a well designed, tested, good looking, and very usable hobby SW, with features I need and can play with or do fun or useful stuff with. :)

I can also work on very fun things with computers now, that I'd just not even think of previously. I just love the idea of the program, but I'm not interested in learning details of how to implement it. Last such thing is teaching computer to dance and improvise Bachata to music. :) Yeah, I can spend months on details of 3D, or physics simulation, or skeleton animation, or things like that, but that's not what I'm interested in. I'm interested in the dance aspects itself and matchin to music, and lead-follow simulation (where the computer plans the lead actions to some extent, and follow is just a reactive machine with some degrees of impovisational freedom) and all the details of how the actual skeletons are visualized on screen I literally can care less about. All I care about is impairing knowledge of freedom of movement of lead and knowledge of freedom of what can be led while hands are connected or visually by what follow can observe and lead can signal through intentional movement, and not how the program will execute this.

Nothing like that existed previously, and I would not be able to get to fun interesting things without wading throught shit ton of uninteresting parts. But now I within a span of 24 hours have something that I can have a base implementation of a 3D dance lead/follow emulator with weight transfer, balance skeleton joint lead-follow hand connection weight trasnfer and ground connection based emulator that I can paly with emulating the dance on top of, and I can focus on the actual dance/music conenction, and tiny details that make the emulated dance look fun, surprising, natural, and fit Bachata style and playfulness.


> I just love the idea of the program, but I'm not interested in learning details of how to implement it.

LOL same cope as steroid abusers.


Seek help.

For tasks you don't want to do (such as work-related ones), use an LLM.

For tasks you enjoy, write them yourself.


I don't understand these posts. I've never been more excited to program. Everything that I disliked about it disappeared overnight.

Who likes typing code, writing boilerplate, reading bad documentation for nights looking for that small thing, asking around in forums, reading dependency source code, writing trivial unit/ui tests.

And who likes planning, architecting, directing a team, steering and giving advice, reviewing code, designing interfaces and APIs. Coding became more mentally exciting.

LLMs truly took the worst of this trade, and left all the enjoyable things (which they will be unable to do until AGI = for a long time if ever).


> Who likes typing code, writing boilerplate, reading bad documentation for nights looking for that small thing, asking around in forums, reading dependency source code

Me? I enjoy that stuff for what it is. Reviewing code is definitely not the truly enjoyable thing. Writing code, expressing my logic in code. That is enjoyable to me.


And I'm sure elevator operators stood pressing buttons long after they didn't need to...

We're going through a change in software development. People can either move with the times or hang on to their old way of working and age out of the workforce. Either through biological age or just being left behind by those moving with the times.

There will always be those that still think they can code better/faster than the models. It's a combination of professional arrogance, and struggling to let go of a skill that took them decades to acquire which lost its value in a few short years.

It's hard on people, it's hard for those with lots of experience because they are being left behind, and it's hard on the juniors that went into CS thinking it'll be a well paid job for life only to find they aren't needed anymore.

It will take longer than we think. Those of us in the industry have a few years yet, things always change more slowly than anticipated, but all these HN'ers still whining about their emotional attachment to code/coding that can be trivially recreated are just in denial. Are models perfect today? No of course not. Just like most programmers. But they are already better than the majority, and they are just getting better. Coding is over. Software development is of course just fine. We'll just learn new and better ways of solving human centric problems using computers. Just like all the assembly programmers did.

The value of Instagram was never the code. The code was just a means to an end. Well, the means have changed.

I feel for those who lose their livelihoods. That is obviously awful and no amount of "things change" rhetoric will ease that pain, and I have no ideas for those. Sleep under your desk and buy the market with every cent you earn for as long as you continue to earn and hope the market grows 10x in 10 years like Musk predicts and just hope to be on the right side of the industrial change.


You’re talking past me.

I’m lamenting the change because the thing the love about this job is being ripped away from me.

I’m still far more adapted to this than my coworkers though. Hell I have a GB10 box I run local models on for fun.


Says the pro-Elon shill who is just here to boost xAI and demoralize people.

But you can still do that, much easier, with plain human words.

/yes I know a coding language is 100% better at expressing algorithmical logic, but it is definitely harder for humans to comprehend and express cleanly at a consistent rate. machines do that way better/


No, it's actually much, much harder unless you are ignoring any of the details, which are the things that actually matter ultimately. When you were first learning did they not do the "tell me how to make a PB+J sandwich" or whatever to show you the imprecision of plain human words? You may comprehend the LLM I/O easily, but you don't know that that matches what's actually happening.

It's like saying who likes to ride a bicycle in the world of cars, you can do it much easier with a plain steering wheel.

Well... sure it's more efficient (although in some cities and certain routes it's not; same with coding and LLMs). But some of us just love riding the bicycle and enjoying the nature, you know. Perhaps even strengthening our muscles as we do it, as a healthy side effect.


> but it is definitely harder for humans to comprehend and express cleanly at a consistent rate

Part of the skill and joy of programming is to constantly work on improving my ability 'to comprehend and express cleanly' my intent in code.

I'd argue LLMs are anything but consistent.


I definitely comprehend coding language better/faster when I want to fully understand a program. I usually skip docs and go to the sources when possible. I think it's deeper than just the code though, the biggest thing I haven't seen in using natural language is good organization to express the program.

I think the premise is that yes, you can do that. However many don’t and many in larger corps are pushed expressly to not work that way.

> But you can still do that, much easier, with plain human words.

Not really? In my experience, to get anything precise done, you have to fight the LLM every step of the way. And then when you come back after a few days, you realize that it has overwritten the carefully crafted code or data structures.


> And then when you come back after a few days, you realize that it has overwritten

1. Review what it writes as it writes it

2. Give it a smaller, more focused, scope to make changes

Or, keep vibing but then don't get mad about it.


Oh, if I had the ability to do these things, agents would be much nicer to use.

Sadly, at my current company, this doesn't seem to be acceptable practice.


What do you mean? Because management says it makes you too slow? Or is it unacceptable for some other reason?

Unrealistic deadlines, productivity being measured in PR counts and tokens spent, and generally a 100% focus towards having a software factory produce all code.

In our latest evaluation, one of the criteria was whether you trust AI, with "trust" being defined as letting the AI write all the code, without reviewing it. And of course, not trusting AI meaning that you were behind the curve.


You won’t hit your PR count metrics that way, sadly.

> But you can still do that, much easier, with plain human words.

Skill issue.


Luck issue..

If you are lucky, your question have a good representation in the training material and the randomness is on your side..

But the LLM won't tell you that, so until you test your luck by taking the answer from LLM and using it, you never know..

But then, the AI company would have run off with your token payments...


That's great for you, but you're completely devoid of empathy if you can't understand these posts. For many, many people, the things that are left are not the enjoyable ones. People have built hobbies and careers around doing something they love and its relevance is evaporating at an unprecedented rate.

> And who likes planning, architecting, directing a team, steering and giving advice, reviewing code, designing interfaces and APIs. Coding became more mentally exciting.

I love these parts. But in my experience, LLMs break much of that.

Planning/architecting? Great. So far, I haven't found any agent that actually follows the plans set out, though. They get something wrong, and it snowballs from here.

Directing a team, steering and giving advice? Absolutely. Some of my greatest achievements involve mentoring. But human teams learn from their mistakes, grow up and contribute insights. Agents don't.

Reviewing code? Well, maybe not so much fun, but it's usually a good way to understand what's going on, and to share experience. Except with agents, you need to spend most of your brainpower seeing through the misleading comments and documentation and choices and sycophancy, and the agent never learns from its mistakes.

Designing interfaces and APIs? Absolutely. Yet every time I look at code modified by my agent, I see that the contracts (internal or public) have been broken by the latest edits.

In my experience, LLMs can be very useful, for refactorings and as learning and review assistants, and sometimes as replacement for missing documentation. But codegen is the worst way to use them.


Why exactly do you think LLM'S will be unable to do planning, architecting, code review, interface and API design? Given good enough specs, they absolutely can do these things.

I feel like coding will be dead soon, and what will be left are project management / team lead / product owner kind of jobs where you craft specs and steer AI agents on very high level. I would hardly call that "coding" anymore.

What I dislike of the status quo is being stuck between traditional programmer, and such project management role. With AI coding I can't really get into a flow state anymore, and without flow state it's hard to focus on the details.


>I feel like coding will be dead soon, and what will be left are project management / team lead / product owner kind of jobs where you craft specs and steer AI agents on very high level.

And these will be gone, too, a couple months later. Or possibly even at the same time.


>Who likes...

People other than you, I guess. I think your first chunk is a bit of an unfavorable perspective, but still I would take that over the second every time.


I'm with you. During most of my career, I was considered very technical and a good coder, but I never really loved the slowness of it. I enjoyed designing solutions but found "putting them into code" tiresome because for me the fun is in actually solving the problem.

But it's clear that many people feel otherwise. Software engineering has many classes of tasks and the difference in opinions about AI seem to exist because different people like different aspects of it.


Can you draw such a clear line? I put out some thing to experiment with an idea and then iterate over it till i get a solution and then spend time trying to polish that for production use. Thinking and coding are very rarely two separate states for me.

It's not that clear and still involves coding. But as I start coding and modules/APIs/classes take shape, it gets to a point where I say "ok, from here on it's just filling in the blanks".

But filling in the blanks can still involve a lot of grindy, time consuming work where you iterate through collections, build parameters for other APIs, check invariants etc. All of that stuff is boring to me.

What I'm trying to say is that most coding tasks require "senior level thinking" and "intern level thinking". The latter can sometimes be the majority of the work and I don't want to do that anymore.


There have been a number of articles on how there are coders like yourself (who enjoy the destination), and coders like the OP (who enjoy the journey).

Both are valid viewpoints, but it's obviously harder for the latter group right now, because LLMs really have taken away the most enjoyable part of coding for them.


This !! I like the thinking and behind programming . My most fun has been solving programming puzzles on sites like leetcode and codeforces. Most day to day programming is about solving business problems which are mundane need directing teams , designing interfaces , api's etc.Sure it helps to have some experience when designing API's and interfaces but thats something that can truly be learnt in a year . Architecting is definitely fun but to build a real system that can stand the test of time takes years and years of understanding the problem you are trying to solve .Any decision you take will take some time before you see the impact and then you take those lessons with you for future architectures . Something that LLMs can never take away.

> Who likes typing code, writing boilerplate, reading bad documentation for nights looking for that small thing, asking around in forums, reading dependency source code, writing trivial unit/ui tests.

I, for one, liked it. I decided to pursue a career as a software engineer because, for all the downsides, I actually enjoyed working with code so closely. It really allowed me to learn and know the code that I wrote.

Whenever I'm using LLMs for code generation, the one huge downside I notice, is that even if I review everything line by line, I don't get the same "I know precisely how it works, because I wrote it" feeling.

I really wonder what the implications of this will be. For instance, if the young devs who are just entering the field will actually be able to write code on their own? Or maybe it will truly not be needed a few years from now?


I think there will be a divide. The SaaS of the future can probably absorb much more LLM use with less knowledgeable devs, because the product not being trash was never critical; it just has to be good enough that Sales can keep convincing people who won't use it to buy it for their orgs. But for things that actually need to be right, there will always be a need for devs who can understand and write code. There has already been some pullback among a few of my colleagues who were riding high earlier this year because what we're working on is more of the second type.

That's why I like to tell myself that systems programmers like me will be eaten last, but there's already so many things the agents can do better than me that I think that's just whistling past the graveyard...

Coding is solving puzzles creatively. When trying to achieve an overall goal, I get some easy problems that remind me how much I've improved since I started out, and some hard problems that are intellectually stimulating. Debugging, reading documentation or source code feels a bit like being a fictional detective running an investigation; plus I'm not just improving my understanding of the system but connecting with other humans through understanding their intent. And finally, I get to choose which solution to implement and how, therefore expressing myself and my own taste.

I come out of it intellectually stimulated, with a sense of achievement and improvement and increased understanding; with also a bit of human connection, and creativity. And of course I also get a working program, so I feel productive too.

If you don't understand this you never enjoyed programming per se. It's fine, people like different things. But I think you might be mistaken calling whatever your job is "coding" or "the trade" because I get the impression it just isn't.


>Who likes typing code...

Mmm..almost everyone who loves programming. If I hated typing code, I would not been a programmer, because it used to involve a lot of typing.

Or else you did it for $$$. But then don't assume every one who programs hates typing code.


Or maybe you did it because you had ideas for things computers ought to be able to do, and needed to get those ideas into the computer?

For many years? I don't think so...

I’m not sure which group you consider worst but LLMs already does both. I can only vouch for Opus 5.5. It just needs someone to tell it to do it that’s all. And I am the most anti AI person this post is targeted to.

> I don't understand these posts. I've never been more excited to program. Everything that I disliked about it disappeared overnight.

Based on your post, you never liked programming in the first place. You liked having software. Typing the code in, reading the documentation, all that stuff is programming.


I'm becoming more and more certain that there are two kinds of people in the world: those for whom the end result is the main point, and those for whom the journey there is. Generative AI has revealed how stark this divide is.

I'm not saying either type is better than the other, but the recent technological changes certainly have put a lot of wind in the "end resulters'" sails. They must not be allowed to hijack the definition of programmer, hacker, geek.


It also makes me think there's a divide on how many steps people choose or are able to see ahead.

They tell people who liked the journey that they're way is inefficient and you need only prompt to build, not seeing that in two years they're boss will be saying the same thing to them because they don't warrant the salary to pay them to do the same thing anyone with an idea can do.


> Who likes typing code, writing boilerplate, reading bad documentation for nights looking for that small thing, asking around in forums, reading dependency source code, writing trivial unit/ui tests.

Me! I do!

> And who likes planning, architecting, directing a team, steering and giving advice, reviewing code, designing interfaces and APIs. Coding became more mentally exciting.

I'd rather eat rusty barbed wire. I'd avoid your middle manager hellscape even if if doubled my salary, I swear!


If all you do is write requests and then have the LLMs spit out the code then you're not a programmer, you're a middle manager. So maybe you never actually wanted to be a programmer but instead you liked having things built?

I think you’ve forgotten about the “software architect” role.

If all you do is write requests and then have the LLMs spit out the code, then you’re not a programmer, you’re a software architect.

Middle managers have to supervise people, otherwise they are not managers.


Aren't you managing AI/LLM Agents in this case, that write the actual code?

Spoke like a true manager.

You should check out HandWaveLang.

It doesn't exist yet, but you could easily create it.


> Who likes typing code

Hackers.


It sounds like this message isn’t for you then?

> And who likes ... reviewing code

I was with you on your second list until this part. It feels like a poison pill rider that's added to a bill in Congress, because I've always found code review to be the single most soul-sucking aspect of the job.

I'll grant that may be at least partially due to poor practices at the places I've worked, but semi-regularly having large PRs that take hours to comb through and where you either rubber-stamp it or look like the bad guy (because you're retarding release velocity) has never been particularly fulfilling.


Large PRs that take hours to review (say >1K LOC) should be sent back to the author for refactoring.

I had great discussions in PRs, debates we would never have in real life conversations. In these times review is maybe the last holdout to think teams have control over the code. AI made also this nicer by making summaries and answering the stupid questions without shame before turning to the author with confident criticism.

Sounds dreamy. Let's plug in and "write" code without interacting with anyone ever. That way you can further abstract yourself from all meaningful connections to become more efficient. Seriously cannot get inside the head of people like you.

Agree. It's like people who dream of becoming middle managers in order not to have to do things themselves anymore.

I mean, you do you, I don't mean to shame people for whom management is the dream – I just find it weird and sad that they're trying to pretend that this is somehow how people with a hacker/geek spirit think or should think. To me it's antithetical to the hacker spirit.


that's because you are not programming

> Who likes typing code

It really does seem like the target audience of LLM users are people who never learned to use Vim.

> And who likes planning, architecting, directing a team, steering and giving advice, reviewing code, designing interfaces and APIs.

Why would anyone pay you to work for them if you aren't willing to do these things? This is the entire job.


Not commenting on the first “who likes” of whether typing out code is enjoyable (because I think that’s inherently personal preference [0]), but I think the second category is to be understood as “things LLMs enable you to do more of”, not things the author is unwilling to do. So actually, you’d agree with them there.

[0] Okay, I am going to comment on it some more: For me, it also depends on whether I’m “forced” to do the code writing (or reading) because I just want the resulting output or need to modify the program to my wishes; or whether I want to do it because it fulfills me, is interesting, teaches me something new, etc. Both can be true for one person at different times/in different contexts.


I have zero interest in manually creating software for solved problems - no text editors, no games, no utility tools. I like to write software for new problems and I love to solve these problems using code. I am not keen on typing source code by hand. If an LLM helps me speed up code creation, I will happily use it, because it allows me to solve my (business) problem faster. We are talking about efficiency here. If other people like writing code by hand and enjoy it, good for them. But don't complain that your hobbyist approach is unsuited for your career.

How are games a "solved problem"? If you're talking about games as entertainment then is not a "problem" to solve, they're games. If it's the tech you mean, then that problem is not solved either, if anything it's become even more important to try to squeeze performance out of ever pricer hardware

One thing I've been doing is to use it for:

1. Compare the code against production data with MCP. We use a read only platform called Metabase which reads one of the MySQL replicas. I tell the agent to fetch production data and make a static pass (it doesn't run the code) in which it compares shapes and inputs, and oh boy it has caught a few misnomers.

2. To debug production data and create graphs. It connects to datadog (where we store the logs), checks the history of the commits, and many times suggest fixes. These are for low-medium impact like validations that didn't need to go through, or a step check that it was missing

3. Creating tickets on the board (we use linear). Now PRs are more detailed and can be understood.

And for coding? I've been spending the last 4 weeks scrutinizing EVERY output and decision from frontier models, and pushed back in many decisions.


My lack of stress about AI coding comes from years of being a principal engineer. Where the job isn’t to write 100% of the code, it’s to set technical direction and ensure we’re going in the right direction as a project.

I both write code and use coding agents. Because I find it’s often easier to set technical direction by showing some scaffolding, then later letting the agent take over the details. I waste less time with my agent if I can show it roughly what I want.

Occasionally I get disconnected by what my agent colleague is doing (or it gaslights me) and I have to dive in to right the ship a bit.


This is the way.

Appreciate the read, even if the workflow's not for me personally. I've found that I'm just not that interested in writing the code by hand now that the option to not do so is available - but I totally understand people who still want to!

It's over. LLMs can produce any algorithm, any tech stack, any concept in seconds, minutes, or hours.

Writing code is like trying to build a house without powertools. Could you do it? Sure. But no one ever will, for most values of no one.


> LLMs can produce any algorithm, any tech stack, any concept in seconds, minutes, or hours.

Except when they can’t, that is.


I repeat for the millionth time, not everything is web dev.

Even with web projects, the issues of LLM coding tendencies and its lack of product 'taste' or whatever you want to call it are apparent. Janky UX, poor information transmission, bloated modules... it's just easier to sell web-based AI output because it's visual and interactive, and we are easily impressed by bright colours smooth animations.

I won't argue that the web is more 'capturable' by LLMs, though. It was maybe slightly out of reach by a large cohort of developers who wouldn't have considered themselves "UI people" (or who scoffed at it for various reasons), but now is well within vibe-territory.


This comment literally forced coffee through my nasal passageway as laughter erupted from my mouth.

Thank you.


Indeed, there are many other more varied domains.

Are no one using these models outside web?

Of course they are, but the quote "LLMs can produce any algorithm, any tech stack, any concept in seconds, minutes, or hours" is more true there than in other domains. "Any concept" is the most laughable.

There's many fields where LLMs perform better than webdev. Personal examples including embedded development and reverse engineering

Indeed, the OP's point seems very focused on programmers enjoying programming. And that's a perfectly laudable goal, but obviously this then means that the goal is programmer enjoyment, satisfaction, etc. If the goal is code that allows the user to benefit while also being correct and secure, then that drastically changes the economics and hence potential solutions of what parts of the work should be done by a LLM agent and what parts of the work should be done by a human agent. Economics is the study of the allocation of scarce resources to satisfy human wants; so what you want from code determines a great deal of how to get there with the greatest benefit and the least cost.

This comment highly resonates with me. I strongly believe coding by hand (defined as an act of writing computer code in some programming language) is moreless obsolete. I.e. my skill to implement dijkstra or quicksort in 10 minutes at 1am in 10 different languages while being hangover/drunk is absolutely worthless now. Software Engineering itself is more than just coding, the creative (and well engineering) part is still there.

>Writing code is like trying to build a house without powertools.

You know, it is called "soft" for a reason...


I think it’s more analogous to view LLMs as taking steroids while not going to the gym.


> Writing code is like trying to build a house without powertools. Could you do it? Sure. But no one ever will, for most values of no one.

If LLMs could be relied upon to produce a good result every time, then they would be like power tools. But they can't, so they aren't. Nobody would use a cordless drill that has a 10% chance of the drill bit suddenly moving several inches to the left of where you were aiming.


it can not not? moreover, it can totally ruin existing invariants, introduce dead code, falsify tests and sabotage further work by poisoning comments and documentation in a few hours.

Power tools cannot "produce any house in hours"


Don't concede the "power tools" analogy. LLM are not capable of building maintainable software.

So what are people like me, who fall into "some values of no one" supposed to do?

I guess just blow my brains out? Just.. Thanks for trying man, but you picked the wrong thing to specialize in, now you're completely redundant and worthless to society. Here's your cyanide pill?

God damn I'm so bitter about all of this. I was doing so well for a bit now I feel like I've completely wasted my life.


I remember the conversations a few years ago when tech automated many other fields and they asked the same question. What did they do? You could ask them.

There is plenty of historical precedent for machines replacing professions. You could read what those people did and how well it worked.

I'm not an expert, but I'm pretty sure it never worked out great for many of those people regardless of what they did.

That is kind of my point.

Why exactly do you think I'm so bitter?

Well if you realized that the profession will not return to the form that you enjoy you should try to accept that and find something different to enjoy. Being bitter is not a good method of coping with change.

Alternatively, you can listen to Jimmy Buffett's A Pirate Looks At Forty

Society is for people, people like you. Not the other way around. And your value to society is definitely not measured in what stockholder value you can produce for an employer.

> value to society is definitely not measured in what stockholder value you can produce

This is exactly the value of a person in all capitalistic systems. If we want to change this we need widespread socialism / UBI. Maybe Georgism.

The fact that you're a good friend or partner to someone definitely has value, but not something anyone cares about.


I'm so sorry if you really believe that your only value is your economic value. And as importantly, that you believe that you are for the economy, and not the other way around.

The only reason we care about the economy is because it is a means to improve people's lives. If it doesn't, it isn't valuable in any meaningful sense of the word.

And your friends and your partner definitely care about if your are good friend and partner, and what they think about you is enormously more important than what your employer or the stock market think about you.


I'm just telling you how the world behaves like.

Everyone's not walking around worrying about the gig-worker or the driver or the janitor, beyond the fact that that they get food on time, reach where they want to be, and walk on clean ground.

I even presented the solutions to these. Don't fake pity me - that's easy internet keyboard warrior thing. Do the work of changing the system you're part of.


There was no fake pity. I feel genuinely sorry for people that think that their value is only monetary.

It is only part of the world (or even the US) that behaves like this. And there's nothing given that says that the parts that do must. We can as a society choose differently.

And the problem with your solutions (not that they are bad in themselves), is that they will never gain traction while people believe that the economy is the end and not a means. It is easy to argue against socialism, et c., if you think that the economy is the only thing that matters. But it is hard to argue for the current system if you believe that what matters is people in themselves, not the role they play in the current capitalistic system.


This is why societies should make it as easy as possible for people to retrain / re-educate themselves. I highly doubt most white collar workers graduating today will be able to do what they trained for until retirement age. Programmers may be among first to see serious reduction in employment, but other office workers will follow.

If I knew what to retrain into I would sign up immediately.

Right now I'm just at a loss. I've never wanted to be anything other than a programmer before.


LLMs can produce some incredible bloated and convoluted pieces of code if one isn't careful. Even to the point LLMs become useless. Blindly using these 'powertools' is a recipe for disaster.

We'll already see the hype to start cooling down. If you're okay with cleaning up messes you need not be so pessimistic.


Yes, well, so can humans given the "right" circumstances, e.g. "enterprise" software:

https://github.com/enterprisequalitycoding/fizzbuzzenterpris...

Assuming the code is produced to serve human needs there will be humans in the loop somewhere. Not nearly as many as before and not in the same roles but they will be there

The advent of the Spinning Jenny, water frame and power loom (etc.) changed textile manufacturing for good and made the end result so cheap that it is now seen as disposable. There are still some people in the loop controlling the machines but not nearly as many as before and also not really the same people since it takes a different skill set to keep a textile production line running than it takes to spin and weave.

The same is true for the advent of the phototypesetting machine (Linotype etc.) and the offset press which irreversibly changed print production. There are still people in the loop but not nearly as many and with a different skill set.

Now what about the "Coding Johnny"?

Generative models are now doing the same to coders, irreversibly changing the software production process. There will be far fewer people involved and those people will have a different skill set. Software will become disposable, more like RNA then DNA, if the specifications change the Coding Johnny will churn out a new version.


> Yes, well, so can humans given the "right" circumstances, e.g. "enterprise" software

The difference is scale. Letting LLMs go out of hand is like the movie Fantasia. Sure people can make a mess on their own but with LLMs can do so much worse in such a short amount of time.

> Generative models are now doing the same to coders

Programming involves quite a bit more than just typing. However, typing the code does help with understanding. Once we stop understanding code because it's just generated AI slop good luck fixing the mess.

Now that even Anthropic and OpenAI called for slowing down. It's obvious that we're past peak hype and realization of the cost of LLMs will set in.


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, 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.



Maybe, and no.

Maybe, because I personally enjoy Emacs, but Babel cannot gather code from external files into a single place and then keep them in sync. org-babel can "tangle" source code blocks into an outside source files, but this makes the org document the authoritative source and pushes it outwards. I want something that treats the actual source code as the authoritative source. (I haven't actually used "tangle" though, so I'm open to correction.)

And no, because Emacs isn't going to be popular enough to be widely used.


> Babel cannot gather code from external files into a single place

Yes it can. org-babel-detangle copies edits you make in a tangled file back into the matching source blocks in the Org file. There's also `#+INCLUDE: "file.py" src python :lines "10-40"` and org-transclusion package - `#+transclude: [[file:foo.el::some-defun]] :src elisp` shows live content from an external file in the Org buffer.

Babel has no built-in way to import arbitrary existing files, but for the stuff that you make it make sense, it knows how to get its shit together back into one place.


Thanks. I'll have to check it out.

This sums up well the current zeitgeist, wow

  Afraid of loosing your job to someone with little programming skills, no aspirations to quality, and a huge Claude account?

OpenAI/Anthropic's marketing here reminds me of the way colonizers will exalt criminal groups in the regions they wish to dominate. Similarly, these AI firms have exalted a caste of lower-performing engineers who have been wreaking havoc with AI spam for the last few years. I'm not worried about losing my job and these people will become scapegoats when the bottom falls out.

I've lately been using LLMs to do a lot of testing and verification.

An LLM can go and pull files off NFS, and write and run verification scripts in less time than I can even think of a testing strategy or locate the files.

Sometimes they'll do it unprompted

For writing unit tests, which are often repetative and verbose, they are another godsend.

Overall they're freeing up a lot more time for nice things like thoughtful API design, refactoring, system architecture and design work etc.

For exploring massive codebases they are another godsend


Be careful with the goals you give for writing tests. Telling it that you want 100% coverage can often lead to performative tests that don't validate anything meaningful.

People are comparing this to tech automating wood work, knitting, baking etc. That comparison is fundamentally flawed.

You still needed to know how to operate those machines. Where to begin, when to do what. Know what’s right and what’s wrong. They are just tools.

Something like claude desktop can help regular people build, a fully functioning, scalable and maintainable program on any platform contrary to popular opinion. These harnesses are getting that good.

Only reason people don’t do that is because they are intimidated. Regular people don’t even understand file systems. As soon as an Apple-like version of claude code exists that intimidation will be gone.

I have been writing code for 14 years now and everything I learned from my failures and successes someone else can get for free. Even newer paradigms these LLM’s can dream up.

Its the democratisation, of that foundation people put so much effort building is what pissed off everyone here. Including myself I’ll admit.

Results of all these years of hard earned knowledge are accessible to any random person off the street without any effort.

I use claude code at work, even for architectural decisions it can iterate small prototypes to validate. I still read code because I am old school but it can replace most people.


> years of hard earned knowledge is accessible to any random person off the street without any effort.

Isn't this like saying "any one can paint now because every one have a camera?"..


That’s why I added “Results of” that knowledge in front of it. :)

But to be honest, an llm can also be the world’s most patient teacher who can conjure multiple examples if they ask it what was just written. I have seen people out of my field use terms only someone actively working in it would know.

Most people live without knowing how their cars, fuels, medicine, phones work anyways.


> llm can also be the world’s most patient teacher...

It won't throw a hissy fit. True. But what it does instead is that it will take you in circles instead, until your patience runs out..


> After just a few weeks of not coding and handing everything to agents you’ll notice that you have a hard time returning to coding yourself.

The trend is in the opposite direction though, keeping your capability for hand coding is not going to help as much as you imply. How many people know how to ride a horse today, or routinely multiply large numbers by hand.

The skill we need today is to compensate for coding agent blindspots and limitations, know their problems, have ways to approach those problems and still get code you can trust to be reliable and aligned with your intent.


> keeping your capability for hand coding is not going to help as much as you imply

> The skill we need today is to compensate for coding agent blindspots and limitations, know their problems, have ways to approach those problems and still get code you can trust to be reliable and aligned with your intent.

So you’re saying that you can stop being able to understand code, but you need to be able to coerce a weird flawed black box into writing good code, without understanding how good code (and good decisions about code) should look like.

That seems contradictory.


I think the skill we need is holistic systems thinking, which aligns with what you said. Essentially a good system becomes the guardrails for the LLM. There can be dozens, hundreds of aspects of a business or product that need to be considered at once to create a good system. Generally speaking I find by the time you have gathered all those aspects, explained them sufficiently to the LLM, it no longer gives good results. So a good systems thinker can take all that input, break it down into logical components and then get the LLM to work on those components.

You still need to keep an eye on it, because the components necessarily lack context of 100% of the project, but you the human can actually keep it all in your head and can catch the nuances.


I was laid off in April and decided to switch profession a bit. Move from creating things that can only be seen on screen to things that can be touched and be helpful. The pay is not good, but working on real things side by side with people, cursing loudly when it doesn't work and cheering each other when it does instead of "as-per-my-last-email"ing and nitpicking on PRs made my life feel more fulfilled. Soldering fumes and metal particles maybe aren't good for my health, but so was a sitting lifestyle. Now I almost don't touch a PC at work, my screentime is lowest in the last 5 years, grease replaced a moisturizing hands cream, but I no longer care about LLM/Diffusion slop that much.

So, if you want to continue programming, I can only advise to go for embedded/robotics, learn CAD (for 3D-print, CNC, PCBs, etc) and do things that can be touched. LLMs won't be able to catch up with you for a long time. You can still use LLMs to consult/rubber-duck, but they won't be able to replace you or walk the walk for you.


I think Coding, Programming and Engineering need to be separated.

Coding IMO goes the way of medical billing and coding; e.g.: Codification, and the abstraction of domain logic.

Programming IMO is the implementation of said coding within the context if a given system.

Engineering is the orchestration of all of it.

I do not fully understand this, or even know if its a new / differentiated paradigm but its interesting to me; not in theory but in practice. Especially given "chevron deference" and the current admin.


After programming for 40 years, my brain has many language parsers. But languages and interfaces and classes evolve and it been a huge productivity boost the use LLMs for coding.

I use AI like StackOverflow on steroids. And like using stackoverflow, I do it in a browser and I don't let the LLM touch my code.

I, personally, love programming more than ever!


Problem is in many places the AI push is to use agents for everything and so instead of writing code now you end up reviewing what the LLM generated for most of the day.

I dont have bandwidth to check ai made code

that's okay! nobody had the bandwidth to check compiler generated machine code either so we just stopped doing it

Its a false premise so often repeated. I am really tired. Compilers are ruleset: If you pass it one statement it'll produce the same output all the time. Its easy to verify it works. And if enough people have used it before and found no problems, there probably aren't many. Spoiler: People always find niche bugs.

But an LLM will generate you two completely different things today and tomorrow. Heck, even if you stash its changes and redo the same prompt.

They are NOT comparable at all.


Even though I disagree with (when I worked on CUDA at nvidia if I ran the TOT compiler on the same shaders one day and the next they could often change), the point is not to compare the two things side by side. It's just to say there are lots of times in life where for whatever reason we can give up old jobs.

Oh I dont disagree that it does replace some jobs. Why use junior developers when AI generates the same quality?

Just that comparing LLM to a compiler is nonsense. Because one is deterministic and the more using it, the better the quality will get.


When encountering a difficult problem, add an indirection.

That indirection, in the case of LLMs, is formal proof. It can actually turn an LLM into a sort of compiler. Where, if the compiler run completes successfully, you don't need another run, and you are sure it is correct.


Compiler generated machine code is however going from something (fairly) well defined (higher level representation) to something else about equally well defined (lower level representation).

In that sense it's a lot closer to translating Italian to English than what LLMs are doing.

I trust LLMs a lot more if I have a complete Go program I want them to rewrite in Rust.


Yeah, but compilers actually work reliably. LLMs do not.

Programmers don't work reliably too.

I find mostly what I do is think about how to improve the product, what the user wants, and what information the LLM needs and how to get it into the context window.

Sure. Ultimately it's still you who is responsible for the code you ship I assume, no matter how it came about.

> Don’t just let it research something, accept its results as facts and plan from there. This will lead to embarrassing technical dept.

I assume that is a typo and he meant “debt” but it is very, very funny, and true on a profound level.


strange how many people cant seem to enjoy programming just because LLM's exist...almost like they didn't like it to begin with and there was something else about it they enjoyed more? what would that be?

those are the very people who weren't into programming for the fun of it in the first place. just ignore them.

Thanks for sharing. It might also come down to whether we see programming as an end in itself or as a tool.

I think since LLMs make code generation cheaper, we are left with more complicated, often more socially demanding tasks. Programming is becoming even less "leave me alone and let me write code" (on average). This can lead to burnout for many people, but this exploitative capitalism doesn't care.

I don't understand what's difficult about enjoying programming now that LLMs are everywhere. It's akin to musicians who still play their instruments despite having the ability to stream any music they'd like. Nothing's stopping them from playing their instrument. Why is programming any different?

The problem is skilled artisans like musicians and programmers used to be _neccessary_ for the work to be done, now technology means in many cases the practical approach will use machines instead of humans for the majority of cases. handcrafted is better but a luxury. The enjoyment of being needed is what’s lost.

> I don't understand what's difficult about enjoying programming now that LLMs are everywhere. It's akin to musicians who still play their instruments despite having the ability to stream any music they'd like. Nothing's stopping them from playing their instrument. Why is programming any different?

Because a great majority of our colleagues and compatriots – people we believed viewed the art somewhat similarly to how we do – have shown themselves willing to replace their cellos with CDs, their tubas with tapes and their vocal chords with voice-overs!

We find ourselves in an orchestra in which it seems the loud majority will happily proclaim that they're proud to just press play! It's heartbreaking.

I can understand pressing play to put food on the table. That wouldn't make me sad and angry. Seeing so many so proud and happy about it, and doing it also when the stakes are zero, does.


Good points yet how others view the art doesn't affect my enjoyment nor practice of it. Like music, others can enjoy listening to a CD or play their own instrument; I don't care. Why allow others' style and practice influence how we enjoy programming?

Because these "others" are literal members of my orchestra suggesting we start doing playbacks during concerts!

I find it quite entertaining that programmers seem to find themselves in the same position as every other person that has hobbies that were once serious jobs but got automated away, and can't seem to connect the dots. How to keep enjoying programming? The same way as people that still make their own clothes, their own furniture, their own shoes, their own bread, and so on. They do it for themselves, for their own satisfaction and for the transformative potential doing things on your own has.

Is it really that hard to understand?

Same people that make clothes for fun usually do not work at sweatshops.

Some bakers started baking as a hobby, got really good at it, and then better tools and profit margins came about. Now they were forced to make low quality bread at work for 8 hours straight every day and seeing 90% of their colleagues that they considered pretty good bakers actually be fine with it.

How exciting do you think those bakers are to bake more bread at home after they go though slopping bread at work? How enthusiastic are they still about their hobby after a few years or a decade?


I don't see how LLMs change the picture then. The hobbyist who fell in love with programming didn't dream of Spring Boot configs, enterprise middleware or the Nth CRUD app either. There was already a huge gap between programming as a craft and programming as a job, and most people never had the privilege of working on anything particularly exciting or fun[1]. If your job is slop bread for 8 hours, and for most of us it already was, then the joy has to come from somewhere other than the job. That's the adjustment every one of those trades had to make.

[1] On another note, a lot of my friends who are professional musicians barely play or make music in their free time, apart from keeping their skills up.


I kind of agree. But I think LLMs just make it way worse than Sprint boot, enterprise middleware or anything similar ever could.

And I still very much like using LLMs for certain things. I do not miss Googling for hours to compile the right information.


I don't think the analogy quite works. Hand crafted furniture etc. is still a valued skill, even commanding a premium price. I find it unlikely that hand crafted software will end up the same if the LLM generated one is cheaper and as far as most are concerned works sufficiently well.

Valued by whom? The market? Most people who craft as a hobby never sell a thing. They do it for the love of it. If something's only worth doing when someone pays a premium for it, boy, you're in for a hard time.

> Valued by whom? The market?

No. The people. You know, the Shown HN: I wrote a cool thing. Here's the thing on GitHub.

It's not about selling, it's about sharing and people appreciating it, using it, sharing tips to improve it. Most people who write FLOSS in their free time do it to solve their own problem first, but they also do it to share with others a cool thing they did etc.

> Most people who craft as a hobby never sell a thing

Sure. But they do craft for SOMEONE. Initially for themselves but at some point they want to show their skills to someone, even if only to family and friends. People are social animals.

I don't know that hand crafted software has the same appreciation as say woodworking.


> I don't know that hand crafted software has the same appreciation as say woodworking.

Yet. But I doubt you'll find that appreciation here on Hacker News, or on GitHub. You'll probably have to find a community of like-minded people who enjoy tinkering with software by hand, and those already exist, e.g. parts of the IndieWeb, or Lobsters. Posting your hand-crafted software here is a bit like a knitting enthusiast showing off their sweater at a textile industry trade fair.


You can also program by hand professionally. There's a reason why the handmade, luxery items are more valuable and desirable than the heavily manufactured counterpart.

1. Because they're genuinely better quality. Usually.

2. There's a human connection (way more important than people think. I.e commodity fetishism)

3. Less people can do it.

-- all of these properties will apply to software in the near future. The person that can hand code the thing an llm does poorly, or because an llm cant be trusted will be extremely valuable, especially as this category of people begins to shrink, as peoppe atrophy their skills with llms.

The rest of y'all are excited about handing over the value of your labor to some billionaires thinking machine because that same billionaire has convinced you that you're going to be able to create your own startup or something stupid.

Nah, you're going to become a (underpaid/poor) conveyor belt operator making mass manufactured slop. Some smart ones will become the swiss watchmakers of software. Rare and in demand.


These narratives are designed for people who want to see programmers taken down a peg. The truth is that LLM generated code is not sustainable and the people hawking it are operating recklessly.

> Since people have mistaken my texts for LLM-generated before, I’ll tell you that it is 100% human written without any AI-assistance.

> This is the game changer.

> This is not communication. It’s a tool output.

Not saying I'm 100% sure, but those seemed slightly sus to me


It doesn't matter how fast you're going if you're going in the wrong direction. Programming can still be a challenge with LLM's, but everyone is panicking and skipping the research portion.

Agreeing with the means/end framing, and the bit that's missing is that most of us are both depending on the day. I'll happily let it generate the CSV parser and still want to hand-write the tricky state machine.

There was a time before programming, and there will be a time after programming.

On one side of a spectrum I see people like DHH who claims that "coding is dead", on other side - there are articles like that.

Usually the truth is somewhere in the middle, but I wonder how that "middle" looks like.


Pick something you always wanted to learn more about and use LLMs to help you

It just needs to be something where you can verify its information quickly enough.

Still, isn't programming fine as a hobby? Honestly, when I program, I hand off the parts I don't want to do to AI, and these days I just do what I want to do. It seems like something worth doing as a hobby. At work, you're forced to use AI to meet deadlines, but as a hobby it seems perfectly good too.

It always sounds like those old guild masters ranting about the new factories: “Well, obviously, real quality craftsmanship can only ever be done by hand. Anything else simply isn’t authentic...”

You keep doing it regardless of LLMs, use them to your advantage

How to keep enjoying reading in a world of LLMs

How to keep enjoying art in a world of LLMs

How to keep enjoying science in a world of LLMs


You could just not use LLMs?

I have been programming for 25+ years and the last year has been the most fun because every single useless-for-everyone-but-me idea ... I could spend a few hours on and get it working. Did 30-40 different small projects this year.[1] Mostly used by me (and some by a couple of friends).

I write software because I am interested in the final outcomes, not because I enjoy the journey, which is often infuriating because of the mistakes you make, or the crap you depend on to get your work done.

Whether people will still have jobs in three years, or thirty, only time will tell, but I feel people are kidding themselves if they think LLMs won't have an impact. We were fine with using machines to automate physical labor as we now balk at the same thing happening to the intellectual side of things.

I, personally, have done a complete volte-face as far as my views on the subject are concerned over the past year or so as I use LLMs more and more for coding and other tasks.

---

[1] There is this idea I have had of an Excel replacement: simple, purely functional, TSV-based spreadsheet with zero backward compatibility with styles as purely optional sidecar material that I have always wanted to do but lacked the time. Brainstormed a spec with Claude today. Might work on it in the near future.


That's been my experience too. 7+ years in industry and lot more before, and I now finally feel like I have more time to do fun side projects. Some may say it is all about the journey, but i rather build for whoever is going to use it, even though it might only be for myself.

Me too.

I used to enjoy the journey more. I feel like the explosion of insane complexity and layers and the mess of dependencies and all the rest ruined the fun of the journey long before AI came along.

Take user interfaces. Making one wasn’t so bad in the 90s or 2000s. Now it’s a hellscape of either bloated Electron or the shifting sands of native APIs that are all complex and special.

All of it imposes cognitive load that has nothing to do with the problem I want to solve and it foists ugliness on you. Before you can touch your problem you have to create all this boilerplate.

I can just have the bot do that crap now.

If I want to code for fun I can code only the parts that are fun.


Look, I love code. I have laser cut code snippets framed on my walls. I functions that I have shared online proudly multiple times. I have projects I have lovingly tended to for years just for the joy of making a computer do something strange.

But what’s far far more important is making people happy by producing good software. Ever since my very first SWE internship I’ve cared most about the user. I’m extremely bummed if the user isn’t happy with my work. I’m ecstatic if my work can improve their day. LLMs change how my work gets done and what it is that my effort goes towards. But the core reason to be here instructing computers hasn’t changed.


But there might be reasons you don’t want to be, e.g. you actually need to bring some real productiveness gain to the table, or you don’t want to be left behind while the rest of your team, your company, your industry, is moving towards heavy LLM adoption.

Oh sure, you are not an LLM bro! Honest!

The amount of new LLM articles that try to feed them like vegetables to a child is amusing and tragic at the same time.


People just like to spill out their justifications on how they interact with ai and generally try to be agreeable in their comfort zones until they get bamboozled by actual market demands. No competitive structure is willing to pay more (to you) that could be replaced by lower cost means to maximize profits. This is basic economy 101. This article seems a huge cope to me IMHO regarding the advice it gives. Programming is mostly solved, although in a very anti-humane way IMHO. Hobbyist means could justify it in the remaining time...

I just pray open weight wins at the end and people actually utilize their ai and own their ai.


much needed

LLMs have made me enjoy programming even more than I already did. No, I don't use them to program for me, but I love having an on-demand entity to ask any question I desire.

I've been finally working on a plethora of ideas that I have put on the back burner. I think my favorite aspect of using LLMs has been the reduction in friction. Mind you, I predominately use the chatbots, I still love how I can go from 0 to 60 in mere hours with languages and stacks I am complete unfamiliar with. In the past month. Chatbots are great for one demand documentation.

Lately, I have had LLMs create little "drills" for me. I have them suggest poorly written, flawed, or buggy code (like a function at most), and then the goal is for me to try to figure out how to write it better and compare my answer with the LLM's instant feedback. These are dumb, little, fun games I play to pass time, but I feel like it's better than doom-scrolling.

As for letting LLMs do the work, I've tried vibe-coding, and I utterly hate it. If you love vibe-coding, then I won't try to take it away from you. I just never like the results I receive. I read every single line produced, and I am never satisfied with the code. It's always an utter mess or full of shortcuts. An LLM could replace me tomorrow, no question. I have to give the bots credit. I am not a particularly impressive programmer in any regard. I am probably slightly below-average to average after a decade of experience.

Still, I am insecure and controlled by my ego -- if an LLM produced it, you did not make it. Maybe I am vain, but I want all the credit. If I produce something, I want to tell people that I made it.


It’s very clear AI writes great code and will even review it for bugs much better and faster than a human can. With cloud agents like Devin, you can spawn an army of these agents at a moments notice. Teams who figure out how to do this will simply out compete any teams who don’t.

Now humans operate at a higher level of abstraction. Our focus area is now ensuring the high-level architecture will accommodate future needs well, ensuring the final product meets requirements, and most importantly, ensuring the final product has been validated. It’s important to use every strategy in the book to test the output via unit tests, smoke tests, integration tests, and end to end tests. On our team, we’ve been investing a lot in setting up full test environments that include the entire stack at a level simply unachievable before AI. Now we can merge code changes at an unprecedented velocity without losing confidence in the system.


What product do you make?

>It’s very clear AI writes great code

It's very clear they dont. Maybe they will one day. That day isnt today.


It will write whatever you prompt using any conventions you want, so you can use it to write great code.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: