With plain Google as well as Google Code search tools it is easy to find how to program using some resource or solve certain problems (such as create a Java class, or an FTP block in Perl, etc.). So developers are tempted to just purely copy & paste the code (in a way re-use). Is this an incompetency? I have done this myself, though I think I am a better programmer than many others I have seen. Who has the time to RTFM? In this age of information abundance, I do not think that copy & paste programming is bad.

Isn't that what sites like Stack Overflow do anyway? People ask - OK, here is my problem - how to solve it? Now someone will post complete code and the person who asked the question would simply copy & paste the most voted answer. No matter how small the problem is.

I am working with a bunch of young coders who heavily rely on the Internet to get their job done. I see convenience in copy/pasting and modifying code to get the job done. For example, you may be quite good with algorithms and such, but you may not know how to use a BufferedReader in Java - would you read complete the Javadoc for BufferedReader or look up some example of using it somewhere? 

What are the real dangers of copy & paste coding that can impact their competency? 

Is it bad? Maybe... for learning small examples, for testing out a concept, it's not that bad.

BUT... you have to understand what you are copy/pasting. Otherwise, how do you know that the code is really doing? Sure, it gets the one result you want on the screen but maybe it has horrible performance, maybe it has security holes, maybe it causes memory leaks, maybe it summons Cthulhu, maybe it will cause customer credit card numbers to be leaked, maybe it contains a backdoor...

And most likely, maybe it requires some tweaking to meet business requirements and if you don't understand the code you will not be able to properly tweak it (or better yet: write a more "correct" version)... 

As for "RTFM", yes, I do when it's available. I would read the BufferedReader javadocs, and if I can't get enough information to get my code working, I would then hit Google and search for "Java BufferedReader example". I would not expect the code I find to work immediately with my code, but I would expect to find a simple working stand-alone sample that I can use as an example to correct my own code.

And when it's your own code that you are copying/pasting, that's usually a sign to start refactoring.
