Over the past few years, the evolution of AI-driven tools like GitHub’s Copilot and other large language models (LLMs) has promised to revolutionise programming. By leveraging deep learning, these tools can generate code, suggest solutions, and even troubleshoot issues in real-time, saving developers hours of work. While these tools have obvious benefits in terms of productivity, there’s a growing concern that they may also have unintended consequences on the quality and skillset of programmers.

  • I’ve seen enough programmers blindly copypasting code from stackoverflow and other forums without thinking and never understanding the thing they just “wrote”, to know that tools like copilot won’t make programmers worse, they will allow more people to be bad programmers.

    people need to read more code, play around with it, break it and fix it to become better programmers.

    • Spzi ( Spzi@lemm.ee ) 
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 years ago

      Hehe, good point.

      people need to read more code, play around with it, break it and fix it to become better programmers.

      I think AI bots can help with that. It’s easier now to play around with code which you could not write by yourself, and quickly explore different approaches. And while you might shy away from asking your colleagues a noob question, ChatGPT will happily elaborate.

      In the end, it’s just one more tool in the box. We need to learn when and how to use it wisely.

  • I have heard the same rhetoric about IDEs, autocomplete (Intellisense, Jedi, etc.), DevOps, and frameworks. The kernel of truth across all of them is the separation between a dev and good dev. It is getting easier and easier to have something built for you using AI in your IDE in a framework that abstracts all the things away dumped into a prebuilt pipeline that deploys your artifacts for you. A dev can do that. A good dev understands the tools and knows when to dig into things.

    I have yet to see a decrease in the number of good devs I meet even though IDEs slowly replaced text editors (and editors became strong enough to become IDEs). Frameworks have enabled more good devs to focus on business logic. DevOps provides solid guard rails for everything.

    I don’t know if there’s an increase in the number of superficial devs. I haven’t interviewed junior dev candidates in awhile. I do know the market is flooded right now so I’d argue there might be other factors.

    Also overall I do agree with the idea that letting copilot do everything for you means you don’t understand anything. Shit was the same way when cookbooks were common.

    • fuzzzerd ( fuzzzerd@programming.dev ) 
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 years ago

      There are a LOT of superficial devs out there. You dont even have to be interviewing junior devs. Plenty of them out there at medium and senior levels. They existed before LLMs were spitting code like today, and this will undoubtedly lower the bar for bad developers to enter. It remains to be seen if this can help the gold developers in a meaningful way.

      • lysdexic ( lysdexic@programming.dev ) 
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 years ago

        They existed before LLMs were spitting code like today, and this will undoubtedly lower the bar for bad developers to enter.

        If LLMs allow bad programmers to deliver work with good enough quality to pass themselves off as good programmers, this means LLMs are fantastic value for money.

        Also worth noting: programmers do learn by analysing the output of LLMs, just as the programmers of old learned by reading someone else’s code.

        • fuzzzerd ( fuzzzerd@programming.dev ) 
          link
          fedilink
          English
          arrow-up
          2
          ·
          2 years ago

          I think I could have states my opinion better. I think LLMs total value remains to be seen. They allow totally incompetent developers to occasionally pass as below average developers. Is that good or bad? I don’t know. What an average and excellent developer can do with LLM assistance is less clear. Certainly it can help those developers in some situations.

          • lysdexic ( lysdexic@programming.dev ) 
            link
            fedilink
            English
            arrow-up
            1
            ·
            2 years ago

            I think I could have states my opinion better. I think LLMs total value remains to be seen. They allow totally incompetent developers to occasionally pass as below average developers.

            This is a baseless assertion from your end, and a purely personal one.

            My anecdotal evidence is that the best software engineers I know use these tools extensively to get rid of churn and drudge work, and they apply it anywhere and everywhere they can.

  • I was hoping this might start with some actual evidence that programmers are in fact getting worse. Nope, just a single sentence mentioning “growing concern”, followed by paragraphs and paragraphs of pontification.

    • lysdexic ( lysdexic@programming.dev ) 
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 years ago

      Claude is laughable hypersensitive and self-censoring to certain words independently of contexts (…)

      That’s not a problem, nor Claude’s main problem.

      Claude’s main problem is that it is frequently down, unreliable, and extremely buggy. Overall I think it might be better than ChatGPT and Copilot, but it’s simply so unstable it becomes unusable.

    • Sure but you’re also specifically telling it direct instructions which it will follow every time to the T, based on predetermined logic.

      That is no where near how an LLM works. Furthermore, most programming languages require effort to learn. They night not be machine language, or even an assambler, but its still a skill you actually have to learn beyond speaking your native tongue.

      Also one could make the argument that machine code is a “description” of what you want the CPU to do.

      • beeng ( beeng@discuss.tchncs.de ) 
        link
        fedilink
        arrow-up
        1
        ·
        2 years ago

        The skill beyond your native tongue is knowing what a db does and how to describe what your app does. Aka a designer, with design language. Good luck with a LLM getting it to do what you want with no domain specific language.

        “No, no, not like that, I meant bigger…”

      • beeng ( beeng@discuss.tchncs.de ) 
        link
        fedilink
        arrow-up
        1
        ·
        2 years ago

        Why wouldn’t a compiled program match your description (code)? The compiler is broken?? Compiled programs alwsys match their description(code).

        So more likely your translation from idea to function is wrong.

        Re-read your description, step through it slowly, what did you assume, that was wrong, or where did you add a mistake or typo? Sounds like I can do this in natural language or in Rust.

        You can say that llms are not deterministic of what they produce, but that’s got nothing to do with making a programmer worse at their job.

        If you can’t translate your idea into function and test its output to be what you want, then you are a bad programmer.

    • Ethan ( firelizzard@programming.dev ) 
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 years ago

      Copilot frequently produces results that need to be fixed. Compilers don’t do that. Anyone who uses copilot to generate code without understanding how that code works is a shit developer. The same is true of anyone who copies from stack overflow/etc without understanding what they’re copying.

      • beeng ( beeng@discuss.tchncs.de ) 
        link
        fedilink
        arrow-up
        3
        ·
        2 years ago

        You’re missing the point. If the program doesn’t do what it’s meant to its YOU that didn’t use the tools between you and metal, correctly. LLM involved or not, it’s how you’ve described it, in whatever ‘language’ you chose (natural or Rust)

    • ulkesh ( ulkesh@beehaw.org ) 
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 years ago

      And many programmers write some pretty stupid and horrible descriptions. LLMs don’t solve this, they just allow lazy programmers to be even lazier.

        • ulkesh ( ulkesh@beehaw.org ) 
          link
          fedilink
          English
          arrow-up
          3
          ·
          2 years ago

          I don’t even know how to respond to this. It makes no sense at all and doesn’t really relate to or respond to my comment except it happens to use the word “lazy”, I’m guessing in reference to my comment. Good luck trying to push LLMs, not sure what your agenda really is, other than to be argumentative here. Peace.