Home
Perché leggere i classici

13 Gennaio 2015

Perché leggere i classici

di

Finite le feste e metabolizzati cibo e riposo, una delle cose belle che rimane è la possibilità di riavvicinarsi a ciò che vale.

Per alcuni le feste sono rivedere Una poltrona per due, rileggere Dickens o sentire il concerto di Capodanno; avendo un animo profondo nerd, io ho rivisto le lezioni che nel 1986 Hal Abelson ha tenuto al MIT, il mitico corso 6.001.
Le lezioni sono da qualche anno disponibili su YouTube e in particolare trovo fantastico l’incipit della prima lezione.
 

 
In questa ora abbondante di esposizione si trova tutto il necessario per fare sbocciare (o rinvigorire) l’amore verso la programmazione.
A supporto di questo corso introduttivo stava uno dei più importanti libri sulla computer science mai scritti – incredibilmente mai tradotto in italiano – ovvero Structure and Interpretation of Computer Programs (in breve SICP). Un testo sull’arte, i fondamenti e la filosofia della programmazione.
La portata di questi materiali (testo e lezioni video) è perfettamente sintetizzata così da Brian Harvey in un suo recente articolo:

SICP è stato rivoluzionario in molti modi diversi. Ha soprattutto alzato spettacolarmente l’asticella per i contenuti intellettuali destinati a presentare la scienza dei computer. Prima di SICP, il primo corso di Computer Science era quasi sempre riempito dall’apprendimento dei dettaglio di qualche linguaggio di programmazione. SICP si allontana dal dettaglio per insegnare modi più allargati di pensare al processo del programmare. Il testo si focalizza sull’idea centrale di astrazione: individuare schemi ricorrenti in problemi specifici e costruire strumenti software che li incorporano. Fa uso intenso dell’idea delle funzioni considerate come dati, difficile da imparare all’inizio e immensamente potente una volta appresa. Inserisce nel primo corso di scienza dei computer tre diversi paradigmi di programmazione (funzionale, a oggetti e dichiarativo), quando di fatto gli altri corsi neanche ne illustrano uno.

Italo Calvino sosteneva che classico è ciò che tende a relegare l’attualità al rango di rumore di fondo e in questo momento dove si parla di temi avanzati come la programmazione funzionale o il reactive programming è incredibile come in questo materiale ci sia tutto il necessario per capire da dove arrivano le idee e gettare le basi per padroneggiarle.
Molta della editoria informatica si è annichilita nel tentativo di semplificare i concetti che stanno alla base della programmazione, con testi che provano ad avvicinare i lettori senza nessun livello di astrazione e ponendo il focus solo sugli esempi pratici, dimenticando che i linguaggi passano mentre i concetti restano, tanto che una intera generazione di informatici rimane basita dai processi di reclutamento delle grandi aziende come Google, Facebook o Amazon.
Se durante un colloquio vi chiedono qualcosa che suona difficile, state sicuri che la risposta è tra le righe di Structure and Interpretation of Computer Programs. Buona lettura.

L'autore

  • Andrea C. Granata
    Andrea C. Granata vanta oltre 25 anni di esperienza nel mondo dello sviluppo software. Ha fondato la sua prima startup nel 1996 e nel corso degli anni si è specializzato in soluzioni per l'editoria e il settore bancario. Nel 2015 è entrato a far parte di Banca Mediolanum come Head of DevOps, ruolo che oggi ricopre per LuminorGroup.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.