Con affetto da Stepik: la piattaforma educativa Hyperskill

Vorrei parlarvi del motivo per cui ripariamo più spesso gli impianti idraulici piuttosto che scrivere dissertazioni su di essi, dei diversi approcci all'insegnamento della programmazione e di come stiamo cercando di applicarne uno nel nostro nuovo prodotto Hyperskill.

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

Con affetto da Stepik: la 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 ecco il problema: ha scoperto che il lavandino in cucina è intasato. Cosa fare? Non è chiaro. Si potrebbe rimandare la questione a tempo indeterminato, ma avendo del tempo libero a disposizione, Masha decide di affrontare il problema subito. Il buon senso le suggerisce due opzioni: a) chiamare un idraulico b) risolvere da sola. La giovane opta per la seconda opzione e inizia a studiare le istruzioni su YouTube. Seguendo il consiglio dell'utente Vasya_the_plumber, Masha si sdraia sotto il lavandino e vede un tubo di plastica contorto composto da diverse parti. La ragazza svita con cautela una parte alla base del lavandino e non trova nulla. Un pezzo di tubo più in basso risulta completamente ostruito da una sostanza sconosciuta, e anche la forchetta trovata sul tavolo non riesce a risolvere l'intasamento. Gli esperti di Internet forniscono previsioni poco incoraggianti: il pezzo dovrà essere sostituito. Masha cerca su una mappa il negozio più vicino, prende il pezzo difettoso con sé e acquista uno nuovo identico. Su consiglio del venditore, Masha compra anche un nuovo colino, per precauzione. La quest è completata: il lavandino funziona di nuovo come dovrebbe, e la sua protagonista nel frattempo ha imparato quanto segue:

  • I tubi sotto il lavello possono essere svitati e avvitati autonomamente;
  • Il negozio di idraulica più vicino è a un chilometro e mezzo dall'appartamento di Masha.

Probabilmente, Masha non si è nemmeno accorta di quanto nuovo ha appreso e di cosa ha imparato, perché era preoccupata per il proprio comfort futuro, insieme alla visione del film e a una mela lavata. La prossima volta che si presenterà un problema simile, la ragazza lo risolverà molto più rapidamente. In realtà, Masha non stava solo riportando le cose al loro stato abituale; stava imparando in modo induttivo, cioè attraverso casi specifici, e in modo pratico, cioè facendo le cose, piuttosto che studiandole in dettaglio e in anticipo.

Tutto avrebbe potuto andare diversamente. Supponiamo che Masha sia seduta la sera sulla poltrona e improvvisamente comprende di non essere né moralmente né fisicamente pronta a occuparsi di un otturamento nel lavandino. Si iscrive con urgenza all'accademia di idraulica, studia i vari tipi di lavandini, tubi e possibili giunzioni, la classificazione dei problemi idraulici e le possibili soluzioni. Masha non dorme la notte, memorizzando termini e nomi. Forse scrive persino una tesi sul tubo teorico, dove discute delle guarnizioni in gomma. Infine, ottenuto il certificato, Masha guarda con orgoglio la cucina sicura di poter risolvere qualsiasi piccolo problema del lavandino con un semplice schiocco delle dita. In questo scenario, la ragazza ha studiato deduttivamente, passando dal generale al particolare, e si è orientata piuttosto sulla teoria.

Quale approccio potrebbe essere migliore? Nel caso del lavandino e dell'otturamento — il primo, ecco perché:

  1. Se l'unica cosa che conta è un lavandino funzionante, allora è sufficiente sapere solo ciò che riguarda quest'area. Quando Masha capirà che le sue conoscenze non sono sufficienti, troverà sicuramente un modo per saperne di più.
  2. La conoscenza enciclopedica potrebbe non attivarsi in una situazione reale, poiché non è stata sviluppata l'abitudine. Per imparare una sequenza di azioni, ha senso non leggerne, ma eseguirle.

Lasciamo in pace la povera Masha e concentriamoci sul processo di apprendimento in sé.

Programmazione: studiare o agire?

