• itslilith@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    63
    ·
    2 months ago

    Don’t copilot anything longer than a function of about 15 lines. That way you can quickly see if it made mistakes. Ensure it works, move on to the next.

    And only do that for boring, repetitive work. The tough challenges and critical parts you’re (for now) better off solving yourself.

    • flashgnash@lemm.ee
      link
      fedilink
      arrow-up
      26
      arrow-down
      2
      ·
      2 months ago

      Absolutely, I think the people who say it’s completely useless for code are in denial

      Definitely not replacing anyone but my god it has sped up development by generating code I already know how to write 90% of

      No more having to look up “what was the for loop syntax in this language again?”

      • xavier666@lemm.ee
        link
        fedilink
        English
        arrow-up
        18
        ·
        edit-2
        2 months ago

        “Copilot is really good at things which I already know” and that is perfectly fine

        • flashgnash@lemm.ee
          link
          fedilink
          arrow-up
          10
          ·
          2 months ago

          Exactly.

          It’s to speed up boilerplate and save you having to look up function names or language specific syntax for that one feature you want to use, not to entirely do your job for you

          • Ethan@programming.dev
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 months ago

            If I’ve been working in the same language for at least a year or two, I don’t have to look up any of that. Copilot might be actually helpful if I’m working in a language I’m not used to, but it’s been a long time since I’ve had to look up syntax or functions (excluding 3rd party packages) for the language I work in.

            • flashgnash@lemm.ee
              link
              fedilink
              arrow-up
              1
              ·
              2 months ago

              Of course but presumably on occasion you do work in other languages? I work in all kinds of languages and so jumping between them it’s pretty handy to bridge the gap

              I think you could definitely still get value out of generating simple stuff though, at least for me it really helps get projects done quickly without burning myself out

              For small one off scripts it makes them actually save more time than they take to write (for example colleague had to write the permissions of a bunch of files recursively into an excel doc, chatgpt did 90% of that I did 9 and he did 1 lol)

              • Ethan@programming.dev
                link
                fedilink
                English
                arrow-up
                1
                ·
                2 months ago

                Of course but presumably on occasion you do work in other languages? I work in all kinds of languages and so jumping between them it’s pretty handy to bridge the gap.

                If I were jumping languages a lot, I definitely think it would be helpful. But pretty much 100% of what I’ve done for the last 3-4 years is Go (mostly) or JavaScript (occasionally). I have used chatgpt the few times I needed to work in some other language, but that has been pretty rare.

                I think you could definitely still get value out of generating simple stuff though, at least for me it really helps get projects done quickly without burning myself out

                If simple stuff == for loops and basic boilerplate, the kind of stuff that copilot can autocomplete, I write that on autopilot and it doesn’t really register. So it doesn’t contribute to my burnout. If simple stuff == boring, boilerplate tests, I’ll admit that I don’t do nearly enough of that. But doing the ‘prompt engineering’ to get copilot to write that wasn’t any less painful that writing it myself.

                For small one off scripts it makes them actually save more time than they take to write

                The other day I wrote a duplicate image detector for my sister (files recovered from a dying drive). In hindsight I could have asked chatgpt to do it. But it was something I’ve never done before and an interesting problem so it was more fun to do it myself. And most of the one off stuff I’m asked to do by coworkers is tied to our code and our system and not the kind of thing chatgpt would know how to do.

      • Ethan@programming.dev
        link
        fedilink
        English
        arrow-up
        3
        ·
        2 months ago

        I won’t say copilot is completely useless for code. I will say that it’s near useless for me. The kind of code that it’s good at writing is the kind of code that I can write in my sleep. When I write a for-loop to iterate over an array and print it out (for example), it takes near zero brain power. I’m on autopilot, like driving to work. On the other hand, when I was trialing copilot I’d have to check each suggestion it made to verify that it wasn’t giving me garbage. Verifying copilot’s suggestions takes a lot more brain power than just writing it myself. And the difference in time is minimal. It doesn’t take me much longer to write it myself than it does to validate copilot’s work.

        • flashgnash@lemm.ee
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          2 months ago

          You can think bigger than that, as an example from the other day, I got it to a Display implementation for all of my error types in rust, it generated nice user friendly error messages based on context and wrote all the boilerplate around displaying them

          Also got it to generate a function that generated a unique RGB colour from a user ID, did it first try and I could use it straight away

          Both those things would’ve taken me maybe 15 minutes by hand but I can generate and proofread them in seconds

          That said, I don’t use copilot I use chatgpt, it’s intentional when I use it not just being shoved in my face all the time which might help my opinion of it

          • Ethan@programming.dev
            link
            fedilink
            English
            arrow-up
            1
            ·
            2 months ago
            func randomRGB(uid int) color.RGBA {
            	b := binary.BigEndian.AppendUint64(nil, uint64(uid))
            	h := sha256.Sum256(b)
            	return color.RGBA{h[0], h[1], h[2], 255}
            }
            

            That took me under three minutes and half of that was remembering that RGBA is in the color package, not the image package, and uint-to-bits is in the binary package, not the math package. I have found chatgpt useful when I was working in a different language. But trying to get chatgpt or copilot to write tests or documentation for me (the kind of work that bores me to death), doing the prompt engineering to get it to spit out something useful was more work than just writing the tests/documentation myself. Except for the time when I needed to write about 100 tests that were all nearly the same. In that case, using chatgpt was worth it.

    • BudgetBandit@sh.itjust.works
      link
      fedilink
      arrow-up
      9
      arrow-down
      1
      ·
      2 months ago

      Tried to learn coding using chatGPT. Wanted to make my own game engine for a phone game. Ended up looking up tutorials.

      • Bread@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 months ago

        ChatGPT as a programming tool like any other tool works a whole lot better when you are well versed in how the process should go. It speeds up the workflow of a professional, it doesn’t make a new worker better.

      • coffee_with_cream@sh.itjust.works
        link
        fedilink
        arrow-up
        1
        ·
        2 months ago

        If you are using “game engine” in the industry standard way, you would want to learn object oriented programming first, then learn how to use an existing game engine, and then MAYBE, in a long time, with a big team, build your own game engine.