Добрите неща не са евтини. Но може и безплатно

В тази статия искам да говоря за Rolling Scopes School, безплатен курс по JavaScript/frontend, който взех и наистина ми хареса. Разбрах за този курс случайно, според мен има малко информация за него в интернет, но курсът е отличен и заслужава внимание. Мисля, че тази статия ще бъде полезна за тези, които се опитват да научат програмиране сами. Във всеки случай, ако някой ми беше казал за този курс по-рано, определено щях да съм благодарен.

Тези, които не са се опитвали да учат от нулата, може да имат въпрос: защо са необходими курсове, защото има много информация в Интернет - вземете я и я научете. Всъщност морето от информация не винаги е добро, защото да изберете от това море точно това, от което се нуждаете, не е никак лесно. Курсът ще ви каже: какво да учите, как да учите, с какво темпо да учите; ще помогне да се разграничат добрите и забележителни източници на информация от нискокачествените и остарели; ще предложи голям брой практически задачи; ще ви позволи да станете част от общност от страстни и заинтересовани хора, които правят същото като вас.

По време на курса ние постоянно изпълнявахме задачи: вземахме тестове, решавахме задачи, създавахме собствени проекти. Всичко това беше оценено и влезе в обща таблица, където можете да сравните вашия резултат с резултатите на други ученици. Атмосферата на състезанието е добра, забавна и интересна. Но точките, макар и важни за преминаване в следващия етап, не бяха самоцел. Организаторите на курса приветстваха подкрепата и взаимопомощта - в чата студентите обсъждаха въпроси, възникнали при решаването на задачи, и се опитваха да намерят отговори на тях заедно. Освен това ментори ни помогнаха в обучението, което е уникална възможност за безплатен курс.

Курсът работи почти непрекъснато: стартира се два пъти годишно и продължава шест месеца. Състои се от три етапа. На първия етап изучавахме основно Git и оформление, на втория - JavaScript, на третия - React и Node.js.

Те преминаха към следващия етап въз основа на резултатите от изпълнението на задачите от предишния етап. В края на всеки етап беше проведено интервю. След първия и втория етап това бяха образователни интервюта с ментори; след третия етап бяха организирани интервюта за сто и двадесетте най-добри студенти в Минската EPAM JS Lab. Курсът се провежда от беларуската общност на разработчиците на front-end и JavaScript The Rolling Scopes, така че е ясно, че те имат контакти с офиса на EPAM Минск. Въпреки това общността се опитва да установи контакти и да препоръча своите студенти на ИТ компании и други градове в Беларус, Казахстан и Русия.

Първият етап продължи малко повече от месец. Това е най-популярният етап. При моя набор го започнаха 1860 души – т.е. всички записали се за курса. Курсът се посещава от хора от всички възрасти, но по-голямата част от учениците са абитуриенти и такива, които след няколко години работа в друга сфера са решили да сменят професията си.

На първия етап издържахме два теста за основите на Git, два теста за курсове по HTML/CSS, Codecademy и HTML Academy, създадохме нашата автобиография под формата на маркдаун файл и под формата на обикновена уеб страница, създадохме малко оформление от една страница и реши няколко доста сложни проблема с JavaScript.

Най-мащабната задача на първия етап беше оформлението на уебсайта на Hexal.
Най-интересната е играта Code Jam върху познаването на CSS селекторите „CSS Quick Draw“.
Най-трудни са задачите на JavaScript. Пример за една от тези задачи: „Намерете броя на нулите в края на факториела на голямо число в определената бройна система“.

Пример за задача от първи етап: Хексал.

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

Разпределението на студентите и менторите беше един от най-интересните и вълнуващи моменти от курса. Организаторите въведоха малък игрови елемент в него - данните за менторите се съхраняваха в сортираща шапка, при щракване върху която можете да видите името и контактите на вашия бъдещ ментор.

Когато разбрах името на моя ментор и погледнах профила му в LinkedIn, разбрах, че наистина искам да стигна до него. Той е опитен разработчик, старши и работи в чужбина от няколко години. Да имаш такъв ментор е наистина голям успех. Но ми се стори, че изискванията му ще бъдат много високи. По-късно се оказа, че съм се заблуждавал за прекалено високите изисквания, но тогава си мислех така.

Въпросите за предстоящото интервю бяха известни, така че беше възможно да се подготвим предварително за него.
ООП, преподаван чрез видео [Н]е [S]t прототип на това!. Авторът й Сергей Мелюков я разказва изключително достъпно и разбираемо.
Структурите на данни и нотацията Big O са добре разгледани в статията. Cheat Sheet за техническо интервю.
Най-големи съмнения предизвика JavaScript задачата, която със сигурност ще бъде включена в интервюто. По принцип обичам да решавам задачи, но с Google и в конзолата на браузъра и ако трябва да решавате с химикал и хартия (или с мишка в бележник), всичко става много по-трудно.
Удобно е и за двама ви да се подготвите за интервю на уебсайта skype.com/interviews/ – задавайте си въпроси, измисляйте проблеми. Това е доста ефективен начин за подготовка: когато играете в различни роли, разбирате по-добре кой е от другата страна на екрана.

Какво си представях, че ще бъде интервюто? Най-вероятно за изпит, където има изпитващ и полагащ теста. Всъщност това определено не беше изпит. По-скоро разговор между двама страстни хора, които правят едно и също нещо. Интервюто беше изключително спокойно, удобно, приятелско, въпросите не бяха много трудни, задачата беше съвсем проста, а менторът изобщо не възрази да я решавам в конзолата и дори ми позволи да погледна в Google („никой няма забранете използването на Google на работа“).

