This post has an appropriate balance of talking about the problem and what the individual developer should be concerned about without being accusatory. I completely agree that professionals in any industry should take pride in their work. When you care more about what your doing, you produce a higher caliber of product which in turn leads to better habits.
The copy and past developer seems to have arisen from the high demand that some companies impose on their employees. “Just get it done and we will fix it later” leaves behind so much debt and this perpetuates into many wasted hours of work for not only the original author, but those who have to use the codebase later.
As with any problem, there is no silver bullet. Programmers cannot sit down and analyze every single problem that they have to do. However, I think that having pride in your work leads to a higher level of overall satisfaction with the job.
I’m usually searching Stack Overflow because I don’t know the syntax of what I’m programming in much less so than the semantics. So while I’ve accomplished writing X code in language Y, I’m trying to write X code in language Z, but I don’t want to go through the entire documentation and/or specification of language Z to figure out how to write X code.
This is not all negative.
On some level - it is a good thing that some problems have a direct, correct answer. Our industry wastes a lot of time resolving old problems. No plumber takes “pride in their work” if they have to learn how to weld the same pipe over and over and over again.
I think the problem being discussed is not just copying an existing answer, but copying without any understanding of it.
And the same could be said of people attempting to answer (and especially if there’s a bounty on the question), without actually having much clue as to the topic.
In my experience with SO (and with StackExchange in general), is that it is also not that uncommon for completely wrong answers to be voted up, by other people that simply know no better. Heck, I’ve asked how to do a Gigabit speed test on serverfault, and a bunch of idiotic answers came up claiming that I’m confusing port speed with the actual connection, and these answerers (some were even deleted, IIRC) didn’t even bother to mention or acknowledge anything like BDP!
Clojure / Haskell a few years ago were a great cure for being a StackOverflow developer. You had to really grok the basics to get anything done, there were simply no snippets anywhere to be found. Coming from Java / Ruby / bash it’s an absolute culture shock. You take a big hit short-term, but it really forces you to understand what you’re doing, and so you end up being a lot more knowledgeable long term.
I do believe that snippets are extremely useful though, so you want a good mix of the two. There’s a reason why we have cookbooks and patterns etc. Luckily those are coming together now that the two communities above are seeing more attention and more focus on newcomers.
X years ago when there was just the pickaxe book Ruby was somewhat similar. Same with Java in school when I started in 1997 (early adopter uni, I dropped the honor’s class and went for the basic C class).
I think stackoverflow is awesome, but I don’t have any karma even to upvote things there. I wish I could sometimes just because of the best answer not always being the best on there. I guess I’d need to answer or ask stuff, but a) I think I can’t answer stuff because of lack of karma and b) why would I ever ask a question on stack overflow…