Ha senso parlare di libri per programmatori nel 2024, l’età della blockchain, dell’intelligenza artificiale, delle macchine che si guidano da sole, dei voli su Marte?
Sì, parliamo di libri.
Perché esistono libri che trasformano un bravo programmatore in un ottimo programmatore.
Un tempo i programmatori leggevano di più: lo disse già nel 2008 Joel Spolsky, che “i programmatori sembrano aver smesso di leggere”. E questo dato non è cambiato negli ultimi anni.
Quello era lo stesso post con cui Joel Spolsky presentava al mondo una sua nuova creatura, “un niente”, che sarebbe diventata nel corso degli anni la terra promessa di qualsiasi programmatore… Stack Overflow ti dice niente?
E, come per tutti gli altri ambiti della letteratura tecnica, ce ne sono di ogni tipo:
Esistono libri per principianti, che insegnano a scrivere codice pulito e ben strutturato, oltre ad aiutarti a comprendere tutti i principali concetti di programmazione.
Ci sono libri che ti insegnano le migliori pratiche sui linguaggi e sulle metodologie di programmazione.
Altri libri ancora sono specifici per la tua carriera e ti aiutano a realizzarti come programmatore professionista.
Ma ti manca il tempo per leggerli tutti quanti.
Ecco quindi una lista ragionata dei migliori libri per programmatori:
Non ti resta che scoprire quali sono e buttarti nella lettura: ne uscirai un programmatore migliore!
CODE: The Hidden Language of Computer Hardware and Software
Come si dice in inglese, ‘first things first’.
Questo non è un libro per imparare a programmare. Ma se vuoi capire che cosa faccia esattamente il codice che stai scrivendo e come questo codice venga eseguito dalla CPU, questo è il libro che fa per te.
Infatti CODE ti parla dei computer e spiega come funzionano in ogni loro aspetto, a partire dall’hardware fino al software. Elettricità, codice binario, microprocessori, porte, circuiti, codice: Petzold copre tutti gli argomenti che possono coinvolgere il lavoro di un programmatore ad ogni livello.
E lo fa partendo dagli elementi più semplici e aumentando pian piano la complessità, per svelare la magia che si nasconde dietro il funzionamento di ogni pc, smartphone e smart-cosa esistente.
The Pragmatic Programmer
Il programmatore pragmatico è chi ha una visione chiara del proprio lavoro, e riesce a migliorarlo con consigli pratici e senza illusioni.
The Pragmatic Programmer si pone quindi come manuale d’uso pratico, che fornisce consigli per migliorare il lavoro quotidiano dei programmatori e di tutti coloro che si occupano di codice. Partendo da un assunto: la programmazione è fondamentalmente il risultato di collaborazioni.
Come programmatore, nella maggior parte delle situazioni avrai a che fare con codice non tuo. L’intento di Hunt e Thomas è quindi darti un insieme di consigli da applicare in questo contesto.
Hanno quindi redatto una lista di 70 consigli che consentono di scrivere codice migliore a partire da esempi reali, esperienze vissute, errori frequenti e best practices. E tutto questo sempre restando indipendenti da qualsiasi linguaggio, framework o metodologia particolare tu stia usando.
Se i programmatori di grande esperienza possono trovare alcuni consigli oramai parte del senso comune, per chi è alle prime armi questo è un libro fondamentale per diventare un programmatore migliore.
Non è un caso se The Pragmatic Programmer è sempre tra i primi libri consigliati in risposta a chi chiede: “Quale libro di programmazione vorresti aver letto prima nella tua carriera?”.
Introduction to Algorithms
Quando si chiede quale sia il migliore libro sugli algoritmi in circolazione, molto spesso la risposta indica questo libro, e un motivo c’è.
Introduction to Algorithms (o CLRS per gli amici, dalle iniziali dei cognomi degli autori) combina in modo unico completezza e rigore matematico ad una trattazione accessibile a lettori di ogni livello, anche grazie all’uso di uno pseudocodice di facile lettura. Il libro copre una vasta gamma di algoritmi in profondità, rendendo ogni capitolo una singola unità di studio relativamente autonoma.
Anche per queste caratteristiche viene proposto nelle università di mezzo mondo come libro di testo, per cui se hai una laurea di indirizzo informatico, probabilmente lo conosci già.
Ma qui non si tratta di cultura informatica fine a se stessa, si tratta di diventare un programmatore migliore. Certo, si riesce a sopravvivere senza conoscere gli algoritmi e le strutture dei dati. Ma chiunque voglia fare sul serio in informatica, non può prescindere da queste nozioni, visto che sono gli strumenti con cui i programmatori risolvono i problemi.
Quindi se aspiri a fare qualcosa di meglio del semplice cercare una risposta su Stack Overflow e copiare il codice scritto da qualcuno più bravo di te, questo libro ti aspetta.
The Art of Computer Programming
Eccolo, il ‘Guerra e Pace’ dei libri per programmatori: tutti lo conoscono, molti dicono di averlo letto, ma nessuno poi sa rispondere quando chiedi del Ballo di Capodanno tra Nataša e Andrej.
Come si fa a consigliare un libro di queste proporzioni?
Per intenderci, parliamo di un leviatano di migliaia di pagine, 4 volumi e diversi fascicoli, ancora in corso di pubblicazione, opera mastodontica a cui Knuth ha dedicato (e sta dedicando) decenni della propria vita.
Leggerlo è una sfida all’intelletto e alla perseveranza. Ma in premio ti consegna una quantità incredibile di informazioni dettagliate e approfondite sul mondo degli algoritmi, a patto che si abbia la conoscenza matematica necessaria per capirli.
Tutti elementi che ti portano sulla soglia dell’illuminazione mistica, concretamente rappresentata da Bill Gates che ha detto, a chiunque riesca a finire questo libro, di mandargli direttamente il curriculum.
Che ne dici, vale la pena iniziarlo?
Algorithms to Live By: The Computer Science of Human Decisions
Algorithms to Live By chiude i libri per programmatori legati agli algoritmi. A differenza dei precedenti, questo non è un libro tecnico su come funzionano gli algoritmi informatici.
Si tratta invece di un’esplorazione interdisciplinare, in cui gli autori offrono uno spaccato di come gli algoritmi informatici possono essere applicati con successo alla vita quotidiana.
L’assunto di partenza è semplice ma potente: la vita di tutti i giorni ci pone di fronte a problemi decisionali dettati da tempo e spazio delimitati. Questi dilemmi sono una versione di ciò con cui si sono confrontati gli scienziati informatici con i loro algoritmi. Perché non imparare strategie per la vita umana dalla saggezza dell’informatica?
Se hai dei dubbi su quanto possano essere applicabili nella vita umana i concetti che studi con l’informatica, questo è il libro che ti aprirà una nuova prospettiva!
Code Complete: A Practical Handbook of Software Construction
Scrivere buon codice non ha alcun legame con l’architettura o con il tipo di linguaggio di programmazione che stai usando. E per scrivere buon codice può essere d’aiuto una guida pratica alla programmazione.
Con questo intento nasce Code Complete, un libro considerato un must read per tutti i programmatori che affrontano con serietà il proprio mestiere.
In questo manuale si trovano le tecniche più efficaci e i principi da conoscere condensati in consigli pratici. A prescindere dal tuo livello di esperienza, dalle tecnologie che utilizzi o dalla grandezza del progetto a cui lavori, in questo libro troverai informazioni utili e stimoli che ti aiuteranno a costruire codice di qualità sempre più alta.
Clean Code: A Handbook of Agile Software Craftsmanship
Questo è un altro classico che molti programmatori indicano tra i libri che hanno cambiato il loro modo di programmare.
Scritto da una leggenda dell’informatica come “Uncle Bob” Martin, Clean Code è diviso in tre parti.
La prima descrive i principi, i modelli e le pratiche per scrivere codice pulito.
La seconda parte presenta diversi casi di studio, ordinati secondo una complessità crescente. Ogni singolo esempio è un esercizio per ripulire il codice, per trasformare un esempio di codice problematico in una versione più solida ed efficiente.
La terza parte contiene un riepilogo di riferimento di tutto ciò che si è visto e fatto nei casi di studio. Il risultato complessivo è quindi un manuale con spiegazioni dettagliate e pratiche sulla pulizia, la scrittura e il refactoring del codice.
Non a caso Clean Code viene dopo Code Complete: infatti entrambi i libri si occupano della struttura del codice e delle modalità con cui scrivere codice di qualità, ma a livelli diversi. Mentre Code Complete usa un approccio più pratico ai problemi, Clean Code si pone ad un livello più alto.
Dopo aver letto Clean Code, sarai quindi in grado di implementare la metodologia Agile (una delle forme principali di SDLC, systems development life cycle) nei tuoi progetti di sviluppo software. Ma soprattutto, sarai un programmatore migliore.
Tip: questo libro è stato tradotto anche in Italiano, si trova con il titolo ‘Clean code. Guida per diventare bravi artigiani nello sviluppo agile di software‘.
The Complete Software Developer’s Career Guide
La carriera di un programmatore non è dettata solo dalle conoscenze tecniche e dalla bravura nella programmazione.
Infatti, un developer corre il rischio di rimanere incastrato in una posizione lavorativa mediocre se non ha gli strumenti giusti per progredire nel mercato del lavoro.
Ma tra i libri per programmatori ce n’è anche uno che si è posto il problema e ha provato a risolverlo.
Infatti proprio perché risponde a queste esigenze, la Complete Software Developer’s Career Guide è uno dei libri più venduti su Amazon in ambito Programmazione. E anche in ambito Ricerca di lavoro.
Questo libro infatti ha il consiglio giusto per programmatori ad ogni livello di carriera, dai developer alle prime armi ai programmatori senior.
Ecco alcuni degli argomenti trattati:
- come costruire il proprio profilo professionale
- quali competenze tecniche sono richieste dal mercato del lavoro
- come creare un curriculum da informatico (anche senza esperienza lavorativa)
- quali lacune colmare nelle tue conoscenze tecniche
- come costruirti una reputazione da professionista
- come decidere se la consulenza o l’imprenditorialità sono percorsi da intraprendere
Cracking the Coding Interview: 150 Programming Interview Questions and Solutions
Restando in ambito sviluppo di carriera, un programmatore d’oggi deve anche essere in grado di fare grandi performance al colloquio di lavoro.
Ed ecco che viene in aiuto Cracking the Coding Interview di Laakmann McDowell, che sfrutta la sua grande esperienza ai due lati del tavolo del colloquio di lavoro.
Programmatrice prima, e recruiter di programmatori poi, Laakmann McDowell ha condensato la sua esperienza in questo libro, che tiene come focus principale proprio le domande di programmazione ai colloqui di lavoro.
150 domande nella prima edizione, 189 nelle edizioni più recenti, vengono proposte, esaminate e sviscerate dall’autrice. Lo scopo non è solo quello di scoprire la risposta a queste domande tecniche, ma è soprattutto vedere come si arriva alla risposta. Infatti, attraverso un percorso di domande sempre più complesse, il lettore viene guidato nella sottile arte del problem solving applicato agli algoritmi.
E riuscire ad eccellere in quest’arte è una competenza che viene utile a qualsiasi programmatore, non solo a chi deve affrontare un colloquio di lavoro!
➤ A proposito di colloquio di lavoro: sei sicuro di saper rispondere alle 10 domande non tecniche più frequenti?
The Mythical Man-Month: Essays on Software Engineering
Per finire la nostra rassegna dei migliori libri che un programmatore deve leggere, ecco il mitico The Mythical Man-Month.
Questo è uno tra i libri per programmatori che ha fatto la storia dell’informatica. Non esiste lista dei libri must read per informatici che non lo citi.
Hai tempo di leggere un unico libro su come gestire un progetto software?
Leggi The Mythical Man-Month.
Vuoi un libro di programmazione molto pratico su progetti complessi di sviluppo software?
Leggi The Mythical Man-Month.
Eppure è un libro pubblicato per la prima volta nel 1975. Per dire, nel 1975 finiva la guerra del Vietnam e veniva fondata la Microsoft. Elon Musk aveva 4 anni, Zuckerberg sarebbe nato 9 anni dopo.
Come è possibile che sia ancora da consigliare, contando che è stato scritto in quella che era la preistoria del panorama tecnologico in cui viviamo oggi?
Ce lo spiega la premessa stessa del libro: i computer cambiano, le persone no.
The Mythical Man-Month è un classico della programmazione che indaga gli elementi umani del software engineering, ovvero quella componente che non è cambiata nel corso degli anni. Se vuoi diventare un Project Manager, questo libro ti fornisce indicazioni pratiche per farti capire cosa può andare storto nel software development, e come lavorare, organizzare e gestire dei team.
BONUS
Soft Skills: The Software Developer’s Life Manual
Come suggerimento bonus, chiudiamo con uno dei pochi libri per programmatori che raccoglie tutto ciò che di non tecnico può interessare la vita di un programmatore.
La maggior parte dei programmatori si diverte con il codice, ma non trova così divertente la gestione di tutto ciò che ci gira attorno. Parliamo di clienti e manager, produttività e gestione scadenze, personal branding e stabilità economica. E perché no, anche di fitness e relazioni.
Insomma, questo libro si pone come aiuto ai programmatori per diventare persone migliori e quindi developer migliori. Non stupisce quindi se un libro di questo tipo sia stato scritto da un programmatore – life coach, e il tono del discorso rispecchia questa impostazione motivazionale.
Certo, il punto di partenza resta una versione un po’ stereotipata del programmatore. Ciò nonostante, questo libro offre spunti interessanti su tanti argomenti che ti possono poi spingere ad approfondire il discorso su pubblicazioni specifiche.
Ecco finiti i libri per programmatori che dovresti conoscere e leggere.
E adesso che hai le carte in regola (letteralmente!) per diventare un programmatore migliore, non ti resta che metterti in gioco:
Iscriviti a GeekandJob, e preparati per il prossimo step della tua carriera!
Related posts
Scopri GeekandJob
Lavoro, formazione e informazione: tre elementi combinati per dare il massimo valore a talenti e aziende del settore tecnologico.