Comment by pdimitar

Comment by pdimitar 2 days ago

55 replies

I don't know man, maybe prompt most of your work, eyeball it and verify it rigorously (which if you cannot do, you should absolutely never touch an LLM!), run a script to commit and push after 3 hours and then... work on whatever code makes you happy without using an LLM?

Let's stop pretending or denying it: most of us would delegate our work code to somebody else or something else if we could.

Still, prompting LLMs well requires eloquence and expressiveness that many programmers don't have. I have started deriving a lot of value from those LLMs I chose to interact with by specifying clear boundaries on what's the priority and what can wait for later and what should be completely ignored due to this or that objective (and a number of other parameters I am giving them). When you do that well, they are extremely useful.

only-one1701 2 days ago

I see this "prompting is an art" stuff a lot. I gave Claude a list of 10 <Route> objects and asked it to make an adjustment to all of them. It gave me 9 back. When I asked it to try again it gave me 10 but one didn't work. What's "prompt engineering" there, telling it to try again until it gets it right? I'd rather just do it right the first time.

  • codr7 2 days ago

    We used to make fun of and look down on coders who mindlessly copy paste and mash the compile button until the code runs, for good reasons.

    • pdimitar a day ago

      Did you skip the "rigorously verify the LLM code" part of my comment on purpose, just to show contempt?

      • douglasisshiny 5 hours ago

        I think the point is you could just.... write the code yourself.

        • pdimitar 5 hours ago

          And I do, most of the time. Sometimes the code to be written is quite verbose and I am on a tighter deadline. And it still takes less time and effort to vet the LLM's code. Otherwise yeah.

  • pdimitar a day ago

    Then don't use it? Nobody is making you.

    I am also barely using LLMs at the moment. Even 10% of the time would be generous.

    What I was saying is that I have tried different ways of interacting with LLMs and was happy to discover that the way I describe stuff to another senior dev actually works quite fine with an LLM. So I stuck to that.

    Again, if an LLM is not up to your task, don't waste your time with it. I am not advocating for "forget everything you knew and just go ask Mr. AI". I am advocating for enabling and productivity-boosting. Some tasks I hate, for some I lack the deeper expertise, others are just verbose and require a ton of typing. If you can prompt the LLM well and vet the code yourself after (something many commenters here deliberately omit so they can happily tear down their straw man) then the LLM will be a net positive.

    It's one more tool in the box. That's all there is to it really. No idea why people get so polarizing.

  • tmpz22 2 days ago

    Prompt engineering is just trying that task on a variety of models and prompt variations until you can better understand the syntax needed to get the desired outcome, if the desired outcome can be gotten.

    Honestly you’re trying to prove AI is ineffective by telling us it didn’t work with your ineffective protocol. That is not a strong argument.

    • only-one1701 2 days ago

      What should I have done there? Tell it to make sure that it gives me all 10 objects I give it back? Tell it to not put brackets in the wrong place? This is a real question --- what would you have done?

      • simonw 2 days ago

        How long ago was this? I'd be surprised to see Claude 3.7 Sonnet make a mistake of this nature.

        Either way, when a model starts making dumb mistakes like that these days I start a fresh conversation (to blow away all of the bad tokens in the current one), either with that model or another one.

        I often switch from Claude 3.7 Sonnet to o3 or o4-mini these days. I paste in the most recent "good" version of the thing we're working on and prompt from there.

      • pdimitar a day ago

        You should have dropped the LLM, of course. They are not replacing us the programmers anytime soon. If they can be used as an enabler / booster, cool, if not, back to business as usual. You can only win here. You can't lose.

      • tmpz22 2 days ago

        In no particular order:

        * experiment with multiple models, preferably free high quality models like Gemini 2.5. Make sure you're using the right model, usually NOT one of the "mini" varieties even if its marketed for coding.

        * experiment with different ways of delivering necessary context. I use repomix to compile a codebase to a text file and upload that file. I've found more integrated tooling like cursor, aider, or copilot, are less effective then dumping a text file into the prompt

        * use multi-step workflows like the one described [1] to allow the llm to ask you questions to better understand the task

        * similarly use a back-and-forth one-question-at-a-time conversation to have the llm draft the prompt for you

        * for this prompt I would focus less on specifying 10 results and more about uploading all necessary modules (like with repomix) and then verifying all 10 were completed. Sometimes the act of over specifying results can corrupt the answer.

        [1]: https://harper.blog/2025/02/16/my-llm-codegen-workflow-atm/

        I'm a pretty vocal AI-hater, partly because I use it day to day and am more familiar with its shortfalls - and I hate the naive zealotry so many pro-AI people bring to AI discussions. BUTTT we can also be a bit more scientific in our assessments before discarding LLMs - or else we become just like those naive pro-AI-everything zealots.

        • bboozzoo 4 hours ago

          With that many ways to try things out differently hoping for good results, it feels like this would become a huge time sink, wouldn't it?

