Con affetto da Stepik: piattaforma educativa Hyperskill

Voglio parlare con voi di perché ripariamo più spesso la tubatura che scriviamo tesi su di essa, dei diversi approcci all'insegnamento della programmazione e di come stiamo cercando di applicarne uno nel nostro nuovo prodotto Hyperskill.

Se non vi piacciono le introduzioni lunghe, potete passare direttamente al paragrafo sulla programmazione. Ma sarà meno divertente.

Con affetto da Stepik: piattaforma educativa Hyperskill

Divagazione lirica

Immaginiamo una giovane donna di nome Masha. Oggi Masha aveva intenzione di lavare della frutta e guardare un film in tranquillità, ma si è trovata di fronte a un problema: improvvisamente ha scoperto che il lavandino della cucina era intasato. Non è chiaro cosa fare a questo punto. Si potrebbe rimandare la questione a tempo indeterminato, ma avendo del tempo libero ora, Masha decide di affrontare il problema subito. Un po' di buon senso suggerisce due opzioni: a) chiamare un idraulico b) risolvere da sola. La giovane sceglie la seconda opzione e inizia a studiare le istruzioni su YouTube. Seguendo il consiglio dell'utente Vasya_the_plumber, Masha guarda sotto il lavandino e vede un tubo di plastica serpentino composto da diversi pezzi. La ragazza svita con cautela un pezzo alla base del lavandino e non trova nulla. Un segmento del tubo più in basso risulta essere bloccato da una sostanza sconosciuta, e anche la forchetta trovata sul tavolo non riesce a risolvere l'otturazione. Gli esperti di internet forniscono previsioni poco rassicuranti: il pezzo dovrà essere sostituito. Masha trova il negozio di ferramenta più vicino sulla mappa, porta con sé il maledetto pezzo di tubo e ne acquista uno nuovo e identico. Seguendo il consiglio del venditore, Masha prende anche un nuovo scolapasta, per precauzione. Missione compiuta: il lavandino funziona di nuovo come dovrebbe, e nel frattempo la sua protagonista ha imparato quanto segue:

  • I tubi sotto il lavandino possono essere svitati e avvitati da soli;
  • Il negozio di ferramenta più vicino si trova a un chilometro e mezzo dall'appartamento di Masha.

Probabilmente Masha neanche si è accorta di quanto sia riuscita a imparare e a cosa le ha insegnato, perché era preoccupata del suo comfort futuro, oltre a godersi il film e la mela lavata. La prossima volta che si presenterà un problema simile, la ragazza lo risolverà molto più velocemente. In realtà, Masha non stava solo riportando il mondo al suo stato normale; stava apprendendo in modo induttivo, cioè attraverso casi specifici, e in modo pratico, cioè facendo le cose, piuttosto che studiarle in dettaglio e in anticipo.

Tutto avrebbe potuto andare diversamente. Supponiamo che Masha sia seduta la sera sulla poltrona e all'improvviso si renda conto di non essere pronta, né mentalmente né fisicamente, a gestire un otturamento nel lavandino. Si iscrive in fretta all'accademia degli idraulici, studia i diversi tipi di lavelli, tubi e possibili giunzioni, la classificazione dei problemi idraulici e le possibili soluzioni. Masha non riesce a dormire la notte, memorizzando termini e nomi. Forse scrive anche una tesi di dottorato sulla teoria dei tubi, dove riflette sulle guarnizioni in gomma. Infine, dopo aver ottenuto il certificato, Masha osserva con orgoglio la cucina, certa che ora anche il più piccolo problema con il lavandino si risolverà con un colpo di dita. In questo scenario, la ragazza ha studiato deduttivamente, partendo dal generale per arrivare al particolare, e si è orientata piuttosto verso la teoria..

Quale dei due approcci è quindi più adatto? Nel caso del lavandino e dell’otturamento – il primo, ecco perché:

  1. Se conta solo avere un lavandino funzionante, significa che è sufficiente conoscere soltanto ciò che riguarda questo ambito. Quando Masha capirà che le sue conoscenze non sono sufficienti, troverà sicuramente un modo per saperne di più.
  2. La preparazione enciclopedica potrebbe non attivarsi in una situazione reale, perché non è stata instillata l'abitudine. Per imparare una sequenza di azioni, ha più senso non leggerne, ma eseguirle.

Lasciamo in pace la povera Masha e passiamo al processo di apprendimento in quanto tale.

Programmazione: imparare o fare?

Siamo abituati a pensare che, per svilupparsi e diventare esperti in un campo sconosciuto, sia innanzitutto necessario iscriversi all'università o almeno seguire dei corsi. Ascoltiamo diligentemente ciò che ci viene detto, completiamo i compiti. Quando ci ritroviamo con il tanto agognato diploma o certificato, ci perdiamo immediatamente, perché non abbiamo capito perché ci servisse così tanta informazione e come applicarla concretamente. Non è un problema se nei nostri piani futuri ci sono scritti scientifici e conferenze. In caso contrario, vale la pena puntare anche sulle abilità, cioè fare, rifare cose specifiche, provare e sbagliare, per ricordare a lungo come non comportarsi.

Una delle aree in cui l'esperienza pratica o l'abilità eccezionale vanno di pari passo con una vasta conoscenza è la programmazione. Se parli con programmatori esperti, sentirai storie entusiastiche di chi, fin da giovane, si è dedicato alla matematica, alla fisica o a insegnare, per poi stancarsi e passare al back-end. Ci sono anche programmatori senza una laurea! Ciò che conta di più in un sviluppatore non è il certificato, né il diploma, ma la quantità e la qualità dei programmi, script e siti web che ha realizzato.

«Ma aspettate!», obietterete, «Suona bene - prendi e fai! Non posso semplicemente scrivere un programma per me stesso se prima non ho programmato! È fondamentale per me capire dove scrivere, come interagire con il compilatore nel linguaggio di programmazione. Non è come trovare il numero di telefono di un idraulico su Google.»

C'è una dura verità anche in questo. Un aspetto sconosciuto tira con sé un altro, questo a sua volta un terzo, e presto questo processo si trasforma in uno spettacolo da mago che continua a tirare fazzoletti legati e non riesce a recuperarli dal cilindro. Il processo, lo dico sinceramente, è spiacevole, al quinto «fazzolettino» già sembra che la profondità dell'ignoranza sia paragonabile alla Fossa delle Marianne. L'alternativa a questo è lo stesso tipo di lezioni su 10 tipi di variabili, 3 tipi di cicli e 150 biblioteche potenzialmente utili. È triste.

Hyperskill: abbiamo costruito, costruito e infine costruito.

Abbiamo riflettuto a lungo su questo problema. Quanto a lungo ne abbiamo discutere, lo dimostra eloquentemente la data dell'ultimo post sul nostro blog. Dopo tutte le discussioni e i tentativi di integrare un nuovo approccio su Stepik, abbiamo ottenuto… un altro sito. Forse ne hai già sentito parlare come parte di JetBrains Academy. Lo abbiamo chiamato Hyperskill, vi abbiamo integrato un apprendimento basato sui progetti, collegato a una base di conoscenze su Java e ricevuto il supporto del team EduTools. E ora, più nel dettaglio.

Con affetto da Stepik: piattaforma educativa Hyperskill

Obiettivo specifico. Offriamo un “menu” di progetti (projects), cioè programmi che puoi scrivere con il nostro aiuto. Tra questi ci sono: tris, assistente personale, blockchain, motore di ricerca, ecc. I progetti consistono in 5-6 fasi (stages); il risultato di ciascuna fase è un programma pronto. «Perché allora le altre fasi, se alla prima è già riuscito tutto?» Grazie per la domanda. Con ogni passo il programma diventa più funzionale o più veloce. All'inizio il codice occupa 10 righe, alla fine potrebbe anche non starci in 500.

Un po' di teoria. È impossibile sedersi e, senza sapere nulla di programmazione, scrivere anche solo Hello World. Pertanto, ad ogni fase del progetto vedrete quali basi teoriche dovrete apprendere e, soprattutto, dove trovarle. Le basi si trovano anche su Hyperskill nella sezione "Mappa delle conoscenze" (Knowledge Map). Se per la prima fase del progetto gli studenti non sono tenuti a leggere dati da un file, va bene se non sanno farlo in seguito. Impareranno da soli in seguito, per la propria crescita, o ne avranno bisogno nella fase successiva.

Con affetto da Stepik: piattaforma educativa Hyperskill

Mappa delle conoscenze. Su di essa si vede quali argomenti avete già studiato e come sono collegati tra loro. Aprite qualsiasi argomento interessante. Potete scorrere il testo velocemente, ma raccomandiamo di eseguire anche piccoli esercizi per assicurarvi che le informazioni siano state assimilate. All'inizio la piattaforma vi proporrà dei quiz, seguiti da un paio di compiti di programmazione. Se il codice si compila e supera i test, confrontatelo con la soluzione di riferimento (reference solution), a volte questo aiuta a conoscere un modo più ottimale di implementazione. Oppure a confermare che la vostra soluzione è già ottima.

Niente di superfluo. Aspettiamo sia utenti "verdi" che sviluppatori esperti. Se avete già scritto programmi, non preoccupatevi, non vi faremo tornare a fare 2+2 o a invertire una stringa. Per raggiungere subito il livello giusto, durante la registrazione indicate con cosa siete già familiari e scegliete un progetto più complesso. Non abbiate paura di sovrastimare le vostre capacità: semmai, si può sempre tornare a un argomento dimenticato nella mappa delle conoscenze.

Con affetto da Stepik: piattaforma educativa Hyperskill

Strumenti. È bello scrivere piccoli pezzi di codice in una finestra speciale sul sito, ma la vera programmazione inizia a lavorare in un ambiente di sviluppo (Integrated Development EGli sviluppatori esperti non sanno solo come scrivere codice, ma anche come costruire interfacce grafiche, assemblare diversi file in un progetto, utilizzare strumenti di sviluppo aggiuntivi, e parte di questi processi è gestita dall'IDE. Perché non imparare anche queste competenze mentre padroneggi la programmazione? Qui entra in gioco JetBrains e la versione speciale di IntelliJ IDEA Community Educational con il plugin EduTools preinstallato. In questo IDE è possibile seguire corsi di formazione, controllare i compiti risolti e consultare suggerimenti sul progetto se hai dimenticato qualcosa. Non preoccuparti se senti per la prima volta la parola “plugin” o “IDE”: ti spiegheremo cosa sono e come installarli su computer o laptop con il minimo sforzo. Comprendi la teoria e poi passa all'IDE per completare la fase successiva del progetto proprio lì.

Scadenze. Non ce ne sono! Chi siamo noi per battere le mani e indicare a quale ritmo devi scrivere il programma. Quando ti piace scrivere codice e vuoi portarlo a termine, lo completi, oggi o domani. Sviluppa a tuo piacimento.

Errori. Tutti li fanno, fai anche tu uno degli errori in una delle fasi del progetto e allora quella fase non passerà i test automatici. Bene, dovrai capire da solo cosa è andato storto. Potremmo dirti dove si nasconde l'errore, ma questo ti insegnerà a scrivere codice con attenzione? Leggi i suggerimenti da IDEA o l'argomento teorico sui Bugs e, quando il programma finalmente funzionerà, la scarica di dopamina, molto probabilmente, non si farà attendere.

Risultato visibile. Quindi hai completato il tuo primo progetto, e ora? Approfitta dei frutti del lavoro! Gioca a tris con gli amici e vantati dei tuoi successi. Carica il progetto su GitHub per mostrarlo a potenziali datori di lavoro, scrivi tu stesso la descrizione, indicandovi le conoscenze che hai applicato. 4-5 progetti complessi, ed ecco, un modesto portfolio per un sviluppatore alle prime armi è pronto.

Opportunità di crescita. Supponiamo che stai guardando Hyperskill e non vedi lì un argomento importante o un progetto utile. Facci sapere! Se il tuo background è più ampio e ricco della mappa delle conoscenze, scrivici nel modulo. Contribuisci. Il nostro team condividerà con voi suggerimenti e trucchi, quindi saremo felici di aiutarvi a trasformare le vostre conoscenze in contenuti utili, comprensibili per utenti di diverse età e livelli. Forse vi pagheremo anche, ma non è certo.

Benvenuti: hi.hyperskill.org Entrate, guardate, provate, suggerite, elogiate e criticatene. Anche noi impariamo a insegnarvi.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster