When I was 8 I was making a "video game" (a complete bundle of code trash 😉) and I would copy people's code and everything would melt down. I would spend hours debugging just to realize I needed to pass an extra argument or indent or something.
Today I'm better at my job. I am now the one writing confusing function APIs 😈
It's no exaggeration sometimes it takes a dozen different how-to blogs and stack overflows to find an example where somebody has exactly what you need and nothing more. So many people add so much fluff and unusual structures that the thing they're claiming the code does can't even be found.
When I get helper functions from stack overflow or similar, I normally add a comment with a link to the article, mostly for my own sake so if there's any problems later I can re-read the article to get more info, or use it to try and find other solutions.
I used to do that on complete copy and paste parts.
Now we aren't allowed to do so. If stackoverflow.com is used you have to adjust the answer so that in court your code will not be a copy. They are afraid of users licenseing their code afterward.
For JS shit I usually have to rewrite them because they aren't production quality in terms of readability. Still really useful for getting answers on obscure stuff
The quality is definitely varying, the hardest part is to find a example that fits what you expect, or looks like it can be refactored into what you need.
Plagiarism isn't just using someone else's work. It's when you use someone else's work and claim it was your own. The programmers aren't plagiarizing as they're being freely admitting it's not their work.
If you've ever copied and pasted code from StackOverflow without mentioning the author, linking the creative commons license, and linking to the author's account you've technically violated the creative commons license and I'd argue you've technically plagiarized.
All code already exists in Plato's world of perfect abstractions. Programmers merely view this ideal world darkly and scribble what imperfect algorithms they can vaguely remember.
Unless there's a bug. Then it is my code and I have to fix it. Immediately. No, I don't want to discuss my thought process for "why I made that decision" I want to fix it. Why are we having a chat about milk pouring technique while it is dripping off the fucking table. Prod is burning and you want to fiddle! (Meanwhile this is a minor bug that nobody has ever actually complained about but just the knowledge that it was my fault...)
I have a suspicion that the reason universities crack down on plagiarism this hard (to the point of outright making up offenses like ‘self plagiarism’), is that it’s the only form scientific misconduct that is easy to prove and investigate.
If you are wondering if it’s true, just look at how long it took for Hendrik Schon to get caught. And even then, the smoking gun was reusing (fake) graphs in a publication.
They crack down on plagerism because they're trying to teach and assess you, not whoever you copied from. If they wanted copied answers, they could just photocopy the answers for you and save everyone a lot of effort.
The real world may be different, but the idea is to get the knowledge and, more importantly, the way of thinking about your particular subject, into your head. Once you know that, you know what to copy.
I was trying to make a larger point about the concept of plagiarism as a form of scientific misconduct. In a teaching setting you are just perpetrating exam fraud and should get nailed to the wall.
There are also a lot of recurring problems, obscure bugs, performance enhancements that someone has already solved. Software development should care about completing a task, not inventing the wheel (or an image upload) the millionth time.