React.js разработчик | OTUS
Неделя выходных – неделя с OTUS.
Скидки еще больше! Все подробности в чате ➞
Написать в чат

Курсы

Программирование
Специализации Курсы в разработке Подготовительные курсы
+7 499 110-61-65

React.js разработчик

Самый популярный JS-фреймворк для Frontend-разработки

Длительность

4 месяца

Продолжительность
4 месяца, 4 академ. часа в неделю
Что даст вам этот курс

На курсе вы научитесь:


  • продвинутым возможностям Redux, Redux-Saga, Redux-thunk;

  • создавать SPA-приложения и оптимизировать их для production;

  • писать чистый и лаконичный код с TypeScript;

  • применять интеграционные и юнит-тесты;

  • работать в GraphQL, Apollo, Relay.

Также вы узнаете, как работает под капотом Webpack и Babel, освоите паттерны функционального программирования и научитесь их применять в React.

Для кого этот курс:


  • JavaScript-разработчиков с навыками HTML/CSS;

  • Backend-разработчиков, желающих стать Fullstack;

  • начинающих React-разработчиков.

    Преподаватели

    Никита Овчинников
    Василий Ванчук
    Bolt Technology OÜ, Senior Software Engineer
    Евгений Евстропов
    Team Lead (Medici Living Group)
    Окончил Волгоградский государственный технический университет по специальности «Автоматизированные системы обработки информации и управления». Увлёкся программированием ещё в студенческие годы (в 2010 году) и остановиться так и не смог. В коммерческой разработке с 2012 года.

    Работал с проектами разного масштаба, прошёл путь от Junior до Senior. С 2016 года — старший инженер-программист в EPAM Systems, с 2018 по май 2019 — технический руководитель по разработке софта в Skywind Group.

    Участвовал в международном проекте компании Ericsson, занимался web-программированием и собственными проектами.

    Является специалистом по архитектуре веб-приложений, хорошо знает JS, React, Node, Mongo, MySQL, фреймворки Express, Koa2, AngularJS. Уверен, что в программировании всё приходит с практикой.

    Опытный JavaScript-разработчик. Принимал участие в реализации самых разных проектов: разрабатывал сервисные приложения, интерфейсы для банковского софта, системы для каталогизации и учета. Есть опыт серверной разработки с Node.js.

    Начинал более 10 лет назад в качестве PHP-разработчика, в 2013 году переключился на JavaScript-разработку. В настоящее время занимается развитием мобильного направления сервиса Food Delivery.

    Активно участвует в жизни JS-сообщества: митапы, конференции, преподавание — это всё является неотъемлемой частью жизни уже много лет. В свободное время помогает другим и учится сам.

    Живёт и работает в Германии, возглавляет команду Frontend-разработчиков в компании Medici Living Group.

    Участвовал в создании различных приложений на React Native, Swift, Java и Xamarin.Forms с нуля и до production. Периодически делал contribution в различных open-source-библиотеках для React Native, примеры можно посмотреть по ссылкам на GitHub: Google Fit, Apple Healthkit.

    Занимается программированием ещё со школьных лет: сначала это была лишь олимпиадная сфера, затем, на втором курсе университета, перешёл в научную среду и начал работать в Институте системного программирования. На 4-м курсе увлёкся мобильной разработкой и открыл для себя мир React Native. В течение 3 лет занимался аутсорсингом в составе небольшой интернациональной команды, создавая приложения на заказ.

    Образование:
    — Высшая школа экономики, «Инженер программного обеспечения»;
    — University of Kaiserslautern, Germany, Computer Science.

    Никита
    Овчинников
    Василий
    Ванчук
    Евгений
    Евстропов

    Преподаватели

    Никита Овчинников
    Окончил Волгоградский государственный технический университет по специальности «Автоматизированные системы обработки информации и управления». Увлёкся программированием ещё в студенческие годы (в 2010 году) и остановиться так и не смог. В коммерческой разработке с 2012 года.

    Работал с проектами разного масштаба, прошёл путь от Junior до Senior. С 2016 года — старший инженер-программист в EPAM Systems, с 2018 по май 2019 — технический руководитель по разработке софта в Skywind Group.

    Участвовал в международном проекте компании Ericsson, занимался web-программированием и собственными проектами.

    Является специалистом по архитектуре веб-приложений, хорошо знает JS, React, Node, Mongo, MySQL, фреймворки Express, Koa2, AngularJS. Уверен, что в программировании всё приходит с практикой.

    Василий Ванчук
    Bolt Technology OÜ, Senior Software Engineer
    Опытный JavaScript-разработчик. Принимал участие в реализации самых разных проектов: разрабатывал сервисные приложения, интерфейсы для банковского софта, системы для каталогизации и учета. Есть опыт серверной разработки с Node.js.

    Начинал более 10 лет назад в качестве PHP-разработчика, в 2013 году переключился на JavaScript-разработку. В настоящее время занимается развитием мобильного направления сервиса Food Delivery.

    Активно участвует в жизни JS-сообщества: митапы, конференции, преподавание — это всё является неотъемлемой частью жизни уже много лет. В свободное время помогает другим и учится сам.

    Евгений Евстропов
    Team Lead (Medici Living Group)
    Живёт и работает в Германии, возглавляет команду Frontend-разработчиков в компании Medici Living Group.

    Участвовал в создании различных приложений на React Native, Swift, Java и Xamarin.Forms с нуля и до production. Периодически делал contribution в различных open-source-библиотеках для React Native, примеры можно посмотреть по ссылкам на GitHub: Google Fit, Apple Healthkit.

    Занимается программированием ещё со школьных лет: сначала это была лишь олимпиадная сфера, затем, на втором курсе университета, перешёл в научную среду и начал работать в Институте системного программирования. На 4-м курсе увлёкся мобильной разработкой и открыл для себя мир React Native. В течение 3 лет занимался аутсорсингом в составе небольшой интернациональной команды, создавая приложения на заказ.

    Образование:
    — Высшая школа экономики, «Инженер программного обеспечения»;
    — University of Kaiserslautern, Germany, Computer Science.

    Необходимые знания
    • знакомство с HTML/CSS;
    • опыт работы с JavaScript.
    Будет плюсом:
    • знание основ работы браузера и браузерного API;
    • базовые навыки работы с Git.
    Подготовительный курс

    • Все основные возможности Javascript

    • Домашние задания и их разбор

    • Общение в чате с преподавателем

    • Подготовка к курсам "Fullstack разработчик Javascript", "React.js-разработчик" и "Node.js-разработчик"

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

    Вебинары идут дважды в неделю по 2 академических часа (то есть астрономических 1,5 часа). Все вебинары сохраняются и в записи в вашем личном кабинете.

    Домашнее задание выдается в среднем одно в неделю.

    Возникающие вопросы по материалам лекций, домашним заданиям и по выпускному проекту вы сможете задавать преподавателю в слаке или во время вебинаров.
    Корпоративное обучение для ваших сотрудников
    Поможем вашей компании развивать команду! Этот и еще 60+ курсов для IT-специалистов таких направлений, как: программирование, тестирование, администрирование, информационная безопасность, управление и Data Science. 300 компаний уже обучают у нас сотрудников.
    >
    Программа обучения
    Модуль 1
    React basics
    Модуль 2
    Redux и стейт приложения
    Модуль 3
    React и процесс реальной разработки приложения
    Модуль 4
    Проектный модуль
    React basics
    Тема 1: Webpack + babel
    после занятия вы сможете:
    объяснить, что из себя представляет Ecma TC39;
    проанализировать, как в стандарт попадают новые возможности языка;
    познакомиться с транспиляцией, babel 7, типовой конфигурацией для Typescript;
    разобраться, что такое Webpack, базовая настройка Webpack, установка и настройка Jest;
    проанализировать, что такое TDD и BDD;
    Big O notation.
    Домашние задания: 1
    1 Webpack + babel + typescript базовая настройка
    Цель: В результате получим базовый скелет webpack + typescript проекта
    Тема 2: Typescript
    после занятия вы сможете:
    использовать: Basic Types, Interfaces, Functions, Classes, Generics, Enums, Iterators and Generators, Modules, Type Checking JavaScript Files.
    6 апреля, 20:00 — 21:30
    Лектор: Никита Овчинников
    Домашние задания: 1
    1 Разработать калькулятор reverse polish notation
    Цель: В результате получим калькулятор для reverse polish notation Минимальные требования к интерфейсу - поле ввода нотации + кнопка "посчитать". Результат выводить под полем ввода. Остальное оформление на собственный выбор. Доп информация о том, как это должно работать: https://en.wikipedia.org/wiki/Reverse_Polish_notation
    Тема 3: Установка и настройка React
    после занятия вы сможете:
    с нуля установить и настроить проект ReactJS с использованием create-react-app (CRA) либо конфигурируя приложения, используя webpack + babel;
    установить и настроить Storybook;
    использовать первый простой компонет на React;
    Eslint, Typescript typechecker;
    Precommit hooks.
    9 апреля, 20:00 — 21:30
    Лектор: Никита Овчинников
    Домашние задания: 1
    1 Установка и настройка React
    Цель: Самостоятельно сконфигурировать ReactJS-проект. В результате получим готовый шаблон приложения для дальнейшей разработки.
    Тема 4: JSX как основа ReactJS. Functional components
    после занятия вы сможете:
    объяснить, что такое JSX, почему завоевал такую большую популярность, во что превращается JSX;
    учитывать JSX props, типы данных для props;
    проверить типы с помощью PropTypes и Typescript;
    разработать сложный компонент с использованием Storybook;
    добавить knobs;
    добавить unit-тесты для сложного компонента.
    13 апреля, 20:00 — 21:30
    Лектор: Василий Ванчук
    Домашние задания: 1
    1 JSX как основа ReactJS. Functional components
    Цель: Учимся разрабатывать сложные компоненты и познаем основы композиции. В результате сможем спроектировать и разработать сложный компонент.
    Тема 5: JSX + CSS
    после занятия вы сможете:
    разобраться, что такое className;
    BEM, CSS modules, CSS preprocessors;
    CSS-in-JS;
    использовать Webpack и Babel-настройки для работы со стилями;
    добавить стили в сложный компонент;
    тестировать стили с помощью Jest.
    16 апреля, 20:00 — 21:30
    Лектор: Никита Овчинников
    Тема 6: Components lifecycle
    после занятия вы сможете:
    объяснить, что такое React state;
    использовать state компонентов;
    разобраться, как работает vDOM и перерисовка контента;
    использовать жизненный цикл компонентов, Lifecycle hooks;
    Presentational and Container Components (smart/dumb componets);
    написать тест к компоненту с lifecycle;
    разработать компонент с жизненным циклом и покрыть его тестом.
    20 апреля, 20:00 — 21:30
    Лектор: Евгений Евстропов
    Домашние задания: 1
    1 Components lifecycle
    Цель: Используем styled-components для разработки и манипуляции стилями. Добавим стили в компоненты, разработанные в рамках предыдущего ДЗ. Реализуем несколько динамичных компонентов blinker: https://en.m.wikipedia.org/wiki/File:Game_of_life_blinker.gif beacon: https://en.m.wikipedia.org/wiki/File:Game_of_life_beacon.gif
    Тема 7: Списки, события, формы
    после занятия вы сможете:
    управлять событиями в приложении;
    работать с формами в приложении.
    23 апреля, 20:00 — 21:30
    Лектор: Василий Ванчук
    Домашние задания: 1
    1 Списки, события, формы
    Цель: Добавляем элементы управления в приложение
    Тема 8: React patterns часть 1
    после занятия вы сможете:
    использовать основные паттерны, которые часто встречаются на практике.
    27 апреля, 20:00 — 21:30
    Лектор: Евгений Евстропов
    Тема 9: React patterns часть 2
    после занятия вы сможете:
    использовать продвинутые паттерны, которые часто встречаются на практике;
    объяснить, что такое регрессия;
    разобраться, как в борьбе с регрессией помогут тесты.
    30 апреля, 20:00 — 21:30
    Лектор: Василий Ванчук
    Домашние задания: 1
    1 React patterns
    Цель: Оптимизируем код с помощью react patterns
    Тема 10: React-hooks
    после занятия вы сможете:
    проанализировать, какие изменения произошли в 16 версии;
    React Fiber;
    React hooks.
    7 мая, 20:00 — 21:30
    Лектор: Евгений Евстропов
    Тема 11: React router
    после занятия вы сможете:
    объяснить, что такое роутинг в приложении;
    HTML5 history API;
    React router;
    подвести итоги.
    14 мая, 20:00 — 21:30
    Лектор: Василий Ванчук
    Домашние задания: 1
    1 React router
    Цель: Реализовать переход между страницами в приложении
    Redux и стейт приложения
    Тема 1: Основы функционального программирования
    после занятия вы сможете:
    pure Functions;
    Currying (каррирование);
    Composing (композиция);
    Signatures (сигнатуры типов);
    ramdajs.
    18 мая, 20:00 — 21:30
    Домашние задания: 1
    1 Основы функционального программирования
    Цель: Трансформируем данные в нужный формат
    Тема 2: Основные концепты Redux
    после занятия вы сможете:
    immutability;
    Actions, Reducers, Store.
    21 мая, 20:00 — 21:30
    Тема 3: Redux actions
    после занятия вы сможете:
    объяснить, что такое Redux-Actions и как это упрощает работу;
    Redux debbug tools;
    разобраться, что такое тестирование Redux, что нужно тестировать и как.
    25 мая, 20:00 — 21:30
    Тема 4: Redux middwares and side effects
    после занятия вы сможете:
    объяснить, что такое side-effect;
    Redux middlwares;
    Redux thunk;
    тестирование side-effects.
    28 мая, 20:00 — 21:30
    Домашние задания: 1
    1 Redux middwares and side effects
    Цель: Повысить стабильность приложения и реализовать базовый функционал
    Тема 5: React + redux
    после занятия вы сможете:
    работать с Redux в React приложении;
    Memoization and Reselect;
    покрыть тестами connect.
    1 июня, 20:00 — 21:30
    Тема 6: Redux-saga intro
    после занятия вы сможете:
    jS Generators;
    проанализировать основные концепты Redux-Saga — call, put, takeEvery;
    покрыть тестами простую сагу.
    4 июня, 20:00 — 21:30
    Домашние задания: 1
    1 Redux-saga intro
    Цель: Подключим redux в react приложение
    Тема 7: Redux-saga basic concepts
    после занятия вы сможете:
    saga Helpers;
    Declarative Effects;
    Dispatching actions;
    обработать ошибки.
    8 июня, 20:00 — 21:30
    Тема 8: Redux-saga advanced concept
    после занятия вы сможете:
    управлять потоками эффектов (non- blocking, parralell, race);
    оценить композицию saga;
    Task cancellation
    Fork model
    Channels.
    11 июня, 20:00 — 21:30
    Домашние задания: 1
    1 Redux-saga advanced concept
    Цель: Реализуем движок генерации поколений в приложении
    Тема 9: Redux-saga и интеграционное тестирование
    после занятия вы сможете:
    объяснить, что такое интеграционное тестирование;
    встроить в приложение процесс интеграционного тестирования;
    redux-saga-test-plan.
    15 июня, 20:00 — 21:30
    React и процесс реальной разработки приложения
    Тема 1: Архитектура React-приложения
    после занятия вы сможете:
    использовать библиотеку презентационных компонентов;
    применить архитектуру ducks;
    использовать модули в приложении;
    25 июня, 20:00 — 21:30
    Домашние задания: 1
    1 Архитектура React-приложения
    Цель: Повышаем качество кодовой базы
    Тема 2: Процесс разработки React-приложения
    после занятия вы сможете:
    объяснить, что представляет из себя процесс разработки приложения;
    применить Git flow и разработать приложения;
    проектировать структуры компонентов;
    применить шаги для разработки новой фичи в соответствии с TDD.
    29 июня, 20:00 — 21:30
    Тема 3: Продвинутая конфигурация приложения
    после занятия вы сможете:
    dev/Prod config
    объяснить, что такое процесс сборки приложения;
    CDN, Nginx;
    Server side rendering (SSR) простая конфигурация;
    проанализировать nextjs.
    2 июля, 20:00 — 21:30
    Домашние задания: 1
    1 Продвинутая конфигурация приложения
    Цель: Повысим качество приложения, добавим SSR
    Тема 4: Test quality tools
    после занятия вы сможете:
    test coverage;
    узнать, как правильно писать тесты;
    оценить теорию хауса и мутабельное тестирование;
    Stryker.
    6 июля, 20:00 — 21:30
    Домашние задания: 1
    1 Test quality tools
    Цель: Повышаем качество тестов до максимума
    Тема 5: GraphQL
    после занятия вы сможете:
    объяснить, что такое REST;
    проанализировать основы GraphQL;
    queries and Mutations;
    schemas and Types;
    validation;
    9 июля, 20:00 — 21:30
    Тема 6: Appolo basic
    после занятия вы сможете:
    применить другой взгляд на state management в приложении;
    queries;
    mutations;
    local state management;
    subscriptions;
    fagination.
    13 июля, 20:00 — 21:30
    Тема 7: Appolo advanced
    после занятия вы сможете:
    appolo cache;
    testing React components;
    apollo with TypeScript;
    developer tools;
    appolo and SSR.
    16 июля, 20:00 — 21:30
    Домашние задания: 1
    1 Appolo advanced
    Цель: Реализуем с помощью Applo работу с API Instagram
    Проектный модуль
    Заключительный месяц курса посвящен проектной работе. Свой проект - это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе.
    При этом не обязательно закончить его за месяц, однако к защите надо разработать действующий прототип, который пояснит идею проекта.

    В процессе написания по проекту можно получить консультации преподавателей.

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

    Проект должен стать примером кода, который можно показывать потенциальным работодателям.

    Студет может самостоятельно выбрать технологии из числа изученных на курсе и/или использовать что-то дополнительно.
    Предлагаемые темы выпускного проекта:
    1. Conway's Game of Life
    2. Приложение для контроля расходов
    Тема 1: Выбор темы и организация проектной работы
    выбрать и обсудить тему проектной работы;
    спланировать работу над проектом;
    ознакомиться с регламентом работы над проектом.
    20 июля, 20:00 — 21:30
    Домашние задания: 1
    1 Проектная работа
    Цель: Реализовать готовое для продакшн приложение
    Тема 2: Консультация по проектам и домашним заданиям
    получить ответы на вопросы по проекту, ДЗ и по курсу.
    30 июля, 20:00 — 21:30
    Тема 3: Защита проектных работ
    защитить проект и получить рекомендации экспертов.
    13 августа, 20:00 — 21:30
    Выпускной проект
    В течении всего курса вы будете работать над проектом.

    Будет предложено несколько вариантов на выбор:
    1. Разработка проекта, связанного с браузерной визуализацией. Аналог "conway's game of life".
    2. Контроль расходов:
    — регистрация чеков, сумм и дат;
    — список чеков и квитанций;
    — возможность строить графики со статистикой (в этом году/в прошлом году);
    — хранение данных.

    Выпускной работой студента станет доведение приложения, разрабатываемого на протяжении всего курса, до готовности к production.
    Прошедшие открытые вебинары по курсу
    Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
    ReactJS: быстрый старт
    Никита Овчинников
    ReactJS — быстрый старт: сильные и слабые стороны
    Никита Овчинников
    После обучения вы

    • заберете с собой полный комплект обучающих материалов: видеозаписи всех вебинаров, презентации к занятиям, а также решение задач и проектов в виде кода на github и другие дополнительные материалы;

    • получите сертификат о прохождении курса;

    • приобретете опыт Frontend-разработки на React;

    • получите приглашение пройти собеседование в компаниях-партнерах (эту возможность получают самые успешные студенты).

    Ваш сертификат

    онлайн-образование

    Сертификат №0001

    Константин Константинопольский

    Успешно закончил курс «React.js разработчик»
    Выполнено практических заданий: 16 из 16

    Общество с ограниченной ответственностью “Отус Онлайн-Образование”

    Город:
    Москва

    Генеральный директор ООО “Отус Онлайн-Образование”
    Виталий Чибриков

    Лицензия на осуществление образовательной деятельности
    № 039825 от 28 декабря 2018 года.

    онлайн-образование

    Сертификат №0001

    Константин Константинопольский

    Успешно закончил курс «React.js разработчик»
    Выполнено практических заданий: 16 из 16

    Общество с ограниченной ответственностью “Отус Онлайн-Образование”

    Город:
    Москва

    Генеральный директор ООО “Отус Онлайн-Образование”
    Виталий Чибриков

    Лицензия на осуществление образовательной деятельности
    № 039825 от 28 декабря 2018 года.
    🔥 Неделя выходных – неделя с OTUS.
    Скидки еще больше! Все подробности в чате ➞