• Ethan
    link
    fedilink
    English
    25
    edit-2
    15 days ago

    If you’re adding code you don’t understand to a production system you should be fired

    Edit: I assumed it was obvious from context that I’m referring to copy-pasting code from stack overflow or an LLM or whatever without knowing what it does but apparently that needs to be said explicitly.

    • @perestroika@lemm.ee
      link
      fedilink
      1016 days ago

      I really like to build from zero, but some things are better copied, no matter if you fully understand them or fall short. :)

      For example, I’m not qualified to check if Hamilton and Euler were correct - I only do as they explained, and later double-check the output against input.

      • Ethan
        link
        fedilink
        English
        415 days ago

        I didn’t say never copy and paste. I’m saying when you push a commit you should understand what all the LOC in that commit do (not counting vendored dependencies). If you don’t understand how something works, like crypto (not sure what Hamilton or Euler refers to in this context), ideally you would use a library. If you can’t, you should still understand the code sufficiently well to be able to explain how it implements the underlying algorithm. For example if you’re writing a CRC function you should be able to explain how your function implements the CRC operations, even if you don’t have a clue why those operations work.

      • Ethan
        link
        fedilink
        English
        516 days ago

        There’s a huge difference between copy-pasting code you don’t understand and using a library with the assumption that the library does what it says on the tin. At the very least there’s a clear boundary between your code and not-your-code.

    • JackbyDev
      link
      fedilink
      English
      1316 days ago

      Many times the code we work on is built in abstractions we don’t know about from top to bottom.

      • Ethan
        link
        fedilink
        English
        116 days ago

        If you are submitting work, you should understand how the code you’re submitting works. Sure, you don’t have to know exactly how the code it calls works, but if you’re submitting code and there’s a block of code and you have no clue how that block works, that’s a problem.

        • JackbyDev
          link
          fedilink
          English
          116 days ago

          Same here. Assembly is a little too high level for me. I don’t like the assembler guessing what I meant. I like telling processors exactly what to do.

          Honestly, modern CISC processors are also a little high level if you think about it. I don’t want the processor guessing what I meant to tell it. I like telling them exactly what to do.

      • Ethan
        link
        fedilink
        English
        -216 days ago

        Are you seriously trying to equate “I don’t know which instructions this code is using” to “I copied code I don’t understand”? Are you seriously trying to say that someone who doesn’t know how to write x = a + b in assembly doesn’t understand that code?

        • JackbyDev
          link
          fedilink
          English
          1216 days ago

          No, they’re pointing out that it’s a little silly to expect everyone to understand each and every later of abstraction fully before deploying code.

          • Ethan
            link
            fedilink
            English
            0
            edit-2
            16 days ago

            I said you need to understand what the code you wrote (as in, LOC that git blame will blame on you) does. Not that you need to fully understand what the code it calls does. It should be pretty obvious from context that I’m referring to copy-pasting code from stack overflow or an LLM or whatever without knowing what it does.