‹ 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. aposm · · focus · HN ↗
        There's a pretty significant difference there, even in some of the examples you picked to make your point. TCP and HTTP are well defined standards that, for all their flaws, were designed and conceived to be useful abstractions that you didn't need to understand deeply in order to use. The things that LLMs allow novices to skip nowadays aren't designed with that in mind, and generally aren't something you can just skip over without getting yourself into hot water later. If you mess up Stripe or Auth0 setup because you don't understand the implications of the boilerplate the LLM spit out, you can very easily get your whole app compromised or end up on the hook for a lot of fraudulent credit card charges, etc. I see the point you're making and I don't entirely disagree, but I think current iterations of LLM coding tools still make it far too easy for beginners (or even fairly experienced engineers) to convince themselves that a detail falls into the former category of abstractions they can safely skip understanding, when they're very much the latter.
        1. moomoo11 · · focus · HN ↗
          imo that’s a good thing and people will gravitate towards companies that build actually good platforms.

          with a bunch of competition, the best will be incentivized to not have these noob tier issues.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.