Home
Come imparare a programmare

19 Settembre 2012

Come imparare a programmare

di

L'università non fornisce preparazione sufficiente; le elementari pensano che si impari a programmare programmando…

Nel suo post di qualche giorno fa Lucio poneva la questione dell’opportunità di inserire l’insegnamento dei linguaggi di programmazione nelle scuole dell’obbligo e citava come esempio l’esperienza che si sta facendo in Estonia.

Istintivamente non si può che essere favorevoli all’idea di sfornare una generazione di eccellenti programmatori indirizzandoli a dovere sin da piccoli, ma trovo che non sia quello l’approccio giusto.

La prima considerazione da farsi è che per formare un buon programmatore occorre innanzitutto formare un eccellente risolutore di problemi. È su questo aspetto fondamentale che la scuola si deve concentrare. La capacità di trasporre la soluzione di un problema in codice viene solamente dopo.

Matematica, chimica, fisica, ma anche italiano, latino e greco, ci mettono davanti a una montagna di problemi da risolvere, e capire come farlo ci prepara a diventare programmatori più che imparare il linguaggio di programmazione al momento in voga.

Ovviamente è fondamentale che il calcolatore sia presente nella didattica – pensate a che bella lezione si potrebbe tenere illustrando la fisica implementata in giochi come Angry Birds – anche utilizzando linguaggi specifici come Mathematica o Prolog.

La seconda considerazione parte da una citazione del filosofo Ludwig Wittgenstein:

The limits of my language are the limits of my world.

Ogni linguaggio di programmazione si porta appresso un bagaglio di scelte (funzionale contro oggetti, statico contro dinamico eccetera) che influenzano fortemente il modo in cui un determinato problema viene affrontato. Il buon programmatore deve essere in grado di scegliere il miglior linguaggio per affrontare il problema senza essere condizionato da ciò che ha imparato durante i primi anni del suo percorso formativo. In questo l’università italiana non fa un gran lavoro: spesso l’insegnamento si limita a rudimenti di C e Java a un livello sostanzialmente inutilizzabile nel mondo del lavoro.

Ci vorrebbe una scuola che sforni programmatori in grado di risolvere senza intoppi problemi con FizzBuzz al primo colloquio e di imparare nuovi linguaggi di programmazione senza troppe difficoltà. Di certo non ci servono nuovi programmatori che non hanno la più pallida idea di che cosa stanno scrivendo.

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.