Ieri mentre giravo per casa mi sono reso conto di avere realmente una marea di libri! Il bello di un libro è che ti lascia sempre qualcosa, persino quando è prettamente tecnico! Ma quali sono i libri che dovrebbe leggere ogni programmatore?
Ho pensato: perché non raccontare nel blog quali sono i libri che più mi hanno stimolato e mi hanno fatto crescere?
Dunque eccoci quì 🙂
I 10 + 1 Libri Che Dovrebbe Leggere Ogni Programmatore
Nello stilare questa lista ti racconterò brevemente ciascun libro, per alcuni di essi ho già scritto anche articoli a parte, per altri non ho ancora provveduto.
Clean Code: A Handbook of Agile Software Craftsmanship
Questo libro è stato scritto da uno dei pilastri e fanatici del codice pulito (Robert C. Martin). Chi mi segue su Facebook e sugli altri Social sa bene quanto io tenga a questo aspetto. Questo libro, scritto molto bene e presente solo in lingua inglese, non ti parlerà unicamente di indentazione del codice e del perché è meglio evitare i commenti nel codice.
In questo libro ti verranno spiegati alcuni design pattern fondamentali, illuminandoti anche sulla trappola dell’utilizzo dell’ereditarietà e mostrandoti esempi in pseudo-codice. Il lettore viene totalmente stimolato nel ragionamento e guidato passo dopo passo.
Il libro racconta inoltre tanti casi studio a testimonianza di quanto sia importante scrivere buon codice ed utilizzare design pattern di un certo livello condivisi nel team.
Se ti interessa è in vendita su Amazon a questo indirizzo.
The Lean Startup: How Constant Innovation Creates Radically Successful Businesses
Eric Ries è l’autore di questo capolavoro ed è l’ideatore del movimento Lean Startup. Questo nuovo modo di costruire un’azienda e di rapportarsi con i clienti è sicuramente innovativo. Le aziende in cui ho lavorato che applicavano le metodologie descritte in questo libro hanno sempre avuto una crescita costante!
Sono convinto che applicare le metodologie descritte in questo libro semplicemente nella vita ed il lavoro di tutti i giorni porti grandi benefici! Essendo un programmatore, Eric Ries porta molti esempi di aziende informatiche e quindi credo che capiti a pennello per questa classifica.
Se sei interessato a saperne di più sull’argomento e sul libro ho scritto l’articolo Metodologie Agili e Lean: Come migliorare la tua azienda!
Il libro è disponibile su Amazon anche in italiano a questo indirizzo, in lingua inglese a questo indirizzo.
Libri di Design Patterns
Credo che ogni programmatore diverso da una scimmia debba studiarsi i diversi design patterns e magari anche inventarne di nuovi! E’ difficile però inventarsi nuovi design patterns senza conoscere quelli esistenti e senza capire quali sono i ragionamenti dietro a ciascuno di essi.
Ho deciso in questo caso di raggruppare più libri, perché rientrano tutti nella stessa categoria e sono tutti utilizzati nelle università italiane e, quelli in lingua inglese, anche nelle università estere.
- Il primo è in italiano e si intitola Design Patterns, lo trovi su Amazon a questo indirizzo. Il libro va sempre subito al punto e richiede alcune conoscenze di base sulla programmazione per capire bene i concetti. Sto consigliando un libro così vecchio con esempi in C perché credo che sia uno di quei libri dove quel che conta è la modalità di pensiero e le capacità logiche che ti fa acquisire. Questo libro è in un certo senso la traduzione italiana in versione “manuale didattico” del secondo libro che ti presento adesso.
- Il secondo è in lingua inglese e si intitola Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series). Lo puoi trovare su Amazon a questo indirizzo. Questo libro viene reputato ancora oggi uno dei must-have nella libreria di ogni programmatore. Gli autori sono decisamente conosciuti nel mondo della programmazione e dello studio dei design patterns. In questo libro vengono descritti 23 design patterns applicabili nella programmazione ad oggetti spiegando alla perfezione ogni dettaglio di implementazione. Codice flessibile, riutilizzo del codice, codice elegante e pulito sono le principali linee guida del libro!
- Il terzo è in lingua inglese e si intitola Domain-Driven Design: Tackling Complexity in the Heart of Software. Lo puoi trovare su Amazon a questo indirizzo. Mi è piaciuto tantissimo leggerlo per quanto è ben scritto e scorrevole! Questo libro ti insegna a modellare il tuo pensiero per scrivere codice di qualità ed utilizzare design patterns adatti all’implementazione che devi realizzare. Non è una questione di quale codice usi, è una questione di come pensi, di come scegli! Dopo aver letto questo libro sono convinto che in un certo senso cambierà il tuo modo di lavorare di tutti i giorni portando enormi benefici a te ed all’azienda! Aggiungo anche che le tecniche descritte in questo libro riguardano spesso la modellizzazione del software, il refactoring, l’interfacciarsi con servizi esterni, il trasformare codice complesso in qualcosa di facile comprensione ed imparare a parlare la stessa lingua quando si è in team!
Libri di Web Design
So che potresti essere tu uno di quelli che si sta chiedendo, ma perché ogni programmatore dovrebbe leggere questi libri? Io sono un backend developer, che me ne frega a me!
Beh, per quanto mi riguarda sono convinto che ti è capitato sicuramente nella vita di dover mettere le mani al CSS, ma, la cosa più importante è che sicuramente ti sei ritrovato durante un meeting a parlare con i colleghi di quale scelta graficamente fosse più adatta! Magari nessuno di voi ha una spiccata indole per la User Experience e magari il tuo boss ha dovuto chiamare qualche consulente esterno!
Bene. Se sei interessato perché ti piace, perché vuoi dare feedback nel tuo ufficio o perché vuoi aprire la partita iva e soddisfare ogni cliente, i libri che sto per consigliarti servono per istruirti sul come posizionare gli elementi nell’interfaccia ottimizzando l’esperienza dell’utente e non servono necessariamente solo se conosci il CSS. Queste idee di design sono utili per l’interfaccia costruita in un qualsiasi modo, anche con carta e penna!
- The Principles of Beautiful Web Design Third Edition, scritto da due dei personaggi più conosciuti al mondo per quanto riguarda il Web Design: Jason Beaird e James George. Non è assolutamente necessario conoscere il CSS né altro. Il libro è a colori e solo in lingua inglese. Si capisce benissimo, è illustrato davvero bene ed è uno di quei must-have che a mio parere tutti dovrebbero avere. Astrae completamente il tutto. Non è una questione di codice, ma è una questione di insegnarti a vedere ed a creare una bellissima User Experience! Lo trovi su Amazon a questo indirizzo.
- CSS Secrets, Better Solutions To Everyday Web Design Problems, scritto da uno dei punti di riferimento del Web Design. Lea Verou ha collaborato con praticamente tutte le aziende di maggior successo (tra cui ha lavorato anche con W3C/MIT), ha scritto diversi libri ed ha partecipato a più di 80 talk in tutto il mondo. Il libro è a colori ed in lingua inglese! E’ veramente un must-have per chi si occupa di CSS e UX, infatti in questo caso è necessaria una conoscenza minima. Per chi volesse leggere il libro solo per capire quando un tipo di design migliora l’interfaccia e la User Experience è comunque un must-have! Questo libro, unito al primo indicato ti darà la formazione necessaria per diventare un ottimo Web Designer. Lo trovi su Amazon a questo indirizzo.
- CSS, The Missing Manual, scritto da David Sawyer McFarland è uno di quei libri/manuali che ti insegnano a fare qualcosa, in questo caso a scrivere CSS. Il libro è in lingua inglese in bianco e nero. Descrive ogni singolo e possibile codice CSS, ogni cavillo, ogni trucco ed infatti è una bibbia da 700 pagine! Se vuoi imparare il CSS ed avere un manuale con un ottimo indice sempre a portata di mano ti consiglio molto questo libro! Personalmente mi sono trovato davvero bene! Non lo reputo comunque un must-have (10 libri + 1 ricordi?), poiché non credo che sia necessario per tutti conoscere a puntino il CSS, però è utile menzionarlo per chi vuole poi approfondire maggiormente il libro descritto subito prima, CSS Secrets. Lo trovi su Amazon a questo indirizzo.
Code Complete 2nd Edition
Scritto da Steve McConnell è tutt’ora utilizzato come testo universitario in tante università! E’ in lingua inglese, per quanto la copertina sembri vecchia la cosa fondamentale è proprio il fatto che questo libro non passa mai!
E’ indipendente dal linguaggio ed infatti spiega tante cose in cui un lettore con esperienza ci si ritrova sicuramente! Dalle tecniche di design per un codice sempre pulito, la creatività nel codice, le tecniche di refactoring, la programmazione in team, risoluzione di bugs ed evoluzione del codice nella maniera più corretta.
Personalmente consiglierei questo libro a chiunque voglia consolidare le proprie conoscenze ed a tutte quelle persone che vogliono diventare programmatori.
Il libro lo trovi su Amazon a questo indirizzo.
The Pragmatic Programmer: From Journeyman to Master
Un capolavoro di Andrew Hunt, credo sia uno di quei libri destinati a non morire mai. Anche questo di vecchia data, ma sempre tante verità. Verità immortali probabilmente perché quello che ti insegna è un pensiero. Come affrontare i problemi durante la scrittura del codice.
In questo libro si parla di scrittura di tests unitari, codice dinamico, flessibile e pulito! Si raccontano problemi quotidiani che un programmatore con esperienza conosce sicuramente! Lo consiglio però a tutti, sia a chi vuole diventare un programmatore, sia a chi ha esperienza! E’ sicuramente un libro che ha fatto la storia e continua a farla.
Il libro lo trovi su Amazon a questo indirizzo.
Software Architecture in Practice
Sugli autori potreste trovarne a pacchi: Len Bass, Paul Clements e Rick Kazman. Questo libro è stato premiato diverse volte ed effettivamente è stato presentato e menzionato in diversi talks! E’ un punto di riferimento sia per studenti che per chi lavora già da anni e non contiene argomenti banali!
Il libro parla dell’architettura del software che vai a scrivere, senza però concentrarsi solo ed unicamente sul codice che scrivi, ma ampliando il discorso verso il valore di un’architettura corretta osservando il modello della tua azienda, il metodo di lavoro e l’interfacciarsi con altri software e quindi altre architetture.
Scrivere un’architettura focalizzata sul riutilizzo è una delle chiavi per fare il tuo lavoro correttamente e far risparmiare soldi ad un’azienda! Scrivere un’architettura del software corretta permette al team di lavorare più serenamente capendo con maggior velocità ed efficacia quello che scrive e che sta implementando. Questo libro descrive anche tecniche di scrittura del codice, dei test, del refactoring e parla anche di Agile Development.
Lo consiglio a chi è già esperto, ma anche a chi è agli inizi (in questo caso la lettura richiede maggiore concentrazione).
Il libro lo trovi su Amazon a questo indirizzo.
Conclusione
Scriverò altri articoli man mano che leggerò altri libri, non tutti li consiglierò come must-have al contrario di questo articolo che si focalizza proprio sui libri che a mio parere non possono mancare! Se credi che ci siano anche altri libri che dovrebbe leggere ogni programmatore scrivimi nei commenti 🙂
Come avrai visto inoltre non ho menzionato libri prettamente tecnici del tipo “Come imparare Java”, “Come imparare ReactJS” e simili. Questo perché credo che tra i must-have ci siano i libri che fanno da scuola di pensiero!
Ho dovuto menzionare un libro tecnico sul CSS ribadendo però che non è un must-have. In questo caso il libro (il famoso 10 + 1) potrebbe essere utile per una lettura più “limpida” di altri testi quindi non volevo lasciarti a piedi senza informarti 🙂
Per dubbi o domande non esitare a scrivermi nei commenti ?
Se ti è piaciuto l’articolo seguimi su Facebook e Twitter oppure rimani sempre aggiornato con la newsletter (da 1 a 4 mail al mese!)