Simplemente no estoy de acuerdo con la mayoría de las respuestas. Copiar y pegar no está bien y casi siempre lleva a una solución por un largo y oscuro camino que el desarrollador nunca pretendió.
Yo he hecho un poco de copiar y pegar en mi pasado. Mi primer par de veces me di cuenta muy rápidamente que tendría que aprender la lógica, ya que era mi solución, tenía que poseerla. No hay nada peor que te digan que arregles o perfecciones una solución de la que no tienes ni idea.
Durante un tiempo encontré en Stack Overflow un recurso bastante bueno para encontrar ideas para soluciones. Lo más probable es que alguien ya haya hecho lo que tú's está tratando de hacer, a veces no's. Pero a medida que te desarrollas, aprendes y creces, SO se convierte en un trampolín.
He trabajado con desarrolladores que copiaban y pegaban, en empresas pequeñas y multinacionales, y su código sobresale como un pulgar dolorido. O es demasiado sofisticado o es una locura. Como jefe de tecnología o jefe de desarrollo esas cosas realmente te preocupan.
Esta pregunta me comunica una falta de comprensión sobre lo que es la programación. No es simplemente escribir en un teclado. Si lo fuera, los monos habrían sido entrenados para hacerlo hace 50 años.
La programación es el análisis del dominio, la resolución de problemas, la comunicación, el aprendizaje y, por último, la programación. El acto de escribir en el teclado es la culminación de todo lo anterior. Claro, puedes abrir un editor y empezar a golpear las teclas, pero intenta eso en un lugar de trabajo.
Una vez me llamaron vaquero, tuve ese enfoque durante algún tiempo y tenía la reputación de ser el que iba cuando necesitabas que la mierda se hiciera rápido y no se rompiera. Con la experiencia aprendes la ruta o el menor dolor, pero no lo hagas como un principiante, sólo parecerás alguien que tiene una inclinación por los atajos y la brevedad.
Todavía tengo esa reputación, pero cuando tienes aplicaciones que hacen cientos de miles en beneficios que tú creaste sin ayuda, o la longevidad del uso de producción continua sin cambios, puedes llevarla como una insignia de honor. Eso no me convierte en un mal programador, sino todo lo contrario. Soy muy diligente y minucioso con mi dominio, pero sigo cometiendo errores como todo el mundo.
Un verdadero programador hace preguntas, entiende el dominio y dedica tiempo a analizar el problema para formar una solución. Un desarrollador de copiar y pegar no lo hace.