<div dir="ltr">Interessante... la difficolta' e' capire cosa sia un "libro informatico". Per dire, dei tre che menzioni due sono sostanzialmente libri in area project management, uno e' un libro su best practice di coding (in salsa java, ma relativamente generalizzabile).<div><br></div><div>Altre persone hanno inteso "informatico" in modo completamente diverso. </div><div><br></div><div>Per me? Allora, il problema piu' grosso e' se vogliamo un informatico punto e basta, un ingegnere che lavora nell'industria, o chissa' cosa.</div><div><br></div><div>Io tendo a rispondere fra le prime due (quindi parlo di libri di interesse per un ingegnere che fa l'ingegnere).</div><div><br></div><div>Per me i criteri di scelta sono:</div><div>1. ampia applicabilita': e.g., alcuni titoli menzionati sono eccezionali, ma per dire... la maggior parte degli informatici potrebbe non avere mai bisogno di leggere un libro sui compilatori... e perfino un libro sulle reti -- come il Tanenbaum -- potrebbe essere un overkill). Come corollario, non citero' libri specifici su un linguaggio o su una tecnologia: e' ok che si parli di un linguaggio, ma l'idea e' che sia usato come strumento, non come fine.<br><div>2. ampio spettro: voglio che il libro non copra una sola base... devo sceglierne solo tre. Quindi per esempio un libro specifico sugli algoritmi, per quanto utile, potrebbe bruciare uno dei tre preziosissimi slot senza portare troppo valore aggiunto)</div><div>3. Non voglio vedere *nulla* sui design pattern che sono una delle piu' grandi fregature che ci hanno propinato: invece di darci modelli con il giusto livello di astrazione, ci danno la programmazione ad oggetti e poi ci devono costruire sopra questo set di pattern che stanno solo dicendo: quello che hai (OOP) non e' abbastanza espressiva, hai bisogno dei pattern perche' ci sono schemi di problemi simili che possiamo astrarre. E allora datemi un modello espressivo in primo luogo. E non e' nemmeno che la programmazione ad oggetti non mi piace... semplicemente e' monca. Parliamo di programmazione ad attori e restringiamo il campo di applicabilita' sul componente invece che a livello di codice spiccio. Oppure prendiamo un modello piu' semplice (la maggior parte dei pattern vanno a coppie: uno che sfrutta composizione e uno che sfrutta ereditarieta'... a me indica chiaramente un problema. e allora abbandoniamo il concetto di ereditartieta' e un sacco di roba inutilmente complicata e fuorviante se ne va...)</div><div><br></div><div><br></div><div><br></div><div>Quindi:</div><div><br></div><div>1. SICP: davvero. Se quando intervisto qualcuno conoscesse tutto e solo quello che c'e' sul SICP, dal punto di vista tecnico lo prenderei al volo. Se dovessi restringermi ad uno ed un solo libro, sarebbe questo. Ti insegna a pensare funzionale *e* ad oggetti. Ti insegna a gestire lo stato.  Ti fanno un po' di strutture dati (specialmente ti rende chiara la differenza fra un tipo di dato astratto e un'implementazione). Ti fa vedere come si scrive un'interprete (che e' un concetto molto generale), ti presenta il modello di macchine a registri (che e' un modello utile per ragionare sul codice), ti fa vedere come funziona un compilatore (appunto: un ingegnere non deve per forza sapere scrivere un compilatore allo stato dell'arte -- dragon book --, ma deve avere idea di come funzioni). Ti spiega la differenza fra eager e lazy evaluation, ti introduce alle magie della metaprogrammazione e perfino della computazione non deterministica. E' di fatto un concentrato di tutto quello che e' "CS fundamentals". </div><div><br></div><div>2. The Linux Programming Interface: vince per l'ampiezza dello spettro e di applicabilita'. Al di la del nome, copre in modo eccellente POSIX e non solo Linux. Certo... se sei MS sei un po' fuori, target. Ma per il resto... Quel libro copre da solo sistemi operativi (praticamente tutto quello che si vuole), un bel po' sulle architetture degli elaboratori *e* abbastanza networking per il 90% delle esigenze. Incidentalmente, contiene anche best practice preziosissime per C (e C non e' un linguaggio come tutti gli altri: e' il linguaggio sul quale puoi costruire praticamente tutto il resto. </div><div><br></div><div>3. Pragmatic Programmer: ti spiega come si "vive" nell'industria. Non mi dilungo perche' vedo che e' ampiamente noto. Spiega un pochetto di come gestirsi la carriera, un pochetto di agile, un pochetto di trucchi... un sacco di roba preziosa. E' stato un libro che ho letto "tardi" (sebbene lo avessi da tanto in libreria). Mi ha stupito perche' nel 1999 conteneva gia' in nuce buona parte di quello che sarebbe successo nei 15 anni successivi.</div><div><br></div><div><br></div><div><br><div class="gmail_extra"><br><div class="gmail_quote">2015-11-29 16:50 GMT+00:00 Marco Beri <span dir="ltr"><<a href="mailto:marcoberi@gmail.com" target="_blank">marcoberi@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Mi hanno fatto questa bella domanda e io ho risposto così:<div><div><br></div><div>1) Peopleware</div><div>2) Clean Code: A Handbook of Agile Software Craftsmanship</div><div>3) The Mythical Man-Month</div><div><br></div><div>E voi? Cosa rispondereste?</div><div><br></div><div>Ciao.<span class="HOEnZb"><font color="#888888"><br>Marco.</font></span></div><span class="HOEnZb"><font color="#888888"><div><br></div>-- <br><div><div dir="ltr"><div><div><a href="http://beri.it/" target="_blank">http://beri.it/</a> - Un blog</div><div><a href="http://beri.it/i-miei-libri/" target="_blank">http://beri.it/i-miei-libri/</a> - Qualche libro</div><div><span style="font-size:small"><a href="http://beri.it/articoli/" target="_blank">http://beri.it/articoli/</a> - Qualche articolo</span></div></div></div></div>
</font></span></div></div>
<br>_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" rel="noreferrer" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"> .<br>..: -enrico-</div>
</div></div></div></div>