FuckButtons a day ago

> Let's stop pretending or denying it: most of us would delegate our work code to somebody else or something else if we could.

Hard disagree, I get to hyperfocus on making magical things that surprise and delight me every day.

  • NineWillows a day ago

    Nice. I've got a whole lot of magical things that I need built for my day job. Want to connect so I can hand the work over to you? I'll still collect the paychecks, but you can have the joy. :)

  • pdimitar a day ago

    I'm disappointed that several of you so easily skipped over the "work" word. It is doing a lot of work in that sentence.

    • FuckButtons 12 hours ago

      My work is the magical stuff, I don’t write much code outside of work, I don’t have time with two young kids.

elicksaur a day ago

>most of us would delegate our work code to somebody else or something else if we could.

Laughably narrow-minded projection of your own perspective on others.

  • jappgar a day ago

    We all delegate. Did you knit your own clothes or is that too boring for you?

    Enjoying to code/knit is fine but we can no longer expect to get paid well to do it.

    • elicksaur a day ago

      Each activity we engage in has different use, value, and subjective enjoyment to different people. Some people love knitting! Personally, I do know how to sew small tears, which is more than most people in the US these days.

      Just because I utilize the services of others for some things does not mean that it should be expected I want to utilize the service of others for all things.

      This is a preposterous generalization and exactly why I said the OP premise is laughable.

      Further, you’ve shifted OP’s point from subjective enjoyment of an activity to getting “paid well” - this is an irrelevant tangent to whether “most” people in general would delegate work if they could.

  • pdimitar a day ago

    There is context, that you laughably skipped. You do you.

    • elicksaur a day ago

      What context did I skip? It seems like the statement stands on its own.

      • pdimitar a day ago

        Obviously my comment was shortened for brevity and it is kind of telling that you couldn't tell and rushed to tear down the straw man that you saw.

        Answering your question:

        - That there are annoying tasks none of us look forward to doing.

        - That sometimes you have knowledge gaps and LLMs serve as a much better search engine.

        - That you have a bad day but the task is due tomorrow. Happened to us all.

        I am not "laughably projecting on others", no. I am enumerating human traits and work conditions that we all have or had.

        OBVIOUSLY I did not mean that I would delegate all my work tomorrow if I could. I actually do love programming.

hellisothers 2 days ago

> Let's stop pretending or denying it: most of us would delegate our work code to somebody else or something else if we could.

I don’t think this is the case, if anything the opposite is true. Most of us would like to do the work code but have realized, at some career point, that you’re paid more to abstract yourself away from that and get others to do it either in technical leadership or management.

  • diggan 2 days ago

    > I don’t think this is the case, if anything the opposite is true

    I'll be a radical and say that I think it depends and is very subjective.

    Author above you seems to enjoy working on code by itself. You seem to have a different motivation. My motivation is solving problems I encounter, code just happen to be one way out of many possible ones. The author of the submission article seems to love the craft of programming in itself, maybe the problem itself doesn't even matter. Some people program just for the money, and so on.

  • pdimitar 2 days ago

    Well, does not help that a lot of work tasks are meaningless drudgery that we collectively should have trivialized and 100% automated at least 20 years. That was kind of the core my point: a lot of work tasks are just plain BS.

codr7 2 days ago

I wouldn't, I got into software exactly because I enjoy solving problems and writing code. Verifying shitty, mindless, computer generated code is not something I would consider doing for all the money in the world.

  • pdimitar 2 days ago

    1. I work on enjoyable problems after I let the LLM do some of the tasks I have to do for money. The LLM frees me bandwidth for the stuff I truly love. I adore solving problems with code and that's not going to change ever.

    2. Some of the modern LLMs generate very impressive code. Variables caching values that are reused several times, utility functions, even closure helpers scoped to a single function. I agree that when the LLM code's quality falls bellow a certain threshold then it's better in every way to just write it yourself instead.

ang_cire a day ago

> most of us would delegate our work code to somebody else or something else if we could.

I saw your objections to other comments on the basis of them seemingly not having a disdainful attitude towards coding they do for work, specifically.

I absolutely do have tasks, coding included, that I don't want to do, and find no joy in. If I can have my manager assign the task to someone else, great! But using an LLM isn't that, so I'm still on the hook for ensuring all the most boring parts of that task (bugfixing, reworks, integration, tests, etc) get done.

My experience with LLMs is that they simply shift the division of time away from coding, and towards all the other bits.

And it can't possibly just be about prompting. How many hundreds of lines of prompting would you need to get an LLM to understand your coding conventions, security baselines, documentation reqs, logging, tests, allowed libraries, OSS license restrictions (i.e. disallowed libraries), etc? Or are you just refactoring for all that afterwards?

