‹ BackHN Continuity

Thread

Born Against, or why hobby programming communities are against LLM usage

391 points · 454 comments · lladnar

  1. alkonaut · · focus · HN ↗
    Programming has five phases effectively:

    1) You figure out what problem to solve.

    2) You figure out HOW to solve the problem.

    3) You actually implement the solution.

    4) You see the solution work, for yourself.

    5) You ship/deploy/publish the program. This means you see people be happy users and/or you get paid for it and so on.

    If you're an entrepreneur type, you probably enjoy the first and last steps most, and you see steps 2-4 as mostly a chore. If you're a tinkerer, you don't care much for 1 and 5, and you see 2-4 as the whole point of programming. I'm a tinkerer. I'd be happy to just write code and throw it away. Coding is like solving sudokus. I could skip steps 1 and 5 forever. I don't ever need to show any code to anyone. In fact, most of the time when programming I do steps 2 and 3 and even skip 4. I don't even finish! I work weeks on something until I lose interest, and I know that in order to even run it, it would be several more weeks. A PoC is enough. Or just a half one. It's just code-to-structure-thoughts, not to create anything finished.

    The 5 phases look kind of symmetric. The outermost layer (1 and 5) are the entrepreneurial steps. If you're a product owner or CEO, you might work strictly at steps 1,5. Then steps 2-4 are the managerial/architectural steps. If you're a very senior IC at a large company, you might work at this level, without actually doing much coding. Only the inner most step (3) is the manual creation of source code. Even though it's 5 different phases, it's just "3 layers" of programming.

    The problem as I see it is that I enjoy step 3. And LLMs are good at step 3 almost exclusively. So they just pick the best bit of this dish, and leave me with the rest.

    If you're an entrepreneurial type, the LLM appears to take the _worst_ bit of the work from you. Great.

    1. ang_cire · · focus · HN ↗
      It's funny, because I would consider myself a tinkerer (and I have a large backlog of pre-LLM programs), but the coding itself isn't the main thing that brings me joy, it's the phase 2 and phase 4 combo: figure out how to solve it, see whether your solution was correct (and actually use the program for its purpose). The actual implementation is extraneous to that.

      To carry forward the sudoku analogy, I care about figuring out which numbers go where, and whether I was correct, I don't care about the mechanical part of actually penciling-in the answers (coding).

      1. mibsl · · focus · HN ↗
        I'd say, in this analagy, step two is filling in half the numbers by gut feeling, and then three is seeing how wrong the guesses were and actually solving it.
        1. ang_cire · · focus · HN ↗
          Perhaps I'm uncommon in that I make diagrams and even sometimes pseudo-code (mostly in the form of mapping out function names, because they serve as a proxy for program flow paths) before I write actual code, but I don't find myself really going off gut feeling. I have a pretty good idea of what the program is going to look like and do before I start, and with e.g. Claude I give those to it, so it mostly looks like what I envisioned, unless it suggests changes.
          1. mibsl · · focus · HN ↗
            For me, unstructured things (like non-formal diagrams, notes, pseudocode) are close to useless. I much prefer sketching the API surface in code right away and then iterating on it, building abstractions which cut the shapeless thought blob into neat, predictably interacting parts. The code is my notepad and the compiler is with me, every step of the way, catching contradictions and handwavyness.
      2. skydhash · · focus · HN ↗
        3 doesn’t matter that much (unless it’s part of 2: new language or new libraries), and that’s why I don’t use LLM for it. Because LLM forces you to pay attention, yes you can have something that works somehow in one go, but the code makes you queasy (too complex for the purpose, or just weird).

        So I do 3 because coding is like writing English for me (which is my 3rd language). I don’t care much for it, because it’s neither hard no easy. It’s just mechanical.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.