Analisti e progettisti software e tecnici programmatori. Queste le due professioni che, nell'Italia di fine 2014 con disoccupazione stabilmente oltre il 12% (e disoccupazione giovanile al 44%), garantiscono le maggiori probabilità di trovare un lavoro nel breve e nel medio periodo. Nei dieci mesi passati, gli imprenditori italiani hanno avuto non poche difficoltà a trovare esperti informatici che rispondessero ai criteri professionali cercati: a restare senza risposta (o candidati adeguati) sono stati circa il 40% degli annunci per analisti e progettisti software e un terzo (il 31,2% a essere precisi) delle offerte di lavoro per programmatori informatici. Questi i dati che emergono dall’elaborazione dell’Ufficio studi della CGIA, che ha analizzato i dati emersi dall'indagine effettuata dall’Unioncamere - ministero del Lavoro su un campione di imprenditori italiani.
Tra le maggiori cause del disallineamento tra domanda e offerta di lavoro, spiega il segretario della CGIA Giuseppe Bertolussi, troviamo l'insufficiente bagaglio conoscitivo dei giovani alla ricerca di un impiego. Nel settore della programmazione i datori di lavoro sono particolarmente esigenti e da tempo lamentano la scarsa preparazione dei tecnici informatici del nostro Paese. Un modo semplice per migliorare le proprie capacità di programmazione (magari sin dalla più tenera età) c'è: collegarsi a uno dei tanti portali che insegnano a programmare gratuitamente e affinare le abilità con il linguaggio di programmazione C o C++, con il PHP, con lo HTML5, con lo Java e con Python.
Mancanza di feedback
Nonostante portali come CodeAcademy, Udacity, Coursera e Code/racer permettano di apprendere, anche in maniera abbastanza veloce, le basi di vari linguaggi di programmazione hanno tutti una grossa carenza: non hanno un sistema di feedback “umano” che possa dare consigli su come migliorare le proprie tecniche di programmazione e affinare le abilità. Questo, quanto meno, quanto rilevato da Katrina Owen, biochimica dell'Università di Oslo e programmatrice autodidatta.
La studiosa norvegese (merito anche della propria esperienza professionale) ha notato come non basti un semplice corso online (o un libro) per imparare la programmazione: sono necessarie centinaia di ore di pratica prima di potersi considerare esperto in un particolare linguaggio. La programmazione informatica è, a suo modo, una vera e propria arte e come tutte le arti ha bisogno di un lungo periodo di apprendistato. Qualcosa che i “soliti” portali per apprendere la programmazione non sono in grado attualmente di offrire.
Esercitazioni
A questo punto della storia fa la sua comparsa Exercism, portale ideato da Katrina Owen nel 2012 mentre insegna programmazione presso il Jumpstart Labs di Denver, Colorado (USA). La Owen si rende conto che, nonostante fornisca esercizi “preparatori” ai suoi studenti, nessuno si preoccupa di completarli né di chiedere il supporto dei tutor per ricevere aiuto e delucidazioni. A fine corso i risultati sono piuttosto deludenti: la gran parte degli iscritti continua a ripetere errori piuttosto elementari, assolutamente evitabili se gli studenti avessero portato a termine le esercitazioni intermedie.
Nel giro di pochi giorni l'insegnante di origine norvegese prepara un portale – Exercism, per l'appunto – dal quale gli studenti potessero avere accesso a esercizi di programmazione e ricevere supporto dagli altri utenti in caso di difficoltà. Una sorta di scuola di programmazione virtuale, dove apprendere le basi dei linguaggi esercizio dopo esercizio, accumulando prove ed errori. Il nuovo metodo didattico ottiene un successo insperato: gli studenti non solo sono più attratti dalla materia, ma pubblicizzato il portale online e, grazie al passaparola, permettono a Exercism di sfiorare i 10mila utenti iscritti in pochi mesi. Ad oggi sono disponibili esercizi per Clojure, CoffeeScript, C++, C#, Elixir, Erlang, F#, Go, Haskell, JavaScript, Lua, Objective-C, OCaml, Perl 5, Python, Ruby, Scala e Swift.
Come funziona Exercism
Per poter avere accesso al database contenente le esercitazioni di programmazione, si dovrà prima di tutto creare un account sulla piattaforma di Katrina Owen, oppure utilizzare le credenziali GitHub già in possesso. Compiuta questa operazione preliminare si entrerà nel “vivo dell'azione”: seguendo la procedura guidata, si potrà scaricare il client che garantisce l'accesso alla repository di GitHub contenente esercizi e prove pratiche di programmazione. Una volta completate le prove, si potranno postare i risultati sulla bacheca pubblica e attendere i feedback degli altri utenti. Maggiore il numero di esercizi risolti, più alte saranno le probabilità di migliorare le proprie capacità di programmazione informatica e di imparare i “trucchetti del mestiere”.
Non solo: data la natura open source di GitHub (piattaforma su cui poggia l'infrastruttura di Exercism), gli utenti potranno caricare soluzioni alternative per ogni esercizio e proporre altre esercitazioni. In questo modo il database è in continua evoluzione e in costante crescita, per la gioia di studenti e insegnanti di programmazione di tutto il mondo.