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

В тази статия искам да разкажа за 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!. Неговият автор – Сергей Мелюков – разказва изключително достъпно и ясно.
Структурите от данни и нотацията на O-голямо са отлично представени в статията. Шпаргалка за техническо интервю.
Най-големи съмнения предизвикваше задачата по 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 Events“ и създадохме търсачка за YouTube.

Други задачи от втория етап: Задача: 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 часа на седмица, може и повече; ако е по-малко, е малко вероятно да успеете да изпълнявате всички задачи, тъй като програмата на курса е много наситена. Втората - английски ниво A2. Ако е по-ниско, обучението в курса няма да навреди, но намирането на работа с такова ниво на езика ще бъде доста трудно.

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

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

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