Siamo portati a pensare che per svilupparci e diventare esperti in un campo sconosciuto, sia necessario prima di tutto iscriversi all'università o perlomeno seguire dei corsi. Seguiamo diligentemente ciò che viene insegnato e completiamo i compiti. Quando finalmente otteniamo il tanto agognato diploma o certificato, ci sentiamo subito disorientati, perché non abbiamo mai capito perché avessimo bisogno di così tante informazioni e come applicarle concretamente. Non ci sono problemi se in futuro si prevedono lavori di ricerca e partecipazioni a conferenze. In caso contrario, è importante acquisire competenze, cioè fare e rifare cose concrete, provare e sbagliare, per ricordare a lungo come non comportarsi nel modo migliore.

Uno dei settori in cui l'abilità pratica e una buona visione complessiva si uniscono è la programmazione. Se parlate con sviluppatori esperti, ascolterete storie incredibili di chi, fin dalla giovane età, ha studiato matematica/fisica/insegnamento e poi, stanco, è passato al backend. Ci sono anche programmatori senza laurea! Ciò che conta di più in uno sviluppatore è non un certificato o un diploma, ma la quantità e la qualità dei programmi, script e siti web realizzati.

"Ma aspettate!", obietterete, "Suona bene: prendi e fallo! Non posso semplicemente scrivere un programma per me stesso se non ho mai programmato prima! È fondamentale per me capire dove scrivere e come comunicare in generale con il compilatore nel linguaggio di programmazione. Non è facile trovare il numero di telefono di un idraulico su Google."

C'è una verità amara anche in questo. Un aspetto sconosciuto tira l'altro, il che a sua volta ne tira un terzo, e presto questo processo si trasforma in uno spettacolo da prestigiatore che continua a estrarre fazzoletti collegati e non riesce a toglierli dal cilindro. Il processo, a dirla tutta, è sgradevole; al quinto 'fazzoleto' sembra già che la profondità dell'ignoranza sia prossima alla Fossa delle Marianne. L'alternativa a questo sono le stesse lezioni sui 10 tipi di variabili, 3 tipi di cicli e 150 librerie potenzialmente utili. Triste.

Hyperskill: abbiamo costruito, costruito e infine costruito

Abbiamo riflettuto a lungo su questo problema. Quanto a lungo abbiamo pensato, lo dimostra eloquentemente la data dell'ultimo post nel nostro blog. Dopo tutte le discussioni e i tentativi di integrare un nuovo approccio su Stepik, abbiamo ottenuto... un altro sito. Forse ne avete già sentito parlare come parte di JetBrains Academy. Lo abbiamo chiamato Hyperskill, incorporato l'apprendimento basato su progetti, collegato a una base di conoscenze su Java e ottenuto il supporto del team di EduTools. Ora in dettaglio.

Con affetto da Stepik: la piattaforma educativa Hyperskill

Obiettivo specifico. Offriamo un “menù” di progetti, ovvero programmi che puoi scrivere con il nostro aiuto. Tra questi ci sono il gioco del tris, un assistente personale, blockchain, motore di ricerca, e così via. I progetti sono composti da 5-6 fasi; il risultato di ciascuna fase è un programma completo. “Perché allora le altre fasi, se già alla prima è andato tutto bene?” Grazie per la domanda. Con ogni passaggio il programma diventa più funzionale o più veloce. Inizialmente il codice occupa 10 righe, alla fine potrebbe arrivare a 500.

Un po' di teoria. Non è possibile sedersi e, senza conoscere nemmeno una parola di programmazione, scrivere anche solo Hello World. Pertanto, in ogni fase del progetto vedrai quali nozioni teoriche dovrai apprendere e, soprattutto, dove trovarle. Le nozioni sono anche disponibili su Hyperskill nella sezione “Mappa delle conoscenze” (Knowledge Map). Se per la prima fase del progetto gli studenti non sono obbligati a leggere dati da un file, possono comunque apprenderlo successivamente, per crescita personale, o potrebbe essere necessario nella fase successiva.

