Il problema che si pone nell’insegnare alla gente a programmare, è che va scelto un linguaggio in linea con la competenza linguistica (parlo proprio di linguaggio naturale) dello studente. È anche per questo che per i bimbi delle elementari si usa Scratch, mentre per gli adolescenti puoi già usare Python.
E non è neanche l’unico problema. Ogni linguaggio porta con sé le caratteristiche: insegnare a programmare è una cosa, insegnare un linguaggio un’altra. Io posso insegnarti a usare tutte le keyword di un linguaggio, ma se non conosci gli algoritmi non ci fai niente, e quelli sono agnostici.
E poi, paradigmi: insegnare a programmare ottiene risultati molto buoni quando usi programmazione funzionale, usando Scheme o Haskell, o se vuoi usare programmazione a oggetti, quando usi Smalltalk.