Con affetto da Stepik: piattaforma educativa Hyperskill

Voglio parlarti del motivo per cui aggiustiamo gli impianti idraulici più spesso di quanto scriviamo tesi al riguardo, dei diversi approcci all'insegnamento della programmazione e di come stiamo cercando di applicarne uno nel nostro nuovo prodotto Hyperskill.

Se non ti piacciono le lunghe introduzioni, passa direttamente al paragrafo sulla programmazione. Ma sarà meno divertente.

Con affetto da Stepik: piattaforma educativa Hyperskill

Digressione lirica

Immaginiamo una certa signorina Masha. Oggi Masha sarebbe andata a lavare un po' di frutta e a guardare un film in tutta tranquillità, ma sfortuna: all'improvviso ha scoperto che il lavello della cucina era intasato. Non è ancora chiaro cosa farne. Puoi posticipare questo problema indefinitamente, ma ora c'è tempo libero, quindi Masha decide di affrontare immediatamente il problema. Il buon senso suggerisce due opzioni: a) chiamare un idraulico b) provvedere da soli. La signorina 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 serpeggiante composto da più parti. La ragazza svita con attenzione un pezzo alla base del lavandino e non trova nulla. Il pezzo inferiore del tubo risulta essere strettamente intasato da una sostanza sconosciuta e persino la forchetta trovata sul tavolo non riesce a far fronte all'ostruzione. Gli esperti di Internet danno previsioni deludenti: la parte dovrà essere cambiata. Sulla mappa, Masha trova il negozio più vicino, prende con sé il pezzo di tubo sfortunato e compra lo stesso, solo nuovo. Su consiglio del venditore, Masha prende anche un nuovo colino per la prevenzione. La missione è completata: il lavandino funziona di nuovo come dovrebbe e il suo personaggio principale, nel frattempo, ha imparato quanto segue:

  • Puoi svitare e stringere tu stesso i tubi sotto il lavandino;
  • Il negozio di idraulica più vicino è a un chilometro e mezzo dall'appartamento di Mashina.

Molto probabilmente, Masha non si è nemmeno accorta di quante cose nuove aveva imparato e imparato, perché era preoccupata per il proprio conforto in futuro e allo stesso tempo guardava un film e lavava la sua mela. La prossima volta che si presenta un problema simile, la ragazza lo risolverà molte volte più velocemente. In effetti, Masha non ha solo riportato il mondo al suo stato abituale; lei ha studiato induttivamente, cioè in casi speciali, e orientato alla pratica, cioè facendo le cose anziché studiarle nel dettaglio e in anticipo.

Tutto sarebbe potuto andare diversamente. Supponiamo che Masha sia seduta su una sedia la sera e improvvisamente si renda conto di essere mentalmente e fisicamente impreparata per uno zoccolo nel lavandino. Si iscrive subito ad un'accademia per idraulici, studiando le tipologie di lavandini, tubi e possibili collegamenti, la classificazione dei problemi idraulici e le possibili soluzioni agli stessi. Masha non dorme la notte, memorizzando termini e nomi. Forse sta anche scrivendo una tesi di dottorato sulla scienza teorica delle tubazioni, in cui discute delle guarnizioni in gomma. Alla fine, ricevuto il certificato, Masha si guarda intorno con orgoglio in cucina nella piena fiducia che ora anche il minimo problema con il lavello sarà risolto con uno schiocco di dita. In questo scenario, la ragazza ha studiato deduttivamente, passando dal generale allo specifico, ed è stato maggiormente focalizzato la teoria.

