W tym artykule chciałabym opowiedzieć o Rolling Scopes School – bezpłatnym kursie JavaScript / front-endu, który ukończyłam i który bardzo mi się spodobał. Dowiedziałam się o tym kursie przypadkowo, informacji w sieci na jego temat, moim zdaniem, jest niewiele, a kurs jest doskonały i zasługuje na uwagę. Myślę, że ten artykuł będzie przydatny dla tych, którzy próbują samodzielnie uczyć się programowania. W każdym razie, gdyby ktoś wcześniej opowiedział mi o tym kursie, na pewno byłabym wdzięczna.
Osoby, które nie próbowały uczyć się samodzielnie od podstaw, mogą zadać pytanie – po co jakieś kursy, przecież w sieci jest mnóstwo informacji – weź i ucz się. W rzeczywistości, morze informacji – to nie zawsze dobrze, ponieważ spośród tego morza wybranie dokładnie tego, czego potrzebujesz, bywa dość trudne. Kurs podpowie: co uczyć, jak uczyć, w jakim tempie uczyć; pomoże odróżnić dobre i zasługujące na uwagę źródła informacji od niskiej jakości i przestarzałych; zaoferuje dużą ilość zadań praktycznych; pozwoli stać się częścią wspólnoty pasjonatów i zainteresowanych ludzi, którzy zajmują się tym samym, co ty.
Podczas kursu nieustannie wykonywaliśmy zadania: zdawaliśmy testy, rozwiązywaliśmy problemy, tworzyliśmy własne projekty. Wszystko to było oceniane i wprowadzane do ogólnej tabeli, gdzie można było porównać swój wynik z wynikami innych studentów. Atmosfera rywalizacji – to dobrze, zabawnie i interesująco. Ale punkty, choć są ważne dla przejścia do następnego etapu, nie były celem samym w sobie. Organizatorzy kursu zachęcali do wsparcia i wzajemnej pomocy – w czacie studenci omawiali pytania, które pojawiały się podczas rozwiązywania zadań, i próbowali wspólnie znaleźć na nie odpowiedzi. Ponadto, w nauce pomagali nam mentorzy, co w przypadku bezpłatnego kursu jest w ogóle unikalną możliwością.
Kurs działa praktycznie nieprzerwanie: jest uruchamiany dwa razy w roku i trwa pół roku. Składa się z trzech etapów. Na pierwszym etapie studiowaliśmy głównie Git i układ, na drugim – JavaScript, na trzecim – React i Node.js.
W następnym etapie oceniano wyniki zadań z poprzedniego etapu. Na koniec każdego etapu odbywała się rozmowa kwalifikacyjna. Po pierwszym i drugim etapie były to rozmowy naukowe z mentorami, a po trzecim etapie zorganizowano rozmowy kwalifikacyjne dla dwustu najlepszych studentów w minskiej EPAM JS Lab. Kurs prowadzi białoruskie środowisko front-endowych i JavaScriptowych programistów The Rolling Scopes, więc jest zrozumiałe, że mają kontakty z biurem EPAM w Mińsku. Niemniej jednak społeczność stara się nawiązywać kontakty i polecać swoich uczniów w firmach IT w innych miastach Białorusi, Kazachstanu i Rosji.
Pierwszy etap trwał trochę ponad miesiąc. To najmasowy etap. W moim zespole rozpoczęło go 1860 osób – tzn. wszyscy, którzy zapisali się na kurs. Uczestnicy kursu są w różnym wieku, ale większość uczniów to studenci starszych lat oraz ci, którzy po kilku latach pracy w innej branży postanowili zmienić zawód.
W pierwszym etapie przeszliśmy dwa testy z podstaw Git, dwa testy z HTML/CSS, kursy Codecademy i HTML Academy, stworzyliśmy swoje CV w formie pliku markdown oraz zwykłej strony internetowej, zrealizowaliśmy mały jednolity układ oraz rozwiązaliśmy kilka dosyć trudnych zadań z JavaScript.
Najbardziej obszerne zadanie pierwszego etapu polegało na stworzeniu układu strony Hexal.
Najbardziej interesującym zadaniem był turniej Code Jam związany z wiedzą o selektorach CSS „CSS Quick Draw”.
Najtrudniejsze były zadania z JavaScript. Przykład jednego z takich zadań: „Znajdź liczbę zer na końcu silni dużej liczby w danym systemie liczbowym”.
Przykład zadania pierwszego etapu: .
Na podstawie wyników zadań pierwszego etapu 833 studentów otrzymało zaproszenia na rozmowę kwalifikacyjną. Awans studenta do drugiego etapu w trakcie rozmowy kwalifikacyjnej określał jego przyszły mentor. Mentorzy Rolling Scopes School to czynni programiści z Białorusi, Rosji i Ukrainy. Mentorzy pomagają i doradzają, sprawdzają zadania, odpowiadają na pytania. W naszym zespole było ponad 150 mentorów. W zależności od dostępności wolnego czasu, mentor może zająć się od dwóch do pięciu studentów, ale na rozmowę kieruje się do niego o dwóch studentów więcej, aby w trakcie rozmowy mógł wybrać tych, z którymi będzie pracował.
Przydział studentów i mentorów był jednym z najbardziej interesujących i ekscytujących momentów kursu. Organizatorzy dodali do tego mały element zabawy – dane o mentorach były przechowywane w kapeluszu przydzielającym, po kliknięciu w który można było zobaczyć imię i dane kontaktowe swojego przyszłego mentora.
Kiedy poznałam imię swojego mentora i zobaczyłam jego profil na LinkedIn, zrozumiałam, że bardzo chcę współpracować z nim. To doświadczony programista, senior, który od kilku lat pracuje za granicą. Taki mentor to naprawdę duża szansa. Jednak miałam wrażenie, że jego wymagania będą bardzo wysokie. Później okazało się, że błędnie sądziłam, iż wymagania są zbyt wysokie, ale w tamtym momencie tak właśnie myślałam.
Pytania do nadchodzącej rozmowy kwalifikacyjnej były znane, więc można było się do niej przygotować z wyprzedzeniem.
OOP uczył za pomocą wideo . Jego autorem jest Sergey Meliukov – opowiada o tym w sposób wyjątkowo przystępny i zrozumiały.
Struktury danych oraz notacja O-wielkie zostały świetnie przedstawione w artykule. .
Największe wątpliwości budziło zadanie z JavaScript, które na pewno pojawi się na rozmowie kwalifikacyjnej. Lubię rozwiązywać zadania, ale w Google i w konsoli przeglądarki, a gdy trzeba rozwiązywać ręcznie na papierze (lub myszką w notatniku) – wszystko staje się znacznie trudniejsze.
Na rozmowy kwalifikacyjne wygodnie przygotowywać się we dwójkę na stronie – zadawanie sobie nawzajem pytań, wymyślanie zadań. To dość efektywny sposób na przygotowanie: gdy odgrywasz różne role, lepiej rozumiesz tę osobę po drugiej stronie ekranu.
Na co mogło przypominać mi rozmowę kwalifikacyjną? Najprawdopodobniej na egzamin, gdzie jest egzaminator i egzaminowany. W rzeczywistości wcale nie przypominało to egzaminu. Raczej była to rozmowa dwóch pasjonatów, którzy zajmują się tym samym. Rozmowa kwalifikacyjna przebiegła wyjątkowo spokojnie, komfortowo, życzliwie, pytania były niezbyt trudne, zadanie dość proste, a mentor całkowicie nie sprzeciwiał się rozwiązaniu go w konsoli, a nawet zezwolił zajrzeć do Google („w pracy nikt nie zabrania korzystać z Google”).
Z tego, co rozumiem, głównym celem rozmowy kwalifikacyjnej nie było sprawdzenie naszych wiedzy i umiejętności rozwiązywania problemów, ale umożliwienie mentorowi zapoznania się ze swoimi studentami i pokazanie im, jak wygląda rozmowa kwalifikacyjna w ogóle. To, że z rozmowy kwalifikacyjnej pozostały tylko dobre wrażenia, było wynikiem jego świadomych wysiłków, chęci pokazania, że w rozmowie kwalifikacyjnej w rzeczywistości nie ma nic przerażającego, a można ją przejść z przyjemnością. Inna kwestia, dlaczego tak łatwo udało się to zrobić osobie z wykształceniem technicznym, a bardzo rzadko udaje się to nauczycielom. Wszyscy pamiętają, z jakim podekscytowaniem szli na egzamin, nawet jeśli doskonale znali materiał. A skoro mowa o oficjalnej pedagogice, podzielę się jeszcze jednym spostrzeżeniem. Na kursie uczyli się, w tym również, studenci wyższych lat specjalności IT. I oni twierdzili, że format nauczania, jaki oferuje Rolling Scopes School, jest znacznie bardziej przydatny, interesujący i efektywny niż zwykły program uniwersytecki.
Rozmowę kwalifikacyjną przeszłam. Następnie mentor wyznaczył dzień tygodnia i godzinę, kiedy będzie mu wygodnie porozmawiać ze mną. Przygotowywałam pytania na ten dzień, a on na nie odpowiadał. Pytania dotyczące realizowanych projektów miałam niewiele - większość odpowiedzi znalazłam w Google lub na czacie szkoły. Z drugiej strony opowiadał o swojej pracy, o możliwych problemach i sposobach ich rozwiązania, dzielił się swoimi spostrzeżeniami i uwagami. Ogólnie te rozmowy były niezwykle przydatne i interesujące. Ponadto mentor to praktycznie jedyna osoba, która się interesuje, co i jak robisz, osoba, która spojrzy na twoją pracę, wskaże, co jest nie tak, i w jaki sposób można ją poprawić. Obecność mentorów to naprawdę ogromna zaleta szkoły, której rolę trudno przecenić.
Na drugim etapie odbył się bardzo ciekawy i dynamiczny Code Jam "JavaScript Arrays Quick Draw", takie zawody w szkole przebiegają fascynująco i pasjonująco.
Dużo bardziej złożony okazał się Code Jam "CoreJS". 120 zadań z JavaScript, na rozwiązanie których przeznaczono 48 godzin, stało się poważnym wyzwaniem.
Mieliśmy również kilka testów z JavaScript, link do zachowałem w zakładkach przeglądarki. Na rozwiązanie testu przeznaczone jest 30 minut.
Następnie zaprojektowaliśmy makietę NeutronMail, wykonaliśmy Code Jam „DOM, DOM Events” oraz stworzyliśmy wyszukiwarkę YouTube.
Inne zadania drugiego etapu: Zadanie: Codewars – rozwiązanie zadań na stronie o tej samej nazwie, Code Jam „WebSocket Challenge.” – wysyłanie i odbieranie wiadomości przy użyciu WebSocketów, Code Jam „Animation Player” – stworzenie małej aplikacji webowej.
Bardzo nietypowym i ciekawym zadaniem drugiego etapu było zadanie „Presentation”. Jego główną cechą było to, że prezentację trzeba było przygotować i przedstawić w języku angielskim. można zobaczyć, jak przebiegał stacjonarny etap prezentacji.
I niewątpliwie najtrudniejszym i najbardziej czasochłonnym było zadanie finałowe drugiego etapu, podczas którego zaproponowano nam stworzenie własnej kopii aplikacji webowej Piskel (www.piskelapp.com).
Na to zadanie zeszło nam ponad miesiąc, przy czym większość czasu zajęło zrozumienie, jak działa to w oryginale. Dla większej obiektywności, finałowe zadanie sprawdzał inny, losowo wybrany mentor. I rozmowę kwalifikacyjną po drugim etapie również prowadził losowy mentor, ponieważ do swojego już się przyzwyczailiśmy, a on do nas, a na rzeczywistych rozmowach zwykle spotyka się nieznanych sobie ludzi.
Druga rozmowa kwalifikacyjna okazała się znacznie trudniejsza od pierwszej. Jak wcześniej, istniała lista pytań do rozmowy, do których się przygotowałam, ale mentor uznał, że po prostu pytanie o teorię byłoby nie do końca odpowiednie i przygotował zestaw zadań. Z mojej perspektywy te zadania były dość skomplikowane. Na przykład, szczerze nie rozumiał, co mi przeszkadza w napisaniu bind polyfill, a ja równie szczerze uważałam, że to, że wiem, co to jest bind, a co to polyfill, to już dużo. Tego zadania nie rozwiązałam. Ale były też inne, które udało mi się wykonać. Tylko zadania nie były proste, a gdy tylko znajdowałam rozwiązanie, mentor nieco zmieniał warunki i musiałam ponownie rozwiązywać zadanie, już w trudniejszej wersji.
Przy tym zwracam uwagę, że atmosfera rozmowy kwalifikacyjnej była bardzo przyjazna, a zadania interesujące, mentor poświęcił dużo czasu na ich przygotowanie i starał się, aby szkolna rozmowa w przyszłości pomogła w przejściu prawdziwej rozmowy kwalifikacyjnej przy zatrudnieniu.
Przykłady zadań drugiego etapu:
Na trzecim etapie zaproponowano nam zadanie Culture Portal. Wykonywaliśmy je w grupie i po raz pierwszy zapoznaliśmy się z cechami pracy zespołowej, podziału obowiązków oraz rozwiązywania konfliktów podczas łączenia gałęzi w Git. To była jedna z najciekawszych zadań w kursie.
Przykład zadania trzeciego etapu: .
Po zakończeniu trzeciego etapu studenci, którzy ubiegali się o pracę w firmie EPAM i znaleźli się wśród 120 najlepszych, przeszli rozmowę telefoniczną dotyczącą znajomości języka angielskiego, a obecnie odbywają rozmowy techniczne. Większość z nich zostanie zaproszona do EPAM JS Lab, a później na rzeczywiste projekty. Co roku ponad sto absolwentów Rolling Scopes School znajduje pracę w EPAM. Na tle tych, którzy rozpoczęli kurs, to dość niewielki procent, ale patrząc na tych, którzy dotarli do finału, mają oni całkiem dużą szansę na zatrudnienie.
Z trudności, na które trzeba być gotowym, wymienię dwie. Pierwsza to czas. Potrzeba go dosyć dużo. Planuj na 30-40 godzin tygodniowo, można więcej, jeśli mniej – mało prawdopodobne, że uda Ci się wykonać wszystkie zadania, ponieważ program kursu jest bardzo intensywny. Druga to angielski na poziomie A2. Jeśli jest niższy, nauka w kursie nie zaszkodzi, ale znalezienie pracy na takim poziomie języka będzie dość trudne.
Jeśli masz pytania, pytaj, postaram się odpowiedzieć. Jeśli znasz inne podobne darmowe kursy online w języku rosyjskim – podziel się, to będzie interesujące.
Źródło: habr.com
