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

В тази статия искам да разкажа за 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. Пример за една от тези задачи: „Да се определи колко нули има в края на факториала на голямо число в указаната бройна система“.

Пример за задача от първия етап: Hexal.

Според резултатите от изпълнението на задачите от първия етап 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
Palette
YouTubeClient
PiskelClone

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

Пример за задача от третия етап: Culture Portal.

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

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

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

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

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster