In questo articolo voglio parlare della Rolling Scopes School, un corso gratuito di JavaScript / front-end che ho frequentato e che mi è piaciuto molto. Ho scoperto questo corso per caso, le informazioni online al riguardo, secondo me, sono poche, ma il corso è eccellente e merita attenzione. Penso che questo articolo sarà utile a coloro che stanno tentando di studiare programmazione da soli. In ogni caso, se qualcuno mi avesse parlato di questo corso prima, gliene sarei stata grata.
Coloro che non hanno mai provato a studiare da zero potrebbero chiedersi: perché sono necessari i corsi, dato che ci sono miriadi di informazioni online – prendi e impara. In realtà, un mare di informazioni non è sempre una cosa positiva, perché scegliere ciò di cui hai realmente bisogno da quel mare può essere tutt’altro che semplice. Un corso ti indica che cosa studiare, come farlo e con che ritmo; aiuta a distinguere le fonti di informazione di qualità e degne di attenzione dalle informazioni obsolete e scadenti; offre molteplici esercizi pratici; ti consente di diventare parte di una comunità di persone appassionate e interessate, che si dedicano alle stesse cose che dedichi tu.
Durante il corso abbiamo costantemente svolto esercizi: abbiamo fatto test, risolto problemi, creato i nostri progetti. Tutto ciò veniva valutato e registrato in una tabella comune, dove era possibile confrontare il proprio risultato con quelli degli altri studenti. L'atmosfera di competizione è stata positiva, divertente e interessante. Ma i punti, anche se importanti per passare alla fase successiva, non erano un obiettivo in sé. Gli organizzatori del corso incoraggiavano il supporto e la collaborazione: nella chat gli studenti discutevano le domande sorto durante la risoluzione degli esercizi e cercavano di trovare insieme le risposte. Inoltre, il nostro percorso di studio è stato supportato dai mentori, il che è un'opportunità unica per un corso gratuito.
Il corso funziona praticamente ininterrottamente: viene avviato due volte all'anno e dura sei mesi. È composto da tre fasi. Nella prima fase abbiamo studiato principalmente Git e layout, nella seconda JavaScript e nella terza React e Node.js.
Nella fase successiva si accedeva in base ai risultati degli incarichi eseguiti nella fase precedente. Alla fine di ogni fase si svolgeva un colloquio. Dopo la prima e la seconda fase, si trattava di colloqui di formazione con i mentori; dopo la terza fase, sono stati organizzati colloqui per i migliori cento studenti presso l'EPAM JS Lab di Minsk. Il corso è tenuto dalla comunità bielorussa di sviluppatori frontend e JavaScript The Rolling Scopes, quindi è chiaro che hanno contatti con l'ufficio di Minsk di EPAM. Tuttavia, la comunità cerca di stabilire contatti e raccomandare i propri studenti a aziende IT in altre città della Bielorussia, Kazakhstan e Russia.
La prima fase è durata poco più di un mese. È stata la fase più massiccia. Nel mio gruppo, erano 1860 le persone che l'hanno iniziata, cioè tutti coloro che si erano iscritti al corso. Il corso è frequentato da persone di diverse età, ma la maggior parte degli studenti sono studenti degli ultimi anni e coloro che, dopo aver lavorato per alcuni anni in un altro settore, hanno deciso di cambiare professione.
Nella prima fase abbiamo superato due test sulle basi di Git, due test su HTML/CSS, i corsi di Codecademy e HTML Academy, creato il nostro CV in formato markdown e come pagina web ordinaria, abbiamo impaginato un piccolo layout di una pagina e risolto alcune piuttosto complesse sfide di JavaScript.
L'incarico più impegnativo della prima fase è stato l'impaginazione del sito Hexal.
Quello più interessante è stato il gioco Code Jam sulla conoscenza dei selettori CSS "CSS Quick Draw".
Le sfide più complesse sono state quelle di JavaScript. Un esempio di una di queste sfide: "Calcolare il numero di zeri alla fine del fattoriale di un grande numero nel sistema numerico specificato".
Esempio di incarico della prima fase: .
In base ai risultati delle sfide della prima fase, 833 studenti hanno ricevuto inviti per i colloqui. L'avanzamento dello studente alla seconda fase durante il colloquio era determinato dal suo futuro mentore. I mentori di Rolling Scopes School sono sviluppatori attivi provenienti da Bielorussia, Russia, Ucraina. I mentori aiutano e forniscono indicazioni, controllano gli incarichi e rispondono alle domande. Nel nostro gruppo c'erano più di 150 mentori. A seconda della disponibilità di tempo libero, un mentore può seguire da due a cinque studenti, ma per il colloquio a lui vengono indirizzati due studenti in più, così durante il colloquio può scegliere con chi lavorerà.
La distribuzione degli studenti e dei mentori è stata uno dei momenti più interessanti e coinvolgenti del corso. Gli organizzatori hanno inserito un piccolo elemento di gioco: i dati sui mentori erano custoditi in un cappello distribuitore, cliccando sul quale era possibile vedere il nome e i contatti del proprio futuro mentore.
Quando ho scoperto il nome del mio mentore e ho guardato il suo profilo su LinkedIn, ho capito che volevo davvero lavorare con lui. È un sviluppatore esperto, senior, che lavora all'estero da diversi anni. Avere un mentore del genere è davvero una grande fortuna. Ma credevo anche che le sue aspettative sarebbero state molto alte. Più tardi si è rivelato che mi sbagliavo riguardo a queste aspettative troppo elevate, ma in quel momento pensavo esattamente così.
Le domande del colloquio imminente erano già note, quindi è stato possibile prepararsi in anticipo.
Ho studiato OOP attraverso video . Il suo autore, Sergey Melyukov, spiega in modo molto chiaro e comprensibile.
Le strutture dati e la notazione O-grande sono ottimamente trattate nell'articolo .
Le maggiori incertezze riguardavano un compito su JavaScript, che sarebbe sicuramente stato presente all'intervista. In generale, mi piace risolvere problemi, ma con Google e nella console del browser; se invece bisogna risolvere a mano su carta (o con il mouse in un bloc-notes), tutto diventa molto più complicato.
È comodo prepararsi per l'intervista in due sul sito – ponendosi domande a vicenda e creando compiti. Questo è un metodo di preparazione abbastanza efficace: quando reciti ruoli diversi, capisci meglio chi si trova dall'altra parte dello schermo.
A cosa poteva somigliare, secondo me, un colloquio? Probabilmente a un esame, dove ci sono un esaminatore e un esaminato. In realtà, non era affatto un esame. Era più una conversazione tra due persone appassionate che si dedicano alla stessa cosa. Il colloquio si è svolto in modo estremamente tranquillo, confortevole, cordiale, le domande non erano molto difficili, il compito era abbastanza semplice e il mentore non si è affatto opposto a risolverlo nella console ed ha persino permesso di consultare Google ("al lavoro nessuno vieta di usare Google").
Per quanto ho capito, l'obiettivo principale del colloquio non era verificare le nostre conoscenze e abilità nel risolvere problemi, ma dare l'opportunità al mentore di conoscere i suoi studenti e mostrare loro come si presenta un colloquio in generale. E il fatto che il colloquio abbia lasciato solo buone impressioni è stato il risultato dei suoi sforzi consapevoli, del desiderio di dimostrare che non c'è davvero nulla di spaventoso nei colloqui e che si può affrontarli con piacere. Rimane da chiedersi perché sia riuscito a farlo con così tanta facilità un laureato in discipline tecniche, mentre gli insegnanti ci riescono raramente. Tutti ricordano con quale ansia si affrontava un esame, anche se si conosceva benissimo il materiale. E dato che parliamo di pedagogia ufficiale, voglio condividere un'altra osservazione. Nel corso c'erano anche studenti degli ultimi anni delle specialità IT. Essi sostenevano che il formato di insegnamento offerto dalla Rolling Scopes School fosse decisamente più utile, interessante e produttivo rispetto al programma accademico standard.
Ho superato il colloquio. Successivamente, il mentore ha stabilito un giorno della settimana e un'ora in cui gli era comodo parlare con me. Per quel giorno, ho preparato delle domande, a cui lui ha risposto. Non avevo molte domande sui progetti in corso – la maggior parte delle risposte le trovavo su Google o nella chat della scuola. Tuttavia, lui parlava del suo lavoro, dei problemi potenziali e delle soluzioni, condivideva le sue osservazioni e commenti. In generale, queste conversazioni sono state estremamente utili e interessanti. Inoltre, il mentore è praticamente l'unica persona realmente interessata a cosa e come stai facendo, una persona che guarderà il tuo lavoro, ti dirà cosa non va e come puoi migliorarlo. La presenza di mentori è davvero un grande vantaggio della scuola, difficile da sovrastimare.
Nella seconda fase abbiamo avuto un Code Jam molto interessante e dinamico "JavaScript Arrays Quick Draw", competizioni come queste nella scuola sono coinvolgenti e appassionanti.
Il Code Jam "CoreJS" si è rivelato molto più complesso. 120 compiti in JavaScript, ai quali erano concessi 48 ore per essere risolti, sono stati una vera prova.
Inoltre abbiamo sostenuto diversi test di JavaScript, il link a è salvato tra i preferiti del mio browser. Abbiamo 30 minuti per completare il test.
Successivamente abbiamo realizzato il layout di NeutronMail, completato il Code Jam "DOM, DOM Events" e creato un motore di ricerca per YouTube.
Altri compiti della seconda fase: Task: Codewars – risoluzione di problemi sul sito omonimo, Code Jam "WebSocket Challenge." – invio e ricezione di messaggi tramite websocket, Code Jam "Animation Player" – creazione di una piccola web app.
Un compito piuttosto insolito e interessante della seconda fase è stato il task "Presentation". La sua principale caratteristica era che la presentazione doveva essere preparata e presentata in lingua inglese. È possibile vedere come si è svolta la fase finale delle presentazioni.
E, senza dubbio, il compito più complesso e voluminoso è stato il task finale della seconda fase, durante il quale ci è stato proposto di creare una copia del web application Piskel (www.piskelapp.com).
Questo compito ha richiesto più di un mese, con gran parte del tempo dedicato a comprendere come funzionasse l'originale. Per maggiore obiettività, il task finale è stato valutato da un altro mentore scelto casualmente. Anche il colloquio dopo la seconda fase è stato condotto da un mentore casuale, perché ci eravamo già abituati al nostro e lui a noi, mentre nei colloqui reali si incontrano generalmente persone sconosciute.
Il secondo colloquio si è rivelato molto più difficile del primo. Come prima, c'era un elenco di domande per il colloquio a cui mi ero preparata, ma il mentore ha deciso che semplicemente chiedere teoria non sarebbe stato del tutto corretto e ha preparato una serie di problemi per il colloquio. A mio parere, i problemi erano piuttosto complessi. Ad esempio, lui non capiva sinceramente cosa mi impedisse di scrivere un bind polyfill, mentre io ritenevo altrettanto sinceramente che il fatto di sapere cosa fosse bind e cosa fosse polyfill fosse già molto. Non sono riuscita a risolvere questo compito. Ma ce ne sono stati altri con cui me la sono cavata. I problemi però non erano semplici e, appena trovavo una soluzione, il mentore cambiava un po' le condizioni, e dovevo affrontare nuovamente il problema, in una variante già più complessa.
Vorrei sottolineare che l'atmosfera del colloquio era molto amichevole, i problemi interessanti, e il mentore ha dedicato molto tempo a prepararli, cercando di rendere l'intervista di formazione utile per superare un'intervista reale quando ci si presenta per un lavoro.
Esempi di compiti della seconda fase:
Nella terza fase ci è stato proposto il compito Culture Portal. L'abbiamo svolto in gruppo e ci siamo confrontati per la prima volta con le peculiarità del lavoro di squadra, della distribuzione dei compiti e della risoluzione dei conflitti durante la fusione dei rami in Git. Probabilmente, è stato uno dei compiti più interessanti del corso.
Esempio di compito della terza fase: .
Dopo aver completato la terza fase, gli studenti che ambivano a lavorare per l'azienda EPAM e che erano entrati nella lista dei 120 migliori hanno sostenuto un colloquio telefonico per la conoscenza della lingua inglese e attualmente stanno affrontando interviste tecniche. La maggior parte di loro sarà invitata a EPAM JS Lab e poi a progetti reali. Ogni anno più di cento laureati della Rolling Scopes School trovano lavoro in EPAM. Rispetto a quelli che hanno iniziato il corso, questo è un percentuale piuttosto piccola, ma se si guarda a chi è arrivato alla fine, per loro la possibilità di ottenere un lavoro è abbastanza alta.
Tra le difficoltà a cui bisogna essere pronti, ne cito due. La prima è il tempo. Ne serve abbastanza. Preparatevi a dedicare 30-40 ore a settimana, anche di più; se ne dedicate meno, è poco probabile che riusciate a portare a termine tutti i compiti, dato che il programma del corso è molto intenso. La seconda è un inglese di livello A2. Se è inferiore, studiare nel corso non sarà un problema, ma trovare lavoro con quel livello di lingua sarà abbastanza complicato.
Se avete domande, chiedete pure, cercherò di rispondere. Se conoscete altri corsi online gratuiti in lingua russa simili, condivideteli, sarà interessante.
Fonte: habr.com
