Riunisco insieme 2 libri tecnici che trattano argomenti a prima vista diversi, ma sotto certi aspetti molto complementari. Il primo tratta la corretta ed efficacie gestione della propria vita di sviluppatore di codice, mentre il secondo è un testo prettamente universitario sugli algoritmi di calcolo, che formano la base, appunto, del codice di programmazione.
Ecco il primo.
Se non fosse per l’inglese utilizzato un po’ impegnativo nella comprensione, questo libro sarebbe un’interessantissima lettura per chi lavora nel mondo informatico o professionale in generale, grazie agli innumerevoli consigli di comportamento validi per tutta una serie di situazioni professionali/personali riportate dall’esperienza dell’autore. Attenzione però: chi cerca del codice resterà deluso. Non ce n’è proprio, nessun esempio da cui trarre insegnamento, nessuno script, nessun grafico o diagramma. Solo puro testo, come se fosse un romanzo, pur con una grande dose di note a margine, elenchi puntati, uso del grassetto e poco altro.
L’autore, infatti, è Eric Brechner, direttore della sezione Sviluppo e Apprendimento di Microsoft Corporation, come si vede dalla sua breve biografia presente sul retro del libro.
Queste dense 440 pagine sono la seconda edizione di un testo che raccoglie le osservazioni che l’autore ha raccolto e scritto per una pubblicazione interna in Microsoft, dove si consigliava ai dipendenti come evitare i problemi che possono sorgere nella loro attività di sviluppatori e program manager, come affrontarli quando escono e che lezioni trarre una volta superati con successo.
Come si vede dall’indice sotto, ci sono varie sezioni che riguardano sia lo sviluppo del software, sia la gestione delle persone (capi, collaboratori e sottoposti), sia anche i problemi personali, che comunque andrebbero ad incidere nella propria attività lavorativa.
Diciamo subito che la maggior parte sono osservazioni e consigli che chiunque dotato di una sufficiente dose di buon senso (ed esperienza) metterebbe in pratica quasi automaticamente.
Il valore aggiunto, a mio modo di vedere, è la prosa particolarmente ironica e sferzante (in alcuni passi) dell’autore, condita con un certa dose di situzioni “Microsoft-centriche” che possono risultare molto stuzzicanti ai lettori più curiosi.
Il layout è molto “denso”: rarissime immagini, zero codice (pur essendo un libro di informatica, in fondo), tanti elenchi puntati e note a margine. In compenso ci sono innumerevoli caricature di una foto tessera dell’autore che mostrano gli stati d’animo del momento, come si vede da questa immagine.
Lo spessore del libro è abbastanza consistente (si tratta pur sempre di oltre 400 pagine) e, considerando che è praticamente solo testo, per di più scritto piuttosto fitto fitto, richiederà una consistente dose di tempo per essere letto nella sua interezza.
I 10 capitoli sono peraltro molto lunghi e, complice la presenza esclusiva di testo scritto, sono materialmente impossibili da terminare in una sola serata di lettura.
Su Amazon Italia viene attualmente venduto a 30 euro circa.
Tutto sommato una lettura molto interessante: sicuramente ci si ritroverà in parecchie delle situazioni illustrate dall’autore, e leggere i suoi consigli per evitarne gli effetti dannosi e – soprattutto – come prevederli nel futuro, potrebbe risultare molto utile.
L’inglese potrebbe rappresentare l’unico freno: bisogna conoscerlo molto bene e non avere problemi con gli aspetti colloquiali e meno noti della lingua.
Se vogliamo questo sarebbe stato un valido testo su cui qualche casa editrice italiana si sarebbe potuta lanciare nella traduzione nella nostra lingua ma, ahimè, questo non è successo.
Sommario
1 - Chapter 1 - Project Mismanagement
39 - Chapter 2 - Process Improvement, Sans Magic
89 - Chapter 3 - Inefficiency Eradicated
125 - Chapter 4 - Cross Disciplines
149 - Chapter 5 - Software Quality—More Than a Dream
183 - Chapter 6 - Software Design If We Have Time
219 - Chapter 7 - Adventures in Career Development
269 - Chapter 8 - Personal Bug Fixing
315 - Chapter 9 - Being a Manager, and Yet Not Evil Incarnate
367 - Chapter 10 - Microsoft, You Gotta Love It
399 – Glossary
403 – Index
Il secondo libro, della Wiley, è di natura apparentemente diversa, come detto, ma sotto certi aspetti riguarda la programmazione e il codice in generale, proprio come fa Hard Code.
Si tratta di un testo universitario per gli studenti del primo anno dei corsi di Computer Science e Software Engineering dell’università inglese di Nottingham. Ha un titolo molto chiaro, come quasi sempre accade per questa tipologia di testi, “Algorithmic Problem Solving”, ed è tenuto dal professor Roland Backhouse.
Mi incuriosiva in particolare vedere come veniva spiegato questo argomento di per sé piuttosto complesso nelle università anglosassoni ai giorni nostri.
Già solo il confronto puramente estetico, rispetto ai miei vecchi manuali di università, è impietoso.
Qua siamo di fronte ad un’opera curatissima nei dettagli: ottima impaginazione, font godibile, formule scritte e indentate perfettamente, immagini curate e chiare, carta liscia molto piacevole e rilegatura robusta ma non troppo rigida.
Qua sotto un’immagine presa a caso.
Mentre in quest’altra si nota come vengono scritte le formule matematiche (ottimamente).
Come si vede tutto perfettamente impaginato con grande cura.
Visto che l’argomento, di per sé, ha la complessità nel suo DNA, meglio almeno presentarlo bene, rendendolo interessante (quasi intrigante).
L’approccio è un po’ fuori dagli schemi, dato che presenta prima gli esempi – quasi tutti quelli tipici di un corso del genere nelle università italiane – prima della teoria matematica/algebrica.
Il libro, infatti, è suddiviso in 2 parti praticamente di uguale lunghezza come numerosità di pagine.
Nella prima vengono esposti gli esempi: dai giochi alla Torre di Hanoi, tutti con risoluzione spiegata nei dettagli, sia a parole sia attraverso equazioni e algoritmi di calcolo.
Vengono anche proposti esercizi da risolvere e spunti per progetti di approfondimento. I primi, fortunatamente, dispongono di soluzioni e risposte nell’appendice dedicata.
Nella seconda viene esposta la teoria matematica che fa da collante agli algoritmi. Dall’algebra booleana alla teoria dei numeri e dei quantificatori. Rispecchia abbastanza – se ben ricordo – il nostro programma didattico, anche se credo che qualche integrazione andrà comunque fatta.
Il tutto spiegato con un inglese molto comprensibile anche dai non madrelingua inglese (basta una discreta conoscenza della lingua).
Ho notato che, in data odierna, esiste una sola recensione di questo libro, su Amazon UK, peraltro piuttosto negativa. Non solo d’accordo con le motivazioni addotte da questo utente, che lamenta scarsa chiarezza sia nel testo che negli esercizi. Io li ho trovati molto chiari, ed ho apprezzato molto lo stile di scrittura dell’autore, rigoroso ma non pedante, serio ma non serioso, teorico ma con tanti riferimenti alla vita di tutti i giorni.
Certo, non siamo di fronte ad un manuale di geografia; l’argomento richiede per sua natura un’attività cerebrale prossima al 100%.
Se si volesse leggere qualcosa, c’è da segnalare che dal sito della Wiley si possono scaricare le 4 pagine del breve capitolo 1, “Introduction”, oltre al sommario dettagliato e all’indice analitico (ovviamente tutto in formato Pdf, salvabile e stampabile).
Per questo libro segnalo che è stato approntato un sito apposito, questo: http://algorithmicproblemsolving.org/
Su Amazon Italia il libro viene offerto con uno sconto minimo, il 5%.
Table of Contents
Part I. Algorithmic Problem Solving
3 - Cap. 1. Introduction
7 - Cap. 2. Invariants
35 - Cap. 3. Crossing a River
67 - Cap. 4. Games
95 - Cap. 5. Knights and Knaves
119 - Cap. 6. Induction
137 - Cap. 7. Fake-Coin Detection
147 - Cap. 8. The Tower of Hanoi
157 - Cap. 9. Principles of Algorithms Design
183 - Cap. 10. The Bridge Problem
201 - Cap. 11. Knight’s Circuit
219 - Part II. Mathematical Techniques
221 - Cap. 12. The Language of Mathematics
267 - Cap. 13. Boolean Algebra
285 - Cap. 14. Quantifiers
309 - Cap. 15. Elements of Number Theory
325 - Cap. 16. Relations, Graphs and PTH Algebras
369 - Solutions to Exercises
405 – References
407 – Index
Due libri, quindi, solo apparentemente molto diversi, ma più simili ed utili di quanto si possa sospettare.