‹ BackHN Continuity

Thread

Learning Programming in an Age of LLMs

263 points · 195 comments · moneroloop2018

  1. japhyr · · focus · HN ↗
    I'm the author of Python Crash Course, and I got this exact same email this week. I was thinking of writing a public response as well, because any attempt to sincerely answer these questions takes something along the lines of a full post. It's also worth a public response because many people who are getting into programming for the first time right now are asking variations of these same questions.

    > Do I think that AI enables people to develop faster than they can keep up?

    Absolutely. That's the core of this person's email, and everyone else who asks similar questions. Just five years ago, the only way to build a working project of moderate complexity was to learn the basic to intermediate concepts required to make an MVP. Now, if you can steer an LLM reasonably well, you can quickly build an MVP that goes well beyond your own understanding of the implementation.

    I don't think anyone has clear answers to all the questions brought up in this email. I think people can learn faster than they used to, because they can make connections between different areas faster than they used to. But it requires skill and discipline in how you learn, and how you work. You have to intentionally build your understanding as you build your projects.

    1. senko · · focus · HN ↗
      > Just five years ago, the only way to build a working project of moderate complexity was to learn the basic to intermediate concepts required to make an MVP.

      > Now, if you can steer an LLM reasonably well, you can quickly build an MVP that goes well beyond your own understanding of the implementation.

      Somewhat agree. Five years ago you could build an MVP without understanding how to open TCP sockets or how to parse HTTP headers. You didn't need to understand relational databases, let alone B-trees or cache locality. You didn't need to know how to install Linux.

      Now you don't need to understand the details of connecting to Stripe or Auth0 or setting up a Kubernetes cluster.

      > You have to intentionally build your understanding as you build your projects.

      Some things you need to understand-others, not so much. Depends on what you're doing, the scale, risks, etc, but that's always been the case.

      1. skydhash · · focus · HN ↗
        That’s the power of abstraction when there’s a good API around something to hide the internal that doesn’t matter much at an higher level. You only need ‘open’ and ‘read’ instead of dealing with disk access and file system trasversal.

        But those abstraction are deterministic in nature, so there’s a very good guarantee of their behavior. Someone using LLM and not caring about the generated code is just asking for trouble. The code may work, but there’s no guarantee about its behavior (including error handling and edge cases).

        1. bbmatryoshka · · focus · HN ↗
          non deterministic abstraction are absolutely useful, outside of software sector they have been used since the start of civilization ("a worker" is a very very non deterministic abstraction, outside from the most basic tasks)
          1. skydhash · · focus · HN ↗
            I’m sure that in every case where there such non deterministic abstraction, it’s been always statistically or with a lot of hand waving. So with a heavy dose of expected errors.

            Pro LLM users don’t want to talk about the error margins of whatever practice or product they’re putting out.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.