Non reinventare la ruota, a meno che tu non abbia validi motivi per farlo.
Se sei a conoscenza dell'implementazione effettiva, ma ritieni di poter fare meglio (il secondo motivo dell'elenco), inizi a spiegare a te stesso che esattamente stai immaginando di migliorare rispetto a soluzione esistente Poi,
- O risolvi il problema,
- Oppure non riesci a risolverlo,
- Oppure, immagino, il tuo caso reale, scopri che non puoi clonare la soluzione esistente in primo luogo, prima ancora di provare ad aggiungere le tue caratteristiche uniche o fare le cose meglio.
Negli ultimi due casi, controlli semplicemente costantemente i tuoi obiettivi e il tuo stato attuale.
- Non codificare solo per lo scopo della codifica. Codice con un obiettivo in mente.
- Non passare ore a scrivere codice non testato e non testabile. Inizia scrivendo i test, quindi esegui il codice stesso.
-
Non tentare ciecamente di raggiungere un obiettivo impreciso. Scrivi, se necessario, i precisi requisiti funzionali e non funzionali. Avere gli ultimi è particolarmente importante. Se stai reimplementando qualcosa, assicurati di avere abbastanza requisiti non funzionali che controllano le prestazioni della tua soluzione rispetto a quello che cloni, quanto è documentato, quanto è estensibile, ecc.
La raccolta e la scrittura di tali requisiti, a proposito, potrebbe spingerti a esplorare più a fondo la soluzione che stai clonando, cosa che alla fine potrebbe condurti alla conclusione che il tuo reale bisogno è già risolto da esso, o che invece di reinventando tutto, potresti semplicemente estendere la soluzione esistente. Ecco un esempio sia di ricerca di funzionalità sconosciute che di estensione della soluzione.
Infine, per quanto tempo continuerai a provare fino a quando capirai che stai seguendo una strada sbagliata dipende dalla tua personalità. Io stesso ho sprecato quattro ore questa domenica cercando di implementare qualcosa in Python (anche se non ho mai usato Python prima), per capire finalmente che ho completamente fallito, e che l'unico modo ragionevole per fare il mio lavoro è di scartare tutto ciò che ho fatto per ore e risolvere il problema aziendale in una lingua che uso quotidianamente negli ultimi sei anni. Altre persone avrebbero trascorso forse un giorno. Altri avrebbero abbandonato dopo un'ora.
Dipende anche dal contesto. Volevo davvero provare qualcosa di "reale" in Python. Se fosse una lingua non ho una buona opinione, avrei abbandonato dopo il primo numero, incolpando la lingua.