Гарне не буває дешевим. Але буває безкоштовним

У цій статті хочу розповісти про Rolling Scopes School – безкоштовний курс JavaScript / фронтенд, який я пройшла, і який мені дуже сподобався. Дізналася я про цей курс випадково, інформації в мережі про нього, на мій погляд, небагато, а курс відмінний і заслуговує на увагу. Думаю, ця стаття буде корисною тим, хто намагається самостійно вивчати програмування. У всякому разі, якби мені хтось раніше розповів про цей курс, я точно була б вдячна.

У тих, хто не намагався вчитися сам з нуля, може виникнути питання – навіщо потрібні якісь курси, адже інформації у мережі море – бери та вчи. Насправді море інформації – це не завжди добре, тому що вибрати з цього моря саме те, що тобі необхідно, буває зовсім не просто. Курс підкаже: що вивчати, як вивчати, в якому темпі вивчати; допоможе відрізнити добрі та гідні уваги джерела інформації від неякісних та застарілих; запропонує велику кількість практичних завдань; дозволить стати частиною спільноти захоплених та зацікавлених людей, які займаються тим самим, що й ти.

Протягом курсу ми постійно виконували завдання: проходили тести, вирішували завдання, створювали власні проекти. Все це оцінювалося і йшло до загальної таблиці, де можна було порівняти свій результат з результатами інших студентів. Атмосфера змагання – це добре, весело та цікаво. Але бали, хоч вони важливі для проходження в наступний етап, не були самоціллю. Організатори курсу вітали підтримку та взаємодопомогу – у чаті студенти обговорювали питання, що виникли в ході вирішення завдань, і намагалися разом знайти на них відповіді. Крім того, в навчанні нам допомагали ментори, що для безкоштовного курсу загалом унікальна можливість.

Курс працює практично безперервно: запускається двічі на рік і триває півроку. Він складається із трьох етапів. На першому етапі ми вивчали переважно Git та верстку, на другому – JavaScript, на третьому – React та Node.js.

Наступного етапу проходили за результатами виконання завдань попереднього етапу. Наприкінці кожного етапу проводилася співбесіда. Після першого та другого етапу це були навчальні співбесіди з менторами, після третього етапу для ста двадцяти найкращих студентів організували співбесіди до EPAM JS Lab. Курс проводить білоруське співтовариство фронтенд та JavaScript розробників The Rolling Scopes, тому зрозуміло наявність у них контактів саме з мінським офісом EPAM. Втім, спільнота намагається налагодити контакти та рекомендувати своїх студентів в IT-компанії та інших містах Білорусі, Казахстану, Росії.

Перший етап тривав трохи більше місяця. Це наймасовіший етап. У наборі його почали 1860 людина – тобто. усі, хто записався на курс. Курс проходять люди різного віку, але більшість учнів – студенти старших курсів та ті, хто, пропрацювавши кілька років в іншій сфері, вирішив змінити професію.

На першому етапі ми пройшли два тести з основ Git, два тести з HTML/CSS, курси Codecademy та HTML Academy, створили своє CV у вигляді markdown-файлу та у вигляді звичайної веб-сторінки, згорнули невеликий односторінковий макет, вирішили кілька досить складних завдань по JavaScript.

Найбільшим завданням першого етапу була верстка сайту Hexal.
Найцікавішим – ігровий Code Jam на знання css-селекторів CSS Quick Draw.
Найскладнішими - завдання JavaScript. Приклад одного з таких завдань: «Знайти кількість нулів наприкінці факторіалу великої кількості у зазначеній системі числення».

Приклад завдання першого етапу: шестигранний.

За результатами виконання завдань першого етапу 833 студенти отримали запрошення на інтерв'ю. Проходження студента на другий етап під час співбесіди визначав його майбутній ментор. Ментори Rolling Scopes School – це розробники з Білорусі, Росії, України. Ментори допомагають та підказують, перевіряють завдання, відповідають на запитання. У нашому наборі менторів було більше 150. Залежно від наявності вільного часу ментор може взяти від двох до п'яти студентів, але на інтерв'ю до нього прямує на двох студентів більше, щоб під час співбесіди він міг вибрати тих, з ким займатиметься.

