In questo articolo voglio parlarvi della Rolling Scopes School, un corso gratuito di JavaScript/frontend che ho seguito e di cui sono rimasta molto entusiasta. Ho scoperto questo corso quasi per caso; secondo me ci sono poche informazioni online al riguardo, ma il corso è ottimo e merita attenzione. Penso che questo articolo sarà utile a chi sta cercando di studiare programmazione in modo autonomo. In ogni caso, se qualcuno mi avesse parlato di questo corso in precedenza, gli sarei stata estremamente grata.
Per coloro che non hanno mai tentato di imparare da zero, potrebbe sorgere una domanda: a cosa servono i corsi, visto che c'è un oceano di informazioni online – prendi e studia. In realtà, un mare di informazioni non è sempre un bene, perché scegliere ciò di cui hai veramente bisogno può rivelarsi complicato. Un corso ti guiderà su cosa studiare, come farlo e con quale ritmo; ti aiuterà a distinguere fonti di informazioni valide e affidabili da quelle scadenti e obsolete; offrirà una vasta gamma di esercizi pratici; ti permetterà di far parte di una comunità di persone appassionate e interessate che si dedicano a ciò che fai tu.
Durante il corso abbiamo costantemente svolto compiti: abbiamo effettuato test, risolto problemi e creato i nostri progetti. Tutto questo è stato valutato e andato in una tabella generale, dove era possibile confrontare il proprio risultato con quello degli altri studenti. L'atmosfera competitiva è positiva, divertente e interessante. Tuttavia, i punteggi, sebbene importanti per passare alla fase successiva, non erano l'obiettivo primario. Gli organizzatori del corso incoraggiavano il supporto e l'aiuto reciproco: nel gruppo chat, gli studenti discutevano le domande emerse durante la risoluzione dei compiti e cercavano di trovare risposte insieme. Inoltre, nella nostra formazione ci hanno assistito dei 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 principalmente studiato Git e il markup, nella seconda - JavaScript, nella terza - React e Node.js.
Il passaggio alla fase successiva è avvenuto in base ai risultati ottenuti negli incarichi della fase precedente. Alla fine di ogni fase si tenevano colloqui. Dopo la prima e la seconda fase, si trattava di colloqui di formazione con i mentor; dopo la terza fase, per i migliori centoventi studenti, sono stati organizzati colloqui presso l'EPAM JS Lab di Minsk. Il corso è condotto dalla comunità belarussa di sviluppatori frontend e JavaScript The Rolling Scopes, il che spiega le loro connessioni con l'ufficio di EPAM a Minsk. Tuttavia, la comunità cerca anche di stabilire contatti e raccomandare i propri studenti a aziende IT in altre città della Bielorussia, in Kazakistan e in Russia.
La prima fase è durata poco più di un mese. È stata la fase più affollata. Nella mia edizione, l'hanno iniziato 1860 persone, ovvero tutti coloro che si erano iscritti al corso. Al corso partecipano persone di diverse età, ma la maggior parte degli studenti sono studenti degli ultimi anni di università e coloro che, dopo aver lavorato per alcuni anni in un altro settore, hanno deciso di cambiare professione.
Nella prima fase abbiamo completato due test sulle basi di Git, due test su HTML/CSS, corsi di Codecademy e HTML Academy, creato il nostro CV in formato markdown e come pagina web, realizzato un piccolo layout a pagina singola e risolto diversi problemi piuttosto complessi in JavaScript.
Il compito più impegnativo del primo stage è stato il layout del sito Hexal.
Il più interessante è stato il Code Jam di gioco sui selettori CSS "CSS Quick Draw".
I più difficili sono stati i problemi di JavaScript. Un esempio di uno di questi problemi: "Trovare il numero di zeri alla fine del fattoriale di un grande numero nel sistema di numerazione specificato".
Esempio di un compito della prima fase: .
Dopo il completamento della prima fase, 833 studenti hanno ricevuto inviti per il colloquio. L'assegnazione degli studenti alla seconda fase durante il colloquio era determinata dal loro futuro mentore. I mentori della Rolling Scopes School sono sviluppatori attivi provenienti da Bielorussia, Russia e Ucraina. I mentori offrono supporto, verificano i compiti e rispondono alle domande. Nel nostro gruppo di mentori c'erano più di 150 persone. A seconda della disponibilità di tempo, un mentore può seguire da due a cinque studenti, ma per il colloquio vengono inviati due studenti in più, in modo che durante il colloquio possa scegliere con chi lavorare.
La distribuzione degli studenti e dei mentori è stata uno dei momenti più interessanti ed emozionanti del corso. Gli organizzatori hanno introdotto un piccolo elemento ludico: i dati sui mentori erano custoditi in un cappello magico, 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. È uno sviluppatore esperto, un senior che lavora all'estero da diversi anni. Avere un mentore del genere è davvero una grande fortuna. Ma pensavo anche che le sue aspettative fossero molto alte. Più tardi ho scoperto di essermi sbagliata riguardo alle sue aspettative elevate, ma in quel momento pensavo proprio così.
Le domande per il colloquio erano già note, quindi si poteva prepararsi in anticipo.
Ho studiato OOP tramite video . L'autore, Sergey Melyukov, spiega in modo molto chiaro e comprensibile.
Le strutture dati e la notazione O grande sono ben approfondite nell'articolo .
La maggiore incertezza era la questione di JavaScript, che sarebbe sicuramente stata nell'intervista. Mi piace risolvere i problemi, ma con Google e nella console del browser; se devo risolvere a mano e su carta (o con il mouse in un blocco note), diventa tutto molto più complicato.
È comodo prepararsi per il colloquio insieme sul sito – porre domande l'uno all'altro, inventare compiti. È un modo piuttosto efficace di preparazione: quando ricopri ruoli diversi, comprendi meglio chi si trova dall'altra parte dello schermo.
Come poteva sembrare un colloquio nella mia immaginazione? Probabilmente, come un esame, con un esaminatore e un esaminato. In realtà, non potrebbe essere definito un esame. Piuttosto, è stata una conversazione tra due persone appassionate che si occupano della stessa cosa. Il colloquio è stato estremamente tranquillo, confortevole, amichevole, le domande non erano molto difficili, il compito era abbastanza semplice, e il mentore non si è opposto a risolverlo nella console e ha persino autorizzato a dare un'occhiata a Google (‘nessuno vieta di usare Google al lavoro’).
Se ho capito bene, l'obiettivo principale dell'intervista non era controllare le nostre conoscenze e capacità di problem solving, ma dare la possibilità al mentore di conoscere i propri studenti e mostrare loro come si svolge un colloquio in generale. E il fatto che l'intervista abbia lasciato solo buone impressioni è il risultato dei suoi sforzi consapevoli, del desiderio di dimostrare che non c'è nulla di spaventoso in un colloquio e che si può affrontarlo con piacere. Un'altra questione è perché sia riuscito a farlo così facilmente una persona con un'istruzione tecnica, mentre ciò riesce molto raramente ai docenti. Tutti noi ricordiamo con quanto nervosismo ci si presentava all'esame, anche se conoscevamo il materiale alla perfezione. E dato che si è parlato di pedagogia ufficiale, vorrei condividere un ulteriore osservazione. Nel corso erano presenti anche studenti degli anni superiori delle specializzazioni IT. E loro sostenevano che il formato di insegnamento proposto dalla Rolling Scopes School fosse molto più utile, interessante e produttivo rispetto al programma universitario tradizionale.
Ho superato il colloquio. In seguito, il mentore ha fissato un giorno della settimana e un orario in cui era disponibile a parlare con me. Per quel giorno, mi sono preparata delle domande, a cui rispondeva. Non avevo molte domande riguardo ai progetti in corso, poiché la maggior parte delle risposte le trovavo su Google o nella chat della scuola. Tuttavia, condivideva informazioni sulla sua esperienza lavorativa, sui possibili problemi e sulle soluzioni, oltre a condividere le sue osservazioni e commenti. In generale, questi colloqui sono stati estremamente utili e interessanti. Inoltre, il mentore è praticamente l'unica persona che si interessa a cosa e come stai facendo, qualcuno che può guardare il tuo lavoro, suggerirti cosa non va e come migliorarlo. Avere mentori è davvero un grande vantaggio della scuola, il cui ruolo è difficile da sovrastimare.
Nella seconda fase abbiamo partecipato a un interessante e dinamico Code Jam "JavaScript Arrays Quick Draw"; tali competizioni nella scuola sono emozionanti e coinvolgenti.
Il Code Jam "CoreJS" si è rivelato molto più complicato. 120 problemi di JavaScript, per i quali erano concessi 48 ore, sono stati una seria prova.
Inoltre, abbiamo svolto alcuni test di JavaScript, link a ho salvato tra i segnalibri del browser. Sono concessi 30 minuti per completare il test.
In seguito, abbiamo creato 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 compiti sul sito omonimo, Code Jam "WebSocket Challenge." - invio e ricezione di messaggi tramite websocket, Code Jam "Animation Player" - creazione di una piccola applicazione web.
Un compito piuttosto insolito e interessante della seconda fase è stato il task "Presentation". La sua principale caratteristica è che la presentazione doveva essere preparata e presentata in inglese. si può vedere come si sono svolte le presentazioni in presenza.
E, senza dubbio, il task finale della seconda fase è stato il più complesso e voluminoso, durante il quale ci è stato chiesto di creare una copia del nostro web application Piskel (www.piskelapp.com).
Ci sono voluti più di un mese per questo compito, e la maggior parte del tempo è stata dedicata a capire come funzionava nell'originale. Per maggiore oggettività, il compito finale è stato controllato da un altro mentore scelto a caso. 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 tra loro.
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 non sarebbe stato del tutto corretto chiedere solo teoria, e ha preparato un insieme di compiti per il colloquio. A mio avviso, i compiti erano piuttosto complessi. Ad esempio, lui non capiva sinceramente cosa mi impedisse di scrivere un polyfill per bind, mentre io pensavo sinceramente che sapere cosa fosse bind e cosa fosse un polyfill fosse già molto. Non sono riuscita a risolvere questo compito. Ma ce n'erano altri che ho affrontato. Solo che i compiti non erano semplici, e non appena trovavo una soluzione, il mentore cambiava leggermente le condizioni, costringendomi a risolvere il problema di nuovo, in una versione già più complessa.
Voglio sottolineare che l'atmosfera del colloquio è stata molto cordiale, le attività interessanti, il mentore ha dedicato molto tempo a prepararle e si è impegnato affinché il colloquio formativo aiutasse a superare il colloquio reale per un lavoro.
Esempi di attività della seconda fase:
Nella terza fase ci è stato proposto il task Culture Portal. Lo abbiamo svolto in gruppo e ci siamo familiarizzati per la prima volta con le peculiarità del lavoro di squadra, la distribuzione dei compiti e la risoluzione dei conflitti durante la fusione dei rami in Git. Probabilmente è stata una delle attività più interessanti del corso.
Esempio di attività della terza fase: .
Dopo il terzo stadio, gli studenti che hanno fatto domanda per lavorare in EPAM e sono stati selezionati tra i 120 migliori hanno sostenuto un colloquio telefonico per verificare la loro conoscenza della lingua inglese e attualmente stanno affrontando interviste tecniche. La maggior parte di loro sarà invitata a EPAM JS Lab e poi a lavorare su progetti reali. Ogni anno, oltre cento laureati della Rolling Scopes School trovano un lavoro in EPAM. Anche se ciò rappresenta una percentuale relativamente bassa rispetto a chi ha iniziato il corso, le possibilità di ottenere un lavoro per coloro che arrivano alla fine sono piuttosto alte.
Tra le difficoltà di cui dovete essere consapevoli, ne menziono due. La prima è il tempo. Ne serve abbastanza. Preparatevi a dedicare 30-40 ore a settimana; è possibile fare di più, ma se dedicate meno tempo, è poco probabile che riusciate a completare tutti i compiti, poiché il programma del corso è molto impegnativo. La seconda è la conoscenza dell'inglese di livello A2. Se è inferiore, non ostacolerà l'apprendimento nel corso, ma sarà piuttosto difficile trovare un lavoro con tale livello di lingua.
Se avete domande, chiedete pure, cercherò di rispondere. Se conoscete altri corsi online simili gratuiti in lingua russa, condividete, sarà interessante.
Fonte: habr.com