Quindi quale approccio è migliore? Nel caso di un lavandino e di uno zoccolo, il primo e per questi motivi:

  1. Se è importante solo un lavandino funzionante, allora è sufficiente sapere solo ciò che riguarda questa particolare area. Quando Masha si renderà conto che le manca la conoscenza, troverà sicuramente un modo per saperne di più.
  2. La conoscenza enciclopedica potrebbe non essere attivata in una situazione reale perché l'abitudine non è stata sviluppata. Per apprendere la sequenza delle azioni, ha senso non leggerle, 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 svilupparci e diventare esperti in un campo non familiare dobbiamo prima andare all'università o almeno iscriverci ai corsi. Ascoltiamo regolarmente ciò che ci dicono e svolgiamo compiti. Quando abbiamo tra le mani l'ambito diploma o certificato, ci sentiamo immediatamente persi, perché ancora non capiamo perché abbiamo bisogno di così tante informazioni e come applicarle specificamente. Questo non è un problema se i tuoi prossimi piani sono scrivere articoli scientifici e viaggiare con loro alle conferenze. Altrimenti vale la pena lottare per le abilità, cioè fare e rifare cose specifiche, provare e commettere errori per ricordare a lungo cosa è meglio non fare.

Uno degli ambiti in cui la “mano dura” o l’“occhio di diamante” vanno di pari passo con una visione ampia è la programmazione. Se parli con sviluppatori esperti, ascolterai storie coraggiose in cui una persona ha studiato matematica/fisica/insegnamento fin dalla giovane età, poi si è stancata ed è passata al backend. Ci saranno anche programmatori senza istruzione superiore! Innanzitutto, ciò che viene apprezzato in uno sviluppatore non è un certificato o un diploma, ma la quantità e la qualità dei programmi scritti, degli script e dei siti web.

"Ma aspetta!", obietti, "Sembra bellissimo: prendilo e fallo!" Non riesco facilmente a scrivermi un programma se non ho programmato prima! Per me è importante capire dove scrivere, come parlare sostanzialmente in un linguaggio di programmazione con un compilatore. Non è come trovare il numero di telefono di un idraulico su Google”.

Anche in questo c’è un’amara verità. Un aspetto sconosciuto porta a un altro, che a sua volta porta a un terzo, e presto questo processo si trasforma in uno spettacolo di mago, che continua a tirare fuori i fazzoletti legati e non riesce a tirarli fuori dal cilindro. Il processo, a dire il vero, è spiacevole, al 5° “fazzoletto” sembra già che la profondità dell'ignoranza sia vicina alla Fossa delle Marianne. Un'alternativa a questo sono le stesse lezioni su 10 tipi di variabili, 3 tipi di cicli e 150 librerie potenzialmente utili. Purtroppo.

Hyperskill: abbiamo costruito, costruito e infine costruito

Abbiamo pensato a lungo a questo problema. La data dell'ultimo post sul nostro blog la dice lunga su quanto tempo abbiamo pensato. Dopo tutti i dibattiti e i tentativi di integrare il nuovo approccio su Stepik, ci siamo ritrovati con... un sito diverso. Potresti averne già sentito parlare nell'ambito della JetBrains Academy. L'abbiamo chiamato Hyperskill, abbiamo integrato l'apprendimento basato su progetti, vi abbiamo collegato una base di conoscenza Java e ci siamo avvalsi del supporto del team EduTools. E ora maggiori dettagli.

Con affetto da Stepik: piattaforma educativa Hyperskill

Obiettivo specifico. Offriamo un “menu” di progetti, ovvero 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; Il risultato di ogni fase è un programma finito. "Allora perché abbiamo bisogno delle altre fasi se tutto ha già funzionato nella prima?" Grazie per la domanda Ad ogni passaggio il programma diventa più funzionale o più veloce. Inizialmente il codice occupa 10 righe, ma alla fine potrebbe non rientrare nemmeno in 500.

Un po 'di teoria. È impossibile sedersi e scrivere anche solo Hello World senza sapere una parola di programmazione. Pertanto, in ogni fase del progetto, vedi quali basi teoriche devi padroneggiare e, soprattutto, dove trovarle. Le nozioni di base si trovano anche su Hyperskill nella sezione “Mappa della conoscenza”. Se per la prima fase del progetto agli studenti non viene richiesto di leggere i dati da un file, potrebbe non essere in grado di continuare. Lo impareranno da soli in seguito, per lo sviluppo generale, oppure ne avranno bisogno nella fase successiva.

Con affetto da Stepik: piattaforma educativa Hyperskill