Розподіл студентів та менторів був одним із найцікавіших та хвилюючих моментів курсу. Організатори внесли в нього невеликий ігровий елемент – дані про менторів зберігав розподільний капелюх, при кліку по якому можна було побачити ім'я та контакти свого майбутнього ментора.

Коли я дізналася ім'я свого ментора і переглянула його профіль на LinkedIn, зрозуміла, що дуже хочу до нього потрапити. Він досвідчений розробник, сеньйор, уже кілька років працює за кордоном. Такий ментор це справді великий успіх. Але й вимоги у нього, як мені здавалося, будуть дуже високими. Згодом з'ясувалося, що з приводу надмірно високих вимог я помилялася, але на той момент я думала саме так.

Питання майбутнього інтерв'ю були відомі, тож підготуватися до нього можна було заздалегідь.
ООП навчала з відео [J]u[S]t prototype this!. Його автор – Сергій Мелюков – розповідає винятково доступно та зрозуміло.
Структури даних та нотація О-велике відмінно розкрито у статті Шпаргалка для технічної співбесіди.
Найбільші сумніви викликало завдання JavaScript, яка неодмінно буде на інтерв'ю. Вирішувати завдання я загалом люблю, але з Google і в консолі браузера, а якщо вирішувати потрібно ручкою і на папері (або мишкою в блокноті) - все стає набагато складніше.
До інтерв'ю зручно готуватись удвох на сайті skype.com/interviews/ - Задавати один одному питання, вигадувати завдання. Це досить ефективний спосіб підготовки: коли виступаєш у різних ролях, краще розумієш того, хто перебуває з іншого боку екрану.

На що в моїй уяві могла бути схожою співбесіда? Швидше за все, на іспит, де є екзаменатор та екзаменований. Насправді іспитом це точно не було. Скоріше розмовою двох захоплених людей, які займаються однією справою. Співбесіда пройшла винятково спокійно, комфортно, доброзичливо, питання були не дуже складними, завдання досить просте, причому ментор зовсім не заперечував проти рішення її в консолі і навіть дозволив зазирнути в Google (на роботі користуватися Google ніхто не заборонить).

Наскільки я розумію, головним завданням співбесіди було не перевірити наші знання та вміння вирішувати завдання, а дати можливість ментору познайомитися зі своїми студентами та показати їм, як виглядає співбесіда взагалі. І те, що від співбесіди залишилися лише добрі враження, було результатом його свідомих зусиль, бажання показати, що у співбесіді насправді немає нічого лякаючого, і проходити його можна із задоволенням. Інше питання, чому це досить легко вдалося зробити людині з технічною освітою і дуже рідко вдається викладачам. Адже всі пам'ятають, з яким хвилюванням йшли на іспит, навіть якщо добре знали матеріал. І якщо вже мова зайшла про офіційну педагогіку, поділюся ще одним спостереженням. На курсі навчалися, зокрема, й студенти старших курсів IT-спеціальностей. І ось вони стверджували, що формат навчання, який пропонує Rolling Scopes School, набагато корисніший, цікавіший і результативніший, ніж звичайна вузівська програма.

Співбесіду я пройшла. Надалі ментор призначив день тижня та час, коли йому зручно поговорити зі мною. До цього дня я готувала питання, він відповідав на них. Запитань щодо виконуваних проектів у мене було не дуже багато - більшу частину відповідей знаходила в Google або в чаті школи. Натомість він розповідав про свою роботу, про можливі проблеми та шляхи їх вирішення, ділився своїми спостереженнями та зауваженнями. Загалом ці бесіди були виключно корисними та цікавими. Крім того, ментор – це практично єдина людина, якій цікаво, що і як ти робиш, людина, яка подивиться на твою роботу, підкаже, що з нею не так, і як її можна поліпшити. Наявність менторів – це величезна перевага школи, роль якого важко переоцінити.

