Fullstack JS разработчик

Online kursy

В этом курсе ты научишься разрабатывать полностековые JS приложения. Сегодня JS становится самым популярным языком программирования и используется везде: от роботов и интернета вещей до серверов, выдерживающих сотни тысяч посетителей онлайн. Вакансия по Fullstack JS предполагает хорошее знание всех составляющих веб-разработки. Полностековый JS – это приложения реального времени "из коробки", лёгкость масштабирования и поддержки кода, огромное комьюнити и невероятная свобода выбора библиотек.

Данный курс посвящён изучению полностековой веб-разработки на JavaScript. В процессе обучения вы научитесь:

  • использовать NodeJS в качестве платформы
  • устанавливать библиотеки и управлять зависимостями через NPM
  • писать модульный масштабируемый код на ES6 (ES2016)
  • создавать REST API на KoaJS или ExpressJS
  • организовывать ролевой доступ к приложению
  • программировать в TDD стиле, используя Mocha
  • собирать фронтенд приложение на Webpack
  • отрисовывать вёрстку с помощью компонент React
  • использовать ReactRouter для создания SPA
  • работать с NoSQL базой данных RethinkDB или MongoDB
  • реализовывать регистрациию и авторизацию через OAuth
  • использовать Amazon S3 для хранения статических файлов

В рамках курса, вы разрабатываете единственный проект, постепенно доводя его до коммерческого уровня детализации. Тема проекта выбирается индивидуально, в согласовании с ментором.

Программа курса сочетает текстовый контент, видео-контент, платформу для автопроверки знаний и менторство.

Текстовый контент

Текстовый контент представлен ссылками на рекомендованные статьи и авторским конспектом (заметками). Большинство тем в программировании лучше учить итеративно – чередуя теорию и практику. Однако, многие книг и даже документации составлены таким образом, что их можно читать, без преувеличения, месяцами. Ощущение прогресса, при этом, минимально или отсутствует.

Основная задача текстового контента – предложение оптимального пути, последовательности и глубины изучения каждой темы.

Видео контент

Видео контент представлен 23 лекциями (скрин-кастами), общей продолжительностью более 10 часов. В лекциях показывается разработка ментором собственного демо-проекта (фриланс-биржи). На примере данного проекта рассматриваются типовые задачи, возникающие в современных приложениях и подходы к их решению. Часть видео посвящена теории и малоосвещённым моментам веб-разработки.

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

Платформа

Классическая проблема начинающих формулируется как "Я не знаю, чего именно не знаю". Зачастую, глубина собственного незнания становится очевидной лишь на job interview. Изучение в режиме "монолога" страдает от отсутствия обратной связи.

Для данного курса мы разработали платформу автопроверки знаний. Она состоит из задач разного типа. Теоретические вопросы составлены на базе реальных вопросов, задаваемых на интервью. Проходя курс, вы, одновременно, готовитесь к собеседованию. Второе назначение платформы – закрепление пройденного материала, перевод информации в знания.

Менторство

Наша платформа предназначена для контроля базовых знаний и прохождения через типовые тесты и задачи. Ментор, помимо составления контента для всего перечисленного, выполняет функцию индивидуального наставника. Отвечает на нетривиальные вопросы. Задаёт их!

Опыт, знания и цели каждого человека различаются и ментор учитывает этот факт, корректируя программу обучения, по необходимости. Ментор выполняет код-ревью всего проекта, следит за качеством вашей работы, даёт персональные рекомендации.

Основная задача ментора – формирование видения. Интегрального представления о процессе разработки ПО, инструментарии, конвенциях, паттернах, комьюнити и экосистеме.


Технически, курс состоит из трёх частей и рассчитан на три месяца. Целевая аудитория – "продвинутый начинающий" (детальнее – см. ниже).

Разработчики, прошедшие данные курс, технически, готовы к трудоустройству на вакансии уровня Junior / Middle. Кандидатам на прохождение, не обладающим указанным объёмом знаний, в данный момент, рекомендуется самообучение языку по программе:

http://learn.javascript.ru/

Авторский курс по JavaScript находится в процессе разработки.

Table of Contents

Курс находится в процесс перевода на английский (общение с автором можно вести на обоих языках).