Con affetto da Stepik: la piattaforma educativa Hyperskill

Mappa delle conoscenze. Su di essa puoi vedere quali argomenti hai già studiato e come sono collegati tra loro. Apri qualsiasi argomento interessante. Puoi scorrere rapidamente, ma ti consigliamo di completare anche alcune esercitazioni per assicurarti che le informazioni siano state assimilate. All'inizio, la piattaforma ti proporrà dei test, seguiti da un paio di esercizi di programmazione. Se il codice compila e supera i test, confrontalo con la soluzione di riferimento (reference solution), a volte questo aiuta a conoscere un modo più ottimale di implementazione. Oppure a verificare che la tua soluzione sia già eccellente.

Niente di superfluo. Aspettiamo sia i neofiti che gli sviluppatori esperti. Se hai già scritto programmi, non preoccuparti, non ti costringeremo a sommare 2+2 o a invertire una riga. Per arrivare subito al livello giusto, indicaci al momento della registrazione con cosa hai già familiarità e scegli un progetto più complesso. Non temere di sopravvalutarti: se necessario, puoi sempre tornare a un argomento dimenticato nella mappa delle conoscenze.

Con affetto da Stepik: la piattaforma educativa Hyperskill

Strumenti. È fantastico scrivere piccoli pezzi di codice in una finestra speciale sul sito, ma la vera programmazione inizia con il lavoro in un ambiente di sviluppo (Iintegrato Dsviluppo EGli sviluppatori esperti non solo sanno come scrivere codice, ma anche come costruire un'interfaccia grafica, assemblare vari file in un progetto, utilizzare strumenti di sviluppo aggiuntivi, e parte di questi processi è gestita dall'IDE. Perché non imparare anche queste abilità mentre apprendi la programmazione? Qui entra in gioco JetBrains con una versione speciale di IntelliJ IDEA Community Educational dotata di un plugin preinstallato, EduTools. In questo IDE puoi seguire corsi di formazione, controllare i compiti svolti e consultare suggerimenti sul progetto se dimentichi qualcosa. Non preoccuparti se senti per la prima volta le parole 'plugin' o 'IDE': ti spiegheremo cosa sono e come installarli sul computer o sul portatile con il minimo sforzo. Approfondisci la teoria e poi passa all'IDE per completare la fase successiva del progetto direttamente lì.

Scadenze. Non ci sono! Chi siamo noi per picchiare sulla testa e indicare il ritmo con cui dovresti scrivere il programma. Quando ti piace scrivere codice e vuoi portarlo a termine, lo completate, oggi o domani. Fai sviluppo per il tuo piacere.

Errori. Tutti ci passano, quindi anche tu, in una delle fasi del progetto, non supererai i test automatici. Beh, dovrai capire da solo cosa sia 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 finalmente il programma funzionerà, il rilascio di dopamina arriverà di sicuro.

Risultato tangibile. Quindi hai completato il tuo primo progetto, e ora? Goditi i frutti del tuo lavoro! Gioca a tris con gli amici, approfittane per vantarti dei tuoi successi. Carica il progetto su GitHub per mostrarlo al tuo futuro datore di lavoro, scrivi una descrizione tu stesso e indica le conoscenze che hai applicato. 4-5 progetti complessi ed ecco, un portafoglio modesto per un sviluppatore alle prime armi è pronto.

Opportunità di crescita. Supponiamo che tu stia guardando Hyperskill e non trovi un argomento importante o un progetto utile. Facci sapere! Se il tuo background è più ampio e ricco della mappa delle conoscenze, scrivici tramite il modulo. ContribuisciIl nostro team condividerà con voi i propri consigli e trucchi, quindi saremo lieti di aiutarvi a trasformare le vostre conoscenze in contenuti utili, comprensibili per utenti di diverse età e livelli. Forse, potremmo anche pagare, ma non è certo.

Benvenuti: hi.hyperskill.org Fateci visita, guardate, provate, suggerite, lodate e criticateli. Anche noi stiamo imparando a insegnarvi.

Fonte: habr.com

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