- Ci sono due cose importanti da sapere sull’imparare a programmare:
- Il primo punto l’ho visto più e più volte. Le persone che mi dicono che vogliono imparare a programmare, poi iniziano ad imparare e pensano che sia noioso come l’inferno.
- Questo mi porta al punto numero due. Imparare a codificare non significa più la stessa cosa.
- Il problema è che non è quello che la gente vuole. Vogliono costruire qualcosa. E non dovremmo più dare per scontato che per costruire qualcosa si debba imparare tutto sui computer o anche sulla codifica in generale.
- Come insegnanti, dobbiamo riconoscere che quando le persone dicono di voler imparare a codificare, spesso intendono davvero costruire un’applicazione web o mobile.
- Come studente: impara ciò che vuoi imparare.
- Quindi quanto tempo ci vuole per imparare a codificare?
Ci sono due cose importanti da sapere sull’imparare a programmare:
- La maggior parte delle persone non vuole effettivamente “imparare a codificare”
- Imparare a codificare non significa più una cosa sola
È importante sapere queste due cose perché altrimenti il modo in cui insegniamo alla gente a codificare è sbagliato, e la gente non imparerà.
Il primo punto l’ho visto più e più volte. Le persone che mi dicono che vogliono imparare a programmare, poi iniziano ad imparare e pensano che sia noioso come l’inferno.
Lo chiamo la fallacia del programmare. Le persone pensano di voler imparare a codificare, ma quello che vogliono davvero fare è costruire un prodotto.
Se ci pensiamo, questo dovrebbe essere abbastanza ovvio. La conoscenza del codice in sé e per sé non ha valore se non ci si può fare nulla. Così, per la maggior parte delle persone, la più grande motivazione per imparare a scrivere codice è costruire qualcosa (anche se un secondo posto è ottenere un lavoro più pagato).
Questo mi porta al punto numero due. Imparare a codificare non significa più la stessa cosa.
Una volta per codificare si doveva sapere quasi tutto sui computer (da cui il termine “Computer Science”). Poi le cose sono state astratte al punto che non era necessario immergersi in certi argomenti a meno che non fosse davvero necessario. Per esempio, come sviluppatore di applicazioni web a questo punto, ho bisogno di sapere molto poco sull’amministrazione di sistema perché è per lo più fatta per me da strumenti come Heroku e Amazon Web Services.
Così quando la gente dice di voler imparare a codificare, la maggior parte degli insegnanti inizia dove presume che dovrebbe (dove ha sempre fatto), con i tipi di dati, le varie strutture di un linguaggio, e aiuta gli studenti a sviluppare una comprensione più profonda dei computer.
Il problema è che non è quello che la gente vuole. Vogliono costruire qualcosa. E non dovremmo più dare per scontato che per costruire qualcosa si debba imparare tutto sui computer o anche sulla codifica in generale.
Per esempio, se qualcuno sta già lavorando con un grande sviluppatore di back-end, avrebbe senso insegnargli solo il front-end, perché sarà la cosa più utile per loro. Otterranno effettivamente ciò che vogliono essere fatto più velocemente, e saranno in grado di imparare il back-end in un momento successivo. Così facendo riduciamo il carico cognitivo sullo studente e gli permettiamo di imparare più velocemente.
Quando stai sviluppando per il web hai specificamente a che fare con:
- HTML
- CSS
- JavaScript
- Programmazione back-end
- Database
- Hosting/DNS
C’è molto da imparare. E la maggior parte è abbastanza irrilevante per lo sviluppo non web (eccetto i database e la struttura delle applicazioni, ovviamente).
Per come la vedo io, la maggior parte dell’educazione alla codifica comporta un’esca e uno scambio. Va così:
Studente: “Voglio imparare a codificare”. (Ma quello che in realtà – ma non sanno abbastanza per chiederlo – è che voglio costruire un’applicazione web o mobile.)
Insegnante: “Ok iniziamo con i tipi di dati.”
Studente: “…”
(2 settimane dopo)
Insegnante: “Ora possiamo progettare algoritmi efficienti.”
Studente: “Ma io volevo solo fare un bel sito web!”
Come insegnanti, dobbiamo riconoscere che quando le persone dicono di voler imparare a codificare, spesso intendono davvero costruire un’applicazione web o mobile.
Questo perché per loro, codificare è questo. È tutto ciò a cui sono stati esposti riguardo al coding. Il problema è che non sanno come chiederlo! Quindi non dovremmo prendere tutto quello che dicono al valore nominale. È il nostro lavoro come educatori di leggere tra le righe.
Ricordo di aver visto una commedia qualche anno fa in cui un prete dice che bisogna dire la verità anche in circostanze difficili. La persona con cui sta parlando chiede: “ma se qualcuno ti fa una domanda e tu sai che la verità gli farà male?”. Il sacerdote risponde: “Quando qualcuno ti fa una domanda, rispondi alla domanda che ti sta VERAMENTE facendo”
Anche nell’educazione, bisogna leggere tra le righe per capire cosa vogliono veramente le persone. Se stanno chiedendo qualcosa di specifico, devi guidare la persona verso ciò che la condurrà verso la sua esperienza di apprendimento ideale.
Quindi sta a noi, come educatori e come esperti, guidare le persone nella giusta direzione e non lasciarle semplicemente andare a tentoni. Se riusciamo a fare questo, allora possiamo permettere a molte più persone di fare cose straordinarie.
Come studente: impara ciò che vuoi imparare.
Una delle cose migliori che puoi fare nelle tue avventure di apprendimento è imparare un po’ su molte cose – così sai cosa vuoi approfondire in seguito.
Qui a One Month, quando diciamo che puoi “imparare a codificare in 30 giorni” quello che intendiamo è che in soli 30 giorni puoi imparare abbastanza di HTML (JavaScript o Python) per essere conversazionale nel codice, abbastanza sicuro che puoi distinguerti nel mercato del lavoro.
Quindi quanto tempo ci vuole per imparare a codificare?
Si chiama “One Month”, quindi significa che dopo 30 giorni di codificazione i nostri studenti hanno finito di imparare? Niente affatto! Ho codificato per oltre 15 anni e ci sono ancora tante cose che non so – ma non è questo il punto. “Imparare a codificare” non significa conoscere ogni singola cosa nel linguaggio, ma sapere abbastanza per essere conversazionale e per lasciare un segno nel mondo usando la tua mente e le tue capacità creative.