Как я выучить React за месяц. План действий

Frontend

Что самое неприятное в начале изучения любой новой для вас технологии? Не то, что вы ничего не знаете. А то, что непонятно, как это «ничего» превратить в знания.

В интернете на любой вопрос есть куча курсов, статей, видео. Все говорят разное. Все предлагают учить по-разному, все ожидают разного уровня знания. Подобрать что-то подходящее — задачка посложнее, чем выучить самостоятельно. Бывало ведь, что в вы открываете туториал, а там уже ждут, что вы знаете ES6, знаете как работает DOM, зачем нужна реактивность. А вы не знаете. Или знаете, но не уверены.

Поэтому начинать такое путешествие лучше самостоятельно. Примерно за месяц, при небольших ежедневных инвестициях времени можно освоить любую современную фронтендерскую библиотеку. Главное — следовать плану. РАссмотрим на примере React.

Месяц №0. До React

Важное отступление. Не стоит учить React с нуля. Хотелось бы, чтобы у вас уже было базовое понимание JavaScript, чтобы наслоение концепций не свело вас с ума. Потратьте какое-то время, чтобы разобраться в базовой технологии. Ведь в конце концов всё так или иначе сводится к ней.

Вот что нужно узнать о JS до того как браться за React:

  • ES6+: стрелочные функции, деструктуризация, spread/rest, тернарники, шаблонные строки, импорты/экспорты.
  • Массивы и объекты: map, filter, reduce, forEach.
  • Асинхронность: Event Loop, промисы, async/await.
  • DOM: как работают события, что такое document.querySelector, как навешивать обработчики событий на элементы.

Без этого дальше делать нечего. Но как только понимание появилось — переходим к React.

Как именно учить React

Я не советую учить React по курсам. Кажется, что метода лучше чем читать документацию и сразу пробовать еще не придумали. Поэтому вот три основных принципа, которые приблизят вас к цели.

  • Документация React — лучшее, что есть по теме. Просто читайте её. Всё подряд.
  • Проекты. Каждый день пишите код. Хотя бы по полчаса, но лучше часа по 2-3.
  • Ошибки. Анализируйте возникающие ошибки. Так вы лучше поймете принципы React.

Подход прост, поэтому универсален и применим при изучении разных технологий.

Чего изучать не стоит

Обойдите стороной тулинг и элементы экосистемы. Почитаемые коммьюнити инструменты меняются каждый год. Принципы, на которых работает React — нет. Иначе говоря:

  • Не учите Redux/MobX/Zustand. Сейчас вам это не нужно.
  • Не учите Next.js. Когда понадобится — освоите за пару дней.
  • Не учите TypeScript. Базово поймете за день, до уровня мастерства — за пару лет.

Все это нужно и полезно. Но не в первый месяц.

Неделя 1: Фундамент React

Первая неделя — самая важная. Здесь закладывается база. Если вы поймёте основные концепции, дальше всё пойдёт гораздо проще.

Что учить:

  1. Компоненты. Бывают функциональные и классовые. Функциональные сейчас стандарт, но классовые все равно встречаются. Важно понять, что компонент — это просто функция, которая возвращает JSX.
  2. JSX. Это HTML внутри JavaScript. Поймите, как вставлять динамические данные, как использовать условия и циклы внутри JSX.
  3. Пропсы. Как передавать данные в компоненты. Как делать компоненты переиспользуемыми.
  4. Состояние. Как хранить данные внутри компонента. Как менять состояние и заставлять компонент перерендериваться.
  5. Эффекты. Как делать запросы к API, как реагировать на изменения состояния.

На первой неделе просто пишите маленькие компоненты. Карточки, кнопки, формы. Без логики. Будет достаточно если они смогут просто отображать данные.

Неделя 2: Работа с данными и API

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

Что учить:

  1. Асинхронные запросы. Как получать данные с сервера. Как обрабатывать промисы внутри компонентов.
  2. useEffect для запросов. Как делать запросы при монтировании компонента.
  3. Обработка состояний загрузки. Показывать спиннер, пока данные грузятся. Показывать ошибку, если что-то пошло не так.
  4. Формы и обработка ввода. Как управлять полями ввода, как отправлять данные на сервер.

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

Неделя 3: Маршрутизация и практика

На третьей неделе ваши приложения должны стать полнофункциональными.

Что учить:

  1. React Router. Единственное исключение в тулинге. Надо знать как делать навигацию между страницами в SPA. Как передавать параметры в URL.
  2. Глубокое понимание эффектов. Зависимости, очистка эффектов, предотвращение лишних запросов.
  3. Оптимизация. useMemo, useCallback, React.memo. На этом этапе я не углубляйтесь, но узнайте, что это существует и для чего используется. Почитайте про React Compiler, чтобы узнать как эти оптимизации он делает автоматические
  4. Контекст (Context API). Как передавать данные глубоко в дерево компонентов без пропсов.

На этой неделе попробуйте написать первое полноценное приложение: интернет-магазин. Список товаров, корзина, страница товара, оформление заказа. Без бекенда — все данные можно просто складывать в localStorage.

Неделя 4: Проект и собеседования

Последняя неделя потребует от вас минимальное количество технической работы.

Что делать:

  1. Соберите портфолио. Используйте сделанные проекты. Залейте их на гитхаб (если еще не сделали этого), «причешите» код, добавьте ридми
  2. Напишите резюме. Без воды. Конкретные технологии, конкретные проекты.
  3. Обновите профили на сайтах с вакансиями. Актуализируйте стек технологий, измените дополнительную информацию в резюме.
  4. Начинайте ходить на собеседования. Первые собеседования вы провалите. На них вы допустите ошибки. А ошибки в самом начале статьи мы договорились анализировать.

Главная мысль

Выучить React (да и почти что угодно) за месяц на базовом, достаточном для трудойстройства на начальную позицию, уровне — более чем реально.

Но только если у вас есть принципы, план и вы ему следуете.

Не распыляйтесь. Не прыгайте от одного курса к другому. Просто следуйте схеме:

  1. JavaScript (база) — неделя.
  2. React (компоненты, состояние, эффекты) — неделя.
  3. Работа с данными и API — неделя.
  4. Проект и собеседования — неделя.

Всё.

Желаю успехов!

Симо Мофин
Симо Мофин

Senior Frontend Developer
Главный по блогу