Questa è un'ottima domanda E penso che non siano solo i programmatori senior che si imbattono in questo: affrontarlo presto può essere un ottimo modo per uno studente per accelerare lo sviluppo delle proprie abilità.
Ci sono due lati di questo problema: uno che è cattivo e uno che è effettivamente buono .
Cattivo: scegliere la soluzione sbagliata
Ecco un esempio - come uno sviluppatore inesperto, si può avere solo realmente risolto due problemi prima, problemi di A e B . A questo punto, sai che ci sono problemi che non conosci, ma data la lente della propria esperienza, un sacco di ciò che si vede sembra che potrebbe essere A o B .
Arriva un nuovo problema. A voi, questo nuovo aspetto del problema come problema A , in modo da risolvere nel modo che di solito risolve A . Qualcosa non si sente bene, e ci vuole più tempo, e come si lavora si finisce per rendersi conto che questo è un problema nuovo, C . È una variante di A che non sapevi esistesse.
Quindi cosa fai per non commettere di nuovo questo errore? Due cose:
- Scopri cosa c'era di diverso in questo nuovo problema. Scopri quali approcci potrebbero aver funzionato diversamente e perché.
- Catalogare questo problema e passare alla risoluzione di nuovi problemi.
Questo dovrebbe aiutarti a risolvere naturalmente questo problema. Quando hai 10 anni di esperienza, conosci i problemi dalla A alla Z e il tuo repertorio di soluzioni è ampio.
Buono - Efficienza
Nel mondo reale, con scadenze e risorse limitate, usare ciò che sai non è sempre male:
- All'inizio del processo di risoluzione dei problemi, si confronta il nuovo problema con tutti i problemi che si conoscono.
- Tenterai di riconoscere i segni e deciderai quale problema sembra avere.
- Se non è possibile effettuare una corrispondenza al 100%, uno sviluppatore esperto soppeserà il rischio di dedicare più tempo alla scoperta rispetto ai rischi di un'esecuzione eventualmente errata. Se il rischio di perdere tempo è troppo alto, allora vai avanti con quello che sai.
Non è una brutta cosa: utilizza l'analisi del rischio per scegliere l' efficienza con una precisione del 100%. Viene fatto ogni giorno e saremmo tutti legati a cose che non ci portano da nessuna parte se non lo facessimo.
Quindi, per rispondere alla tua domanda:
Come programmatore con una discreta esperienza, come si può combattere questa tendenza ad affrontare sempre la soluzione dei problemi da percorsi "provati e veri" dell'esperienza passata?
- Continua a cercare e catalogare nuovi problemi
- Arriva meglio a scegliere la soluzione giusta per il problema; invece di sapere quale soluzione, sapere perché è giusto.
- Esercitati e affina le tue capacità decisionali. A volte l'efficienza è la scelta giusta e migliorare nel riconoscere quei tempi porterà a vantaggi misurabili nel mondo reale.