Maybe you work somewhere that doesn't require that level of rigor, but that doesn't strike me as a good thing to be entrenching in the industry by increasing coders' reliance on LLMs.

  • pdimitar a day ago

    A super necessary context here is that I barely use LLM at all still. Maybe I should have said so but I figured that too much nuance would ruin a top-level comment and mostly casually commented on a tradeoff of using or not using LLMs.

    Where I use LLMs:

    1. Super boring and annoying tasks. Yes, my prompts for those include various coding style instructions, requests for small clarifying comments where the goal of the code is not obvious, tests. So, no OSS license restrictions. Libraries I specify most of the times I used LLMs (and only once did I ask it to suggest a library). Logging and telemetry I add myself. So long story short, I use the LLM to show me a draft of a solution and then mercilessly refactor it to match my practices and guidelines. I don't do 50 exchanges out of laziness, no.

    2. Tasks where my expertise is lacking. I recently used an LLM to help me with making a `.clone()`-heavy Rust code to become nearly zero-copy for performance reasons -- it is a code on a hot path. As much as I love Rust and I am fairly good at it (realistically I'm IMO at 7.5 / 10), all the lifetimes and zero-copy semantics I still don't know yet. A long session with an LLM after, I emerged both better educated and with a faster code. IMO a win-win.

    • ang_cire a day ago

      That's interesting, especially wrt the Rust example. I actually like LLMs as reference docs, I just don't trust their code as far as I can throw it.

      Thanks for the follow-up!

jaredcwhite 2 days ago

> most of us would delegate our work code to somebody else or something else if we could

Not me. I code because I love to code, and I get paid to do what I love. If that's not you…find a different profession?

  • pdimitar 2 days ago

    Needlessly polarizing. I love coding since 12 years old (so more than 30 years at this point) but most work tasks I'm given are fairly boring and uninteresting and don't move almost any science or knowledge forward.

    Delegating part of that to an LLM so I can code the stuff I love is a big win for my motivation and is making me doing the work tasks with a bit more desire and pleasure.

    Please don't forget that most of us out there can't code for money anything that their heart wants. If you can, I'd be happy for you (and envious) but please understand that's also a fairly privileged life you'd be having in that case.

jimbob45 2 days ago

The act of coding preserves your skills for that all-important verification step. No coding and the whole system falls apart.

  • codr7 2 days ago

    Exactly, how are you supposed to verify anything when you don't have any skills left beyond prompting.

    • pdimitar a day ago

      You don't. That's why you don't use an LLM most of the time. I was talking about cases where either the tasks were too boring or required an expertise that I didn't have at the time.

      Thought it was obvious.

      • 6747636484 a day ago

        > or required an expertise that I didn't have at the time

        How do you verify code that you don't have the expertise to write on your own?

        • pdimitar a day ago

          Good question. I run it by the docs that intimidated me before. Because I did not ask the LLM for the code only; I asked it to fully explain what did it change and why.

  • pdimitar 2 days ago

    Absolutely. That's why I don't give the LLM the reins for long, nor do I tell it to do the whole thing. I want to keep my mind sharp and my abilities honed.

troupo 2 days ago

> Still, prompting LLMs well requires eloquence and expressiveness that many programmers don't have

It requires magical incantations that may or may not work and where a missing comma in a prompt can break the output just as badly as the US waking up and draining compute resources.

Has nothing to do with eloquence

simonw 2 days ago

> "verify it rigorously (which if you cannot do, you should absolutely never touch an LLM!)"

100% this.

  • only-one1701 2 days ago

    I like writing code more than reading it, personally.

    • simonw 2 days ago

      Yeah, I think that's pretty common. It took me 15+ years of my own career before I got over my aversion to spending significant amounts of time reading through code that I didn't write myself.

    • pdimitar a day ago

      We all do. But more often than not we have to learn to do surgical incisions in order to do our task for the day. It's what truly distinguishes a professional.

  • williamstein 2 days ago

    Totally. And yet rigorous proof is very difficult. Having done some mathematics involving nontrivial proofs, I respect even more how difficult rigor is.

    • pdimitar a day ago

      Ah, I absolutely don't verify code in the mathematical sense of the word. More like utilize strong static typing (or hints / linters in weaker typed languages) and write a lot of tests.

      Nothing is truly 100% safe or free of bugs. What I meant with my comment up-thread was that I have enough experience to have a fairly quick and critical eye of code, and that has saved my skin many times.

  • th0ma5 a day ago

    You have an automation bias. "Surely this thing knows more than me it must be right." and there is no reason to believe that, but you will.

    • simonw a day ago

      How did you get there from me agreeing 100% with someone who said that you should be ready to verify everything an LLM does for you and if you're not willing to do that you shouldn't use them at all?

      Do you ever read my comments, or do you just imagine what I might have said and reply to that?

      • th0ma5 10 hours ago

        There's simply no way to verify everything that comes out of these things. Otherwise why use it? You also can't possibly truly know if you know more about a topic since by definition the models know more than you. This is automation bias. Do you not know the problems with even verifying or watching machines? This is a core part of the discussion of self driving vehicles. I guess I assumed you knew stuff about the field of AI!

        • simonw 8 hours ago

          "You also can't possibly truly know if you know more about a topic since by definition the models know more than you"

          Where does that idea that "by definition the models know more than you" come from?

dingnuts 2 days ago

> work on whatever code makes you happy without using an LLM?

This isn't how it works, psychologically. The whole time I'm manual coding, I'm wondering if it'd be "easier" to start prompting. I keep thinking about a passage from The Road To Wigan Pier where Orwell addresses this effect as it related to the industrial revolution:

>Mechanize the world as fully as it might be mechanized, and whichever way you turn there will be some machine cutting you off from the chance of working—that is, of living.

>At a first glance this might not seem to matter. Why should you not get on with your ‘creative work’ and disregard the machines that would do it for you? But it is not so simple as it sounds. Here am I, working eight hours a day in an insurance office; in my spare time I want to do something ‘creative’, so I choose to do a bit of carpentering—to make myself a table, for instance. Notice that from the very start there is a touch of artificiality about the whole business, for the factories can turn me out a far better table than I can make for myself. But even when I get to work on my table, it is not possible for me to feel towards it as the cabinet-maker of a hundred years ago felt towards his table, still less as Robinson Crusoe felt towards his. For before I start, most of the work has already been done for me by machinery. The tools I use demand the minimum of skill. I can get, for instance, planes which will cut out any moulding; the cabinet-maker of a hundred years ago would have had to do the work with chisel and gouge, which demanded real skill of eye and hand. The boards I buy are ready planed and the legs are ready turned by the lathe. I can even go to the wood-shop and buy all the parts of the table ready-made and only needing to be fitted together; my work being reduced to driving in a few pegs and using a piece of sandpaper. And if this is so at present, in the mechanized future it will be enormously more so. With the tools and materials available then, there will be no possibility of mistake, hence no room for skill. Making a table will be easier and duller than peeling a potato. In such circumstances it is nonsense to talk of ‘creative work’. In any case the arts of the hand (which have got to be transmitted by apprenticeship) would long since have disappeared. Some of them have disappeared already, under the competition of the machine. Look round any country churchyard and see whether you can find a decently-cut tombstone later than 1820. The art, or rather the craft, of stonework has died out so completely that it would take centuries to revive it.

>But it may be said, why not retain the machine and retain ‘creative work’? Why not cultivate anachronisms as a spare-time hobby? Many people have played with this idea; it seems to solve with such beautiful ease the problems set by the machine. The citizen of Utopia, we are told, coming home from his daily two hours of turning a handle in the tomato-canning factory, will deliberately revert to a more primitive way of life and solace his creative instincts with a bit of fretwork, pottery-glazing, or handloom-weaving. And why is this picture an absurdity—as it is, of course? Because of a principle that is not always recognized, though always acted upon: that so long as the machine is there, one is under an obligation to use it. No one draws water from the well when he can turn on the tap. One sees a good illustration of this in the matter of travel. Everyone who has travelled by primitive methods in an undeveloped country knows that the difference between that kind of travel and modern travel in trains, cars, etc., is the difference between life and death. The nomad who walks or rides, with his baggage stowed on a camel or an ox-cart, may suffer every kind of discomfort, but at least he is living while he is travelling; whereas for the passenger in an express train or a luxury liner his journey is an interregnum, a kind of temporary death. And yet so long as the railways exist, one has got to travel by train—or by car or aeroplane. Here am I, forty miles from London. When I want to go up to London why do I not pack my luggage on to a mule and set out on foot, making a two days of it? Because, with the Green Line buses whizzing past me every ten minutes, such a journey would be intolerably irksome. In order that one may enjoy primitive methods of travel, it is necessary that no other method should be available. No human being ever wants to do anything in a more cumbrous way than is necessary. Hence the absurdity of that picture of Utopians saving their souls with fretwork. In a world where everything could be done by machinery, everything would be done by machinery. Deliberately to revert to primitive methods to use archaic took, to put silly little difficulties in your own way, would be a piece of dilettantism, of pretty-pretty arty and craftiness. It would be like solemnly sitting down to eat your dinner with stone implements. Revert to handwork in a machine age, and you are back in Ye Olde Tea Shoppe or the Tudor villa with the sham beams tacked to the wall.

>The tendency of mechanical progress, then, is to frustrate the human need for effort and creation. It makes unnecessary and even impossible the activities of the eye and the hand. The apostle of ‘progress’ will sometimes declare that this does not matter, but you can usually drive him into a comer by pointing out the horrible lengths to which the process can be carried.

sorry it's so long