Доколкото разбрах, основната цел на интервюто не беше да проверим нашите знания и умения за решаване на проблеми, а да дадем възможност на ментора да опознае учениците си и да им покаже как изглежда едно интервю като цяло. И това, че от интервюто останаха само добри впечатления, беше резултат от неговите съзнателни усилия, желанието да покаже, че всъщност в интервюто няма нищо страшно и човек може да го преживее с удоволствие. Друг е въпросът защо за човек с техническо образование е било доста лесно да направи това, но много рядко за учители. Всички си спомнят с какво вълнение са се явили на изпита, дори и да са знаели материала перфектно. И тъй като говорим за официална педагогика, ще споделя още едно наблюдение. Курсът беше посетен, наред с други неща, от старши студенти по ИТ. И така те твърдяха, че форматът на обучение, предлаган от Rolling Scopes School, е много по-полезен, интересен и ефективен от обикновената университетска програма.

Минах интервюто. Впоследствие менторът назначи ден от седмицата и време, когато му беше удобно да разговаря с мен. Подготвих въпроси за този ден, а той ми отговори. Нямах много въпроси относно проектите, които изпълнявах – повечето отговори намерих в Google или в училищния чат. Но той разказа за работата си, за възможните проблеми и начините за разрешаването им и сподели своите наблюдения и коментари. Като цяло тези разговори бяха изключително полезни и интересни. Освен това менторът е практически единственият човек, който се интересува от това какво и как правите, човек, който ще погледне работата ви, ще ви каже какво не е наред с нея и как може да се подобри. Наличието на ментори е наистина огромно предимство на училището, чиято роля едва ли може да бъде надценена.

На втория етап имахме много интересен и динамичен Code Jam „JavaScript Arrays Quick Draw“; такива състезания в училище са вълнуващи и вълнуващи.
Code Jam “CoreJS” се оказа много по-сложен. Сериозен тест се превърнаха 120 проблема с JavaScript, чието решаване отне 48 часа.
Имахме и няколко JavaScript теста, връзка към един от тях Запазих го в отметките на браузъра си. Имате 30 минути, за да завършите теста.
След това съставихме оформлението на NeutronMail, завършихме Code Jam „DOM, DOM събития“ и създадохме търсачка в YouTube.

Други задачи от втория етап: Задача: Codewars – решаване на проблеми на едноименния сайт, Code Jam „WebSocket Challenge.“ – изпращане и получаване на съобщения чрез уеб сокети, Code Jam “Animation Player” – създаване на малко уеб приложение.

Доста необичайна и интересна задача от втория етап беше задачата „Презентация“. Основната му особеност е, че презентацията трябваше да бъде изготвена и представена на английски език. Тук Можете да видите как протече присъственият етап на презентациите.

И несъмнено най-сложната и обемна беше последната задача от втория етап, по време на която ни беше предложено да създадем собствено копие на уеб приложението Piskel (www.piskelapp.com).
Тази задача отне повече от месец, като по-голямата част от времето беше прекарано в разбиране как работи в оригинала. За по-голяма обективност финалната задача беше проверена от друг, произволно избран ментор. И интервюто след втория етап също беше проведено от случаен ментор, защото ние вече бяхме свикнали с нашия и той беше свикнал с нас, а в реалните интервюта по правило се срещаме с хора, които не се познават.

Второто интервю се оказа много по-трудно от първото. Както и преди, имаше списък с въпроси за интервюто, за което се подготвих, но менторът реши, че простото задаване на теорията няма да е напълно правилно и подготви набор от задачи за интервюто. Задачите според мен бяха доста трудни. Например, той искрено не разбираше какво ми пречи да напиша bind polyfill и аз също искрено вярвах, че фактът, че знам какво е bind и какво е polyfill, вече е много. Не съм решил този проблем. Но имаше и други, с които се занимавах. Но проблемите не бяха прости и веднага щом намерих решение, менторът промени малко условието и трябваше да реша проблема отново, в по-сложен вариант.
В същото време отбелязвам, че атмосферата на интервюто беше много приятелска, задачите бяха интересни, менторът отдели много време за подготовката им и се опита да гарантира, че обучителното интервю в бъдеще ще помогне да се премине истинско интервю при кандидатстване за работа.

Примери за задачи от втория етап:
NeutronMail
Палитра
YouTube Client
PiskelClone

На третия етап ни беше предложена задачата „Културен портал“. Изпълнихме го в група и за първи път се запознахме с особеностите на екипната работа, разпределението на отговорностите и разрешаването на конфликти при обединяване на клонове в Git. Това беше може би една от най-интересните задачи в курса.

Пример за задача от трети етап: Портал Култура.

След завършване на третия етап студентите, кандидатствали за работа в EPAM и попаднали в списъка на топ 120, преминаха телефонно интервю за тестване на уменията си по английски език, а в момента преминават технически интервюта. Повечето от тях ще бъдат поканени в EPAM JS Lab, а след това и в реални проекти. Всяка година повече от сто завършили Rolling Scopes School са наети на работа в EPAM. В сравнение с тези, които са започнали курса, това е сравнително малък процент, но ако погледнете достигналите до финала, шансът им да си намерят работа е доста голям.

От трудностите, за които трябва да сте подготвени, ще назова две. Първият е времето. Имате нужда от доста. Стремете се към 30-40 часа седмично, възможно е повече; ако е по-малко, малко вероятно е да имате време да изпълните всички задачи, тъй като програмата на курса е много интензивна. Второто е английски ниво А2. Ако е по-ниско, няма да навреди да изучавате курса, но намирането на работа с това ниво на език ще бъде доста трудно.

Ако имате въпроси, питайте, ще се опитам да отговоря. Ако знаете други подобни безплатни онлайн курсове на руски език, моля, споделете, ще бъде интересно.

Източник: www.habr.com

Добавяне на нов коментар