Conosco un ingegnere del software che ha comprato i libri. Sono seduti sul suo scaffale a casa. Dice che li legge, ma non li capisce. Onestamente penso che la gente li abbia sullo scaffale più come un trofeo che come riferimento. Io stesso ne ho ordinato un set per il mio lavoro. Quando ho cambiato lavoro, è stato accidentalmente inscatolato. Li ho trovati quando li ho disimballati mesi dopo. Sono tornato al mio vecchio lavoro e qualcuno li aveva già sostituiti con un nuovo set. La persona che gestiva la biblioteca mi ha detto che avrei dovuto tenerli, ma non mi sembrava giusto, così ora hanno due copie. Ma per essere onesti, sapevo anche che non li avrei mai usati veramente.
Penso che sia molto meglio comprare libri recenti che si limitano a ciò su cui si sta lavorando attualmente, sapendo che diventeranno obsoleti in pochi anni. L'ingegneria del software e l'informatica sono campi in rapido sviluppo. Conoscere gli algoritmi di base è importante, ma se siete un ingegnere o uno scienziato piuttosto che un accademico, è probabilmente meglio che prendiate libri che siano rilevanti per il vostro lavoro e che siano recenti. I libri di Knuth sono senza tempo, ma ci sono modi migliori per imparare algoritmi conosciuti. Ciò di cui avete veramente bisogno è come applicarli in contesti pratici e, cosa più importante, come creare i vostri algoritmi in base al problema che avete a portata di mano. Le persone ricreano la ruota nel nostro campo, ma per lo più non lo fanno. Prendono gli ultimi libri pratici, e se il problema è davvero nuovo, allora ne scrivono uno proprio, e lo scrivono in base ai requisiti del progetto, che sia per uso commerciale o accademico.
Ho visto più copie di The Timeless Way of Building sugli scaffali delle persone che una serie di libri di Knuth, e quel libro riguarda l'architettura per edifici fisici, non lo sviluppo di software. Ma le analogie sono tutte valide. Struttura, riusabilità, adattabilità e facile manutenzione sono ciò che rende i programmi forti e duraturi, proprio come un edificio ben progettato e costruito.