|Don't ask to ask, just ask|
You're completely right. That's why I tried to draw the line between copy'n paste and look it up, copy only what you understand.
It's maybe also about the commonalities and differences of knowledge and programming.
Which leads me to software / knowledge patents.
We all have to "copy", starting with the (programming) language and words / commands, we use. Also we "copy" known concepts, e.g. object orientation.
And we have to pragmatically take things as given, at some level. E.g. let the compiler decide, which optimizations are best. Or, what an "object" could mean at all (asked philosophical). Knowing these borders is also knowledge, I'd propose.
But, at the level we operate, we should understand what we are doing - Otherwise, well....
I did just put my few cents in, cause I somehow got the feeling, the OP was like - there's so much to know, how can I manage it. I mean, I did also study a lot of history at the university - and there would be many dates to know. But, the exact dates aren't important. Important is, what happened, and why it is important. As long, as I know where to look it up, It's ok.
Anyways, despite the fact it's common sense, knowledge isn't patentable; software and algorithms are. Which might be a real problem, as soon, as you disclose knowledge, you're going to run into all sorts of trouble.
Or, when we compare opensource and closed source software, I'd like to propose opensource is around 10 years in advantage. When did microsoft manage to switch to a real 32bit OS.. Although they are genius in marketing and business.
And I can imagine students, asked to explain their code .. "Well, it's uhhm. working by uuuuuuh." rotfl.