Fullstack JS I

  1. Environment
  2. Project
  3. Html
  4. Client and Server
  5. ReactJS
  6. React-Router
  7. KoaJS
  8. REST API
  9. React-Refetch

Fullstack JS II (in progress)

  1. Logging
  2. Webpack and bundling
  3. Filters, Sortings, Pagination
  4. Roles and permissions
  5. Session, Cookies, Tokens
  6. Authentication and Authorization (server)
  7. Auth & Auth (server)
  8. OAuth integration

Fullstack JS III (in progress)

  1. Types and DB
  2. Types and forms
  3. Time for real DB
  4. Indexes and Lists
  5. Amazon S3
  6. ...

От автора

Реальность сегодняшнего дня такова, что учиться приходится постоянно и учиться приходится быстро. Два актуальных независимых вопроса – формат обучения и правильный выбор направления. Начнём с последнего.

В 2016 году JavaScript официально стал языком #1 в мире:

  • TOP-1 по активности на GitHub
  • TOP-1 по числу библиотек (NPM)

Недавняя серия опросов на StackOverflow выводит Fullstack JS в лидеры специальностей (с большим отрывом). На той же странице есть и не менее интересные факты. Например:

  1. Обучение у ментора коррелирует с 15% приростом зарплаты, сравнительно с самообучением.
  2. Рост популярности React за последний год составляет 311%.
  3. React является самой высокооплачиваемой технологией для FullStack / FrontEnd разработки.

Что касается JavaScript, то (цитируя приведенный источник):

JavaScript is the most commonly used programming language on earth. Even Back-End developers are more likely to use it than any other language.

More people use JavaScript than use any other programming language. PHP appears to be falling out of favor as Node and Angular emerge.

Full-Stack Developers who know JavaScript and develop for the Cloud, or work with React or Redis are paid better than their peers.

JavaScript is so pervasive that it’s in all top 3-tech combinations used by Back-End Developers.

Между тем, большинство экспертов сходятся во мнении, что популярность JavaScript, NodeJS и ReactJS, ещё не достигла пика и продолжит расти в обозримом будущем...

Таким образом, можно утверждать, что знания, полученные в этом курсе, будут востребованы независимо от проекта или направления внутри веб-разработки. Статистика неумолима: JS будет вашим основным либо вспомогательным языком, веб-разработка будет вашей основной либо вспомогательной специальностью.


Успех учителя – это успех его учеников. Будь-то успешное трудоустройство или, как минимум, ощутимый прогресс в выбранной специальности. Проект, созданный вами в рамках курса, станет существенным, а, может, и ключевым этапом на пути к вышеперечисленному и серьёзным аргументом в портфолио.

Что касается форматов, то автор курса отразил своём мнение в одноимённом видео ниже. И он сам периодически пользуется услугами менторов по математике и английскому. Менторство – работает. А дорогу проходит идущий.

Примеры видео:

  1. Форматы обучения
  2. Эволюция программиста
  3. Экосистема JS: не только фреймворки
  4. Настройка IDE
Mentor

Обучение на этом курсе проходит с участием ментора

Это означает, что весь процесс обучения идёт под строгим надзором и при полном участии опытного наставника. Дельные советы, помощь в решение заданий, мотивационные пинки и вот это всё. Подробнее о менторстве здесь.

С ментором ты научишься автоматизировать некоторые задачи, понимать структуру и назначения всех элементов выполняемого проекта. Кроме этого, ментор обучает тонкостям профессии, без знания которых тебя или просто засмеют, или вообще не возьмут на работу.

Как применить полученные навык программирования – тоже входит в программу обучения. Ментор научит где и как искать работодателя, как устроен рынок программистов, и оказывает посильную помощь в поисках работы, делая всё, чтобы сократить промежуток между "я умею делать веб-приложения" до "я зарабатываю деньги на разработке веб-приложений".

Minimal requirements ru

Никаких минимальных требований

  • Владение браузером и редактором на уровне продвинутого пользователя
  • Общее понимание веб-технологий (см. книжку)
  • Базовые знания JavaScript на уровне синтаксиса и структур данных
  • Понимание асинхронного программирования
  • Основы Git (см. книжку!)
  • Способность читать технические статьи на английском. Мы помогаем подтянуть английский до нужного уровня, чтобы тебе было проще учиться и строить карьеру. Подробнее об этом читай здесь

Стоимость обучения

Стоимость обучения зависит от ставки ментора, который тебя обучает. Чтобы начать обучение по этому курсу с выбранным ментором, нужно активировать аккаунт.

Ты сам выбираешь, сколько будет стоить твоё обучение. Никаких рамок, никаких сроков. Обучение проходит в твоём темпе.

Это значит, что чем быстрее ты усваиваешь знания, тем дешевле тебе обходится обучение. Обучение проходит всё время, пока активна твоя подписка на менторство. Всё это время ментор проверяет качество твоей работы, постоянно с тобой на связи, отвечает на твои вопросы, бросается в тебя полезными публикациями и тыкает тебя мотивационной палочкой.

Как проходит обучение

Кто такой ментор? Ментор — это, как ты знаешь, если хорошо учился в школе, был учителем Телемаха, сына Одиссея. Наставник, стало быть, и воспитатель. В этом, собственно, и заключается суть нашего менторства, и едва ли можно предполагать, что мы вкладываем в это значение нечто большее или меньшее. Но всё же расскажем подробнее.

Обучение с ментором хоть и состоит из выполнения практических заданий, но не ограничивается ими. Цель ментора заключается не в том, чтобы поставить тебе хорошую отметку и избавиться от тебя, а в том, чтобы сделать из тебя веб-разработчика. Поэтому ответы на твои даже самые глупые вопросы, советы, мудрости, волшебные пендели и вот это всё, лежит в зоне его ответственности. Тебе не придётся его стесняться, ведь это тот человек, который сознательно тратит своё свободное время ради твоего успеха. И вот как это будет происходить.

Мы верим, что научить невозможно, можно лишь научиться. Поэтому задачи перед тобой будут ставиться такие, что чтобы их выполнить, тебе придётся чему-то научиться. Только твой ментор всегда будет рядом (ну, не физически, но на связи), и по мере возникновения вопросов (а они будут возникать, ведь если вопросов от тебя нет, то ты либо не учишься, либо умер в процессе), будет на них отвечать и подсказывать.

На деле это будет выглядеть примерно так:

  1. Приняв решение о начале обучения, ты получишь доступ к волшебной кнопке «Начать курс» из меню «Обучение»

    00 start ru
  2. Перед тобой появится список заданий. В зависимости от выбранного курса, количество заданий будет отличаться, но неизменным будет одно: доступ к новым заданиям будет открываться по мере прохождения. Как в компьютерной игре. Без спойлеров!

    00 task1 ru
  3. Дальше ты читаешь, что от тебя требуется, и выполняешь этот квест. Вот здесь и начинаются твои “а что?”, “а где?”, “а как?”, и ментор на них отвечает. И хотя в самом задании указаны ссылки на материалы, которые тебе нужно изучить, чтобы понять, как выполнить задание, будет не лишним уточнить у ментора, правильно ли ты всё делаешь.

  4. Сделал? Отлично! Отправляешь результат работы на проверку и ждёшь результата, пока ментор тщательно проверяет твой код. В журнале задания отображается текущий статус задания. Подробнее, о том, как и куда отправлять, в описании самого курса.

    00 success ru
  5. Приступаешь к следующему заданию, и повторяете так до самого конца, пока не дойдёте до цели в виде готового, работающего веб-приложения.

    00 next task ru

В процессе обучения ты будешь получать уведомления на почту об успешном завершении заданий. Также, письма будут приходить если в течение какого-то времени ты не проявлял активностей. У нас много разных способов потыкать в тебя палочкой и убедиться, что ты справляешься с поставленной задачей. Ментор не оставит тебя без внимания, но в конечном счёте, процесс и прогресс обучения зависит лишь от тебя.

Step5

Подождите, у меня остались вопросы...

Vopros
Мы будем использовать XXX или YYY?

Нет никаких ограничений на то, что ты будешь использовать во время прохождения курса. Есть всего несколько библиотек, использование которых обязательно. В остальных случаях мы научим тебя выбирать нужные библиотеки самостоятельно.

Если ты захочешь прикрутить что-нибудь for fun, – мы всячески поддержим и поможем, чтобы это и правда было fun.

Всё ещё мучают вопросы?
Тогда читай полный и подробный F.A.Q.