На другому етапі у нас був дуже цікавий та динамічний Code Jam "JavaScript Arrays Quick Draw", такі змагання у школі проходять захоплююче та захоплююче.
Набагато складнішим виявився Code Jam CoreJS. 120 завдань JavaScript, на вирішення яких відводилося 48 годин, стали серйозним випробуванням.
Ще у нас було кілька тестів з JavaScript, посилання на один з них у мене збереглася у закладках браузера. На рішення тесту приділяється 30 хвилин.
Далі ми згорнули макет NeutronMail, виконали Code Jam «DOM, DOM Events», створили пошукову систему по YouTube.

Інші завдання другого етапу: Task: Codewars – вирішення завдань на однойменному сайті, Code Jam "WebSocket Challenge." – надсилання та отримання повідомлень за допомогою веб-сокетів, Code Jam «Animation Player» – створення невеликої веб-програми.

Досить незвичайним та цікавим завданням другого етапу став тяг «Presentation». Основна його особливість у тому, що презентацію необхідно було підготувати та подати англійською мовою. Тут можна побачити, як проходив очний етап презентацій.

І, безперечно, найскладнішим і найоб'ємнішим був фінальний таск другого етапу, під час якого нам запропонували створити власну копію веб-додатку Piskel (www.piskelapp.com).
На це завдання пішло більше місяця, причому більшість часу – на те, щоб зрозуміти, як це працює в оригіналі. Для більшої об'єктивності, фінальний тяг перевіряв інший, випадково обраний ментор. І співбесіду після другого етапу теж проводив випадковий ментор, бо до свого ми вже звикли, і він звик до нас, а на реальних співбесідах, як правило, трапляються незнайомі між собою люди.

Друга співбесіда виявилася набагато складнішою за першу. Як і раніше, був перелік питань для співбесіди, до яких я підготувалася, але ментор вирішив, що просто запитувати теорію буде не зовсім правильно, і до співбесіди підготував набір завдань. Завдання, як на мене, були досить складними. Наприклад, він щиро не розумів, що мені заважає написати bind polyfill, а я також щиро вважала, що те, що я знаю, що таке bind, і що таке polyfill, це вже багато. Це завдання я не вирішила. Але були й інші, з якими впоралася. Ось тільки завдання були не простими, і, як тільки я знаходила рішення, Ментор трохи змінював умову, і вирішувати завдання доводилося знову, в більш складному варіанті.
При цьому зазначу, що атмосфера співбесіди була дуже доброзичливою, завдання цікавими, Ментор витратив багато часу, щоб їх підготувати, і прагнув, щоб учбове інтерв'ю в майбутньому допомогло пройти реальне інтерв'ю при влаштуванні на роботу.

Приклади завдань другого етапу:
NeutronMail
Палітра
YouTubeClient
PiskelClone

На третьому етапі нам запропонували таск Culture Portal. Його ми виконували в групі і вперше познайомилися з особливостями командної роботи, розподілу обов'язків, вирішення конфліктів при злитті гілок у Git. Напевно, це було одним із найцікавіших завдань курсу.

Приклад завдання третього етапу: Culture Portal.

Після закінчення третього етапу студенти, які претендували на роботу в компанії EPAM та увійшли до списку 120 найкращих, пройшли телефонну співбесіду на знання англійської мови, і зараз проходять технічні інтерв'ю. Більшість із них запросять до EPAM JS Lab, а потім на реальні проекти. Щороку понад сто випускників Rolling Scopes School отримують роботу в EPAM. На тлі тих, хто розпочав курс, це досить невеликий відсоток, але якщо дивитися на тих, хто дійшов до фіналу, для них шанс отримати роботу досить великий.

Із труднощів, до яких потрібно бути готовим, назву дві. Перша – це час. Його потрібно чимало. Орієнтуйтеся на 30-40 годин на тиждень, можна більше, якщо менше – малоймовірно, що ви встигатимете виконувати всі завдання, оскільки програма курсу дуже насичена. Друга – англійська рівня А2. Якщо він нижче, вчитися на курсі це не завадить, але знайти роботу з таким рівнем мови буде досить складно.

Якщо є питання, ставте, постараюся відповісти. Якщо знаєте інші схожі безкоштовні російськомовні онлайн курси - поділіться, це буде цікаво.

Джерело: habr.com

Додати коментар або відгук