Sembra che sarò la sola vista dissenziente qui.
Prima di tutto, dobbiamo distinguere tra programmazione copia-e-incolla e programmazione settoriale cargo , poiché sembra che molte persone stiano combinando le due cose.
Copia e incolla la programmazione si riferisce alla pratica di copiare e incollare lo stesso codice più e più volte in diverse parti di un programma, verbatim o con solo piccole modifiche, invece di creare classi o subroutine o qualsiasi altra struttura di codice di ordine superiore offerta dal linguaggio. A volte questo è un sintomo di una deficienza nella lingua / ambiente stesso, ma più spesso è perché il programmatore non capisce (o valorizza) astrazione .
Chiaramente, non sei un programmatore copia e incolla a meno che non si tratti di ciò che stai facendo. Ma è ovvio dalla tua descrizione delle tue attività che questa non è la domanda che stai chiedendo.
Ciò a cui ti riferisci in realtà è chiamato programmazione settoriale cargo . Questo è un insieme di anti-pattern, uno dei quali è la copia all'ingrosso del codice da altre parti del programma o da fonti esterne, senza capire veramente come funzionano o se sono assolutamente necessari.
Può essere vero che molti programmatori lo fanno in misura molto limitata. Ad esempio, a volte abbiamo bisogno di aggirare un bug nel framework o nel sistema operativo, e basta copiare qualche soluzione ben nota perché non siamo davvero interessati a imparare tutto sul bug di qualcun altro che non possiamo aggiustaci. Ma per un programmatore professionista, questi casi dovrebbero essere pochi e distanti tra loro.
Se ti ritrovi a fare questo frequentemente allora dovrebbe essere una bandiera rossa per te. E hai fatto questa affermazione molto poco convincente:
[...] then I try to understand the code and tweak it according to my requirement.
Forse è vero. Può essere. Il problema è che ogni programmatore del culto del carico dirà questo. La domanda è: lo veramente capisci? Davvero?
Lo capisci in misura sufficiente da poterlo scrivere da zero se dovessi, dato un tempo sufficiente? Il risultato sarebbe ragionevolmente privo di bug?
O stai solo facendo delle modifiche casuali al codice che hai copiato fino a quando non colpisci la combinazione magica che fa ciò che vuoi?
Non sto livellando le accuse; Non ti ho mai incontrato, non so niente di te. Ma questo è qualcosa su cui devi riflettere.
Un semplice test è: ti ritrovi a dover modificare e ricompilare molto frequentemente quando sei in procinto di "modificare" il codice? O leggi il codice forse una o due volte e sai immediatamente cosa deve essere cambiato e come?
Se le tue modifiche / modifiche stanno funzionando sulla prima o forse seconda prova, probabilmente hai effettivamente capito il codice che hai appropriato. Se sembri sperimentare molto con il codice copiato, allora mi dispiace dire che sei un programmatore di culto del carico.
Ricordalo per la prossima volta. Guarda come ti avvicini al problema. Se ti trovi a fare l'equivalente di codifica dei pulsanti di mash su un game pad, devi rallentare e provare a imparare un po 'di più sulla libreria o sull'algoritmo che stai tentando di usare, prima di andare oltre.