In teoria e accademici, è spesso più saggio capire veramente i dettagli. Questo è il motivo per cui nell'università che studia informatica, puoi cavartela senza dover scrivere molto codice specifico per la lingua. Si apprendono i fondamenti, non la sintassi di C #. Con queste informazioni fondamentali, dovrebbe essere facile imparare un linguaggio di programmazione specifico o altro strumento per quella materia.
Capire i dettagli di diversi algoritmi e strutture dati è buono perché esistono tutti per risolvere diversi problemi - non esistono tutti solo perché alla gente piace inventarli per divertimento. Con questa conoscenza, oltre alla pratica e alla sperimentazione con essi, diventi più efficace nella progettazione di soluzioni in codice.
Raramente è necessario o addirittura una buona idea ri-implementare alcuni algoritmi standard o strutture dati se ne esiste già una. Il software ben progettato è tutto basato sul riutilizzo. Se lavori per un'azienda, spesso non si preoccupano dei tuoi benefici accademici o personali, si preoccupano di essere efficaci in termini di costi, riutilizzando soluzioni, ecc.
In alcuni casi potrebbe essere opportuno reimplementare queste cose, a seconda delle prestazioni, della sicurezza, dei requisiti di stabilità e dei vincoli del sistema. Ad esempio, sistemi operativi in tempo reale, driver hardware, assistenza sanitaria, militari, hardware o software per il traffico.