Mappa della conoscenza. Ti mostra quali argomenti hai già studiato e come sono correlati tra loro. Apri un top carino. Puoi sfogliarlo rapidamente, ma ti consigliamo di completare piccole attività per assicurarti che le informazioni entrino nella tua testa. Innanzitutto, la piattaforma ti fornirà dei test, dopodiché ti assegnerà un paio di attività di programmazione. Se il codice viene compilato e supera i test, confrontalo con la soluzione di riferimento, a volte questo aiuta a trovare un modo più ottimale per implementarlo. Oppure assicurati che la tua soluzione sia già eccellente.

Niente di più. Stiamo aspettando sia utenti "verdi" che sviluppatori esperti. Se hai già scritto programmi, non importa, non ti obbligheremo a sommare 2+2 o a girare nuovamente una riga. Per arrivare subito al livello desiderato, al momento della registrazione indica ciò con cui già conosci e scegli un progetto più difficile. Non aver paura di sopravvalutarti: se succede qualcosa, puoi sempre tornare a un argomento dimenticato nella mappa della conoscenza.

Con affetto da Stepik: piattaforma educativa Hyperskill

Utensili. È fantastico scrivere piccoli pezzi di codice in una finestra speciale sul sito, ma la vera programmazione inizia con il lavoro nell'ambiente di sviluppo (Integrated Dviluppo Eambiente). I programmatori esperti sanno non solo come scrivere codice, ma anche come progettare un'interfaccia grafica, assemblare diversi file in un progetto, utilizzare strumenti di sviluppo aggiuntivi e l'IDE si prende cura di alcuni di questi processi. Perché non apprendere queste abilità mentre impari a programmare? È qui che JetBrains viene in soccorso e una versione speciale di IntelliJ IDEA Community Educational con un plug-in EduTools preinstallato. In un IDE di questo tipo puoi seguire corsi di formazione, verificare i problemi risolti e consultare suggerimenti sui progetti se hai dimenticato qualcosa. Non preoccuparti se è la prima volta che senti la parola “plugin” o “IDE”: ti diremo di cosa si tratta e come installarlo sul tuo computer o laptop con la minima sofferenza. Comprendi la teoria, quindi vai all'IDE e completa la fase successiva del progetto proprio lì.

Scadenze. Non ce n'è nessuno! Chi siamo noi per bussare alla testa e dirti a che ritmo scrivere un programma? Quando ti piace scrivere codice e vuoi finirlo, lo finisci, oggi o domani. Sviluppa per il tuo piacere.

Errori. Tutti li ammettono, anche tu in una delle fasi del progetto, e quindi questa fase non supererà i test automatici. Bene, dovrai capire da solo cosa è andato storto. Potremmo dirti dove si trova l'errore, ma questo ti insegnerebbe come scrivere il codice con attenzione? Leggi i suggerimenti di IDEA o un argomento teorico sui bug e quando il programma finalmente funzionerà, molto probabilmente la scarica di dopamina non tarderà ad arrivare.

Un risultato chiaro. Quindi, hai completato la prima bozza, cosa succederà dopo? Goditi i frutti delle tue fatiche! Gioca a tris con i tuoi amici e allo stesso tempo vantati del tuo successo. Carica il progetto su GitHub per mostrarlo a un futuro datore di lavoro, scrivi tu stesso una descrizione e indica lì le conoscenze che hai applicato. 4-5 progetti complessi e ora è pronto un portafoglio modesto per uno sviluppatore principiante.

Opportunità di crescita. Diciamo che guardi Hyperskill e non vedi nessun argomento importante o progetto utile lì. Facci sapere a riguardo! Se il tuo background è più ampio e ricco della mappa della conoscenza, scrivici nel modulo Contribuire. Il nostro team condividerà con te i nostri suggerimenti e trucchi, quindi saremo felici di aiutarti a trasformare le tue conoscenze in contenuti utili e comprensibili a utenti di diverse età e livelli. Magari pagheremo anche, ma non è sicuro.

Accoglienza: hi.hyperskill.org Entra, guarda, prova, suggerisci, loda e critica. Stiamo anche imparando ad insegnarvi.

Fonte: habr.com

Aggiungi un commento