
Spesso molte persone si domandano quale sia Il miglior linguaggio di programmazione da imparare. Questo soprattutto per chi si affaccia per la prima volta alla scrittura del codice, ma affascina anche gli educatori da molto tempo.
Quando gli studenti iniziano a imparare l’informatica, con quale linguaggio di programmazione dovrebbero iniziare?
Scopriremo che non esiste una ricetta perfetta, un nome, ma ci sono anche persone che hanno dedicato una parte della loro vita a studiare questa cosa come il professor Mark Guzdial dell’Università del Michigan che ha anche condotto le sue ricerche nel campo dell’educazione informatica.
“Ho un’ipotesi del perché questa convinzione fosse vera quando questo campo era giovane”
ha scritto Guzdial in un pezzo pubblicato di recente su Communications of the ACM, l’house organ dell’Association of Computing Machinery (ACM). Ma questo accadeva alla fine degli anni ’60, quando i curricula con esperienze in programmazione venivano visti per le prime volte. Oggi gli studenti di tutte le età, con livelli di esperienza diverse sanno programmare.
Ma è anche interessante notare i cambiamenti avvenuti nel corso degli anni nei dipartimenti di informatica che hanno gradualmente evoluto le loro scelte sul primo linguaggio di programmazione da far imparare ai loro studenti. Analizzando quello che sta accadendo oggi, ci potrebbe far comprendere cosa stiano immaginando per il futuro.
Nel 2017, la Stanford University fece delle modifiche al suo corso introduttivo di informatica per laureati in informatica. Secondo il giornale studentesco di Stanford, Eric Roberts, professore emerito di informatica, ha trascorso cinque anni lavorando alla transizione del corso da Java a JavaScript e ha finalmente creato una nuova versione pilota del corso basata su JavaScript.
Il cambiamento ha comportato la creazione di un nuovo libro di spiegazioni e di compiti. In precedenza le lezioni introduttive di Stanford erano basate sul linguaggio di programmazione C (e prima ancora, Pascal). Ma successivamente JavaScript divenne “il linguaggio di Internet” e per questo era importante.
Roberts aveva aiutato a passare le classi a Java nel 2002, lavorando per ristrutturare i corsi e gli incarichi. Ma 15 anni dopo, aveva detto al giornale studentesco che “Ora è il 2017 e Java sta mostrando i segni della sua età”.
Harvard invece nel corso degli anni ha mantenuto un approccio differenziato. Nella prima settimana, gli studenti scrivono programmi in Scratch.
Si tratta di un linguaggio di programmazione visiva basato su blocchi sviluppato per insegnare ai più giovani come funziona la programmazione, che venne appreso dal MIT Media Lab, prima di passare al C.

Interfaccia grafica di Scratch
Nelle settimane successive ecco che si passa a Python e poi a JavaScript.
“Piuttosto che insegnare una sola lingua, si introduce gli studenti a una gamma di linguaggi di programmazione ‘procedurali’, ognuno dei quali si basa concettualmente sull’altro. L’obiettivo, in definitiva, è che gli studenti non sentano di aver ‘imparato a programmare in X’, ma di aver ‘imparato a programmare'”.
spiegano le FAQ ufficiali del corso di programmazione.
Ma perché iniziarli con C? L’istruttore della classe, il professor David J. Malan , una volta ha scritto su Quora che:
“Il C è il più vicino all’hardware di un computer prima di arrivare ad un linguaggio assembly. In C, non c’è magia. Se vuoi che qualcosa sia da qualche parte nella memoria, devi mettercelo tu. Se vuoi una tabella hash, devi implementarla tu stesso.”
Malan, secondo i suoi commenti su Quora, ritiene che le settimane del C diano agli studenti l’opportunità di comprendere alcuni degli elementi costitutivi fondamentali di tutti i linguaggi di programmazione (fornendo anche l’opportunità di spiegare il concetto cruciale di sicurezza dei buffer overflow).
“Penso che sia anche una cosa potente passare dall’implementare una tabella hash (o provare) in C in una settimana, e poi solo una settimana dopo implementare lo stesso in una sola riga di codice PHP o JavaScript”
scrisse. Inoltre, il C è anche un linguaggio relativamente piccolo, quindi “a metà semestre, gli studenti lo hanno visto quasi tutto (ad eccezione, ad esempio, di unioni e puntatori di funzioni)”.
Ciò che viene insegnato ai programmatori principianti rimane ancora una domanda importante.
“L’incapacità di comprendere prontamente la programmazione quasi certamente implica l’incapacità di progredire nell’informatica”
sostiene il professor Guzdial, dell’Università del Michigan. La questione di quale lingua insegnare per prima è stata quindi “accesamente dibattuta da quando è iniziato l’insegnamento dell’informatica nelle università”.
Nel suo articolo su ACM, ricorda uno studio del 1979 che sosteneva che una volta che uno studente impara i concetti semantici più ampi, può applicarli a qualsiasi lingua successiva (bisogna solo padroneggiare le differenze relativamente facili nella sintassi).
Abbiamo visto i corsi di programmazione di tre tra le più illustri università americane.
Non esiste un linguaggio di programmazione dal quale cominciare, ma esiste comprendere il funzionamento dei linguaggi di programmazione, partendo dalla programmazione ad oggetti per poi arrivare alla programmazione Object oriented.
Sicuramente una volta apprese le informazioni di base di un linguaggio di programmazione ad oggetti, passare quei concetti su altri linguaggi risulta semplice in quanto occorrerà imparare solamente ad applicare la sua semantica.
Ti è piaciuto questo articolo? Ne stiamo discutendo nella nostra Community su LinkedIn, Facebook e Instagram. Seguici anche su Google News, per ricevere aggiornamenti quotidiani sulla sicurezza informatica o Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.

InnovazioneL’evoluzione dell’Intelligenza Artificiale ha superato una nuova, inquietante frontiera. Se fino a ieri parlavamo di algoritmi confinati dietro uno schermo, oggi ci troviamo di fronte al concetto di “Meatspace Layer”: un’infrastruttura dove le macchine non…
CybercrimeNegli ultimi anni, la sicurezza delle reti ha affrontato minacce sempre più sofisticate, capaci di aggirare le difese tradizionali e di penetrare negli strati più profondi delle infrastrutture. Un’analisi recente ha portato alla luce uno…
VulnerabilitàNegli ultimi tempi, la piattaforma di automazione n8n sta affrontando una serie crescente di bug di sicurezza. n8n è una piattaforma di automazione che trasforma task complessi in operazioni semplici e veloci. Con pochi click…
InnovazioneArticolo scritto con la collaborazione di Giovanni Pollola. Per anni, “IA a bordo dei satelliti” serviva soprattutto a “ripulire” i dati: meno rumore nelle immagini e nei dati acquisiti attraverso i vari payload multisensoriali, meno…
Cyber ItaliaNegli ultimi giorni è stato segnalato un preoccupante aumento di truffe diffuse tramite WhatsApp dal CERT-AGID. I messaggi arrivano apparentemente da contatti conosciuti e richiedono urgentemente denaro, spesso per emergenze come spese mediche improvvise. La…