План развития Frontend
Основан на roadmap.sh/frontend
Справочный материал по основам программирования на русском: hexlet.ru/introduction_to_programming
Справочный материал по фронтенду и веб-разработке: doka.guide
TODO
Совет, как не забить на обучение
Если тебе будет интересно разбираться, делать задачки, то важно сделать так, чтобы этот интерес не пропадал.
Для этого стоит выработать какой-то режим или правило, когда ты останавливаешься в обучении на сегодняшний день и продолжишь в следующий раз.
Это поможет тебе сохранять интерес, как будто ты смотришь крутой сериал: не все серии сразу, а потом грусть от того, что сериал закончился. А постоянное желание прийти с работы и посмотреть еще одну серию или сделать еще одну задачку
Главное правило: не перенапрягайся и не пытайся сразу изучить всё, если чувствуешь, что что-то не получается попробуй отложить это хотя бы на полчаса. Если и потом не получится, то попроси помощи :)
Как пользоваться этим планом
Каждый шаг плана начинается с двух блоков:
- тут перечислены навыки и знания, которые нужны, чтобы понять происходящее на этом шаге
- тут перечислены навыки, которые у тебя должны появиться после изучения этого шага
Каждый шаг состоит из различных действий и инструкций, со ссылками на дополнительную информацию и ресурсы
Так же в каждом шаге есть задание для самопроверки, его следует выполнять всегда и полностью
Шаг 1: Окружение и оценка знаний
- базовый HTML
- базовый CSS
- базовый JS
- взаимодействие с DOM, через JS
- настроенное рабочее окружение: редактор, git, eslint
- установка npm-пакетов
- использование сборщика vite
Прочитай Getting Started для Vite, следуй инструкциям и создай пустой проект для задачи “Календарь”
Разберись с инструкцией для публикации приложения на github-pages
Настрой prettier и stylelint, сохрани команды, которые выполнял, чтобы в будущем использовать их для всех новых проектов.
Найди инструкцию для своей IDE / редактора по использованию eslint и prettier, настрой редактор на подсвечивание ошибок и автоформатирование
Все последующие задачи и приложения разрабатывай при помощи Vite, и публикуй на gh-pages
Задания для самопроверки
Во время выполнения задания записывай какие места вызывают трудности, что приходится гуглить
Приложение отображает единственную страницу с календарём на текущий месяц, в который можно добавлять события. У события можно указать название, время начала, длительность, место, и участников.
События можно редактировать и удалять.
В приложении есть поиск по всем полям события, при поиске на календаре отображаются только события, которые попадают под поисковый запрос
Данные календаря сохраняются при перезагрузке страницы
Требования:
- sass
- чистый js, без фреймворков и библиотек
- опубликовать код в репозиторий на github
- опубликовать приложение на gh-pages
Шаг 2: Подтягиваем проседающие места
- завершил задачу “Календарь”
- код проревьюил ментор
- TBD
Вместе с ментором оценить реализацию задачи из прошлого шага, получить обратную связь и определить проблемные места
HTML
- htmlreference.io: All HTML elements at a glance
- Interactive HTML Course
- HTML Full Course - Build a Website Tutorial
CSS
JavaScript
- Используй чистый JS, SCSS, BEM
- Код в репозиторий на github
- Приложение на gh-pages
Дополнительные материалы
30 небольших проектов на чистом JS с объяснениями и видео
Справочные материалы на русском
Справочные материалы на английском
Шаг 3: React, state-manager’ы
- Успешно выполненные предыдущие шаги
- Уверенное владение базовыми HTML, CSS, JS
- Разберешься с React и экосистемой
- Разберешься со state-менеджерами и управлением состоянием
Прочитай короткое описание React
Пройди официальный туториал по реакту, выбирай вариант с разработкой локально, создавай react-проект при помощи Vite
Код отправляй в репозиторий на GitHub
Просмотри карту изучения React, отметь те части, которые не были затронуты гайдом
Познакомься с организацией потоков данных в приложениях
Познакомься со state-managent в реакт-приложениях:
Познакомься с Redux Toolkit (RTK):
Задание для самопроверки:
Записывай все, что вызывало трудности, а так же то, что приходилось гуглить
Дополнительно используй библиотеку Material UI для построения UI
При разработке используй RTK
Дополнительные материалы
Процесс рендера react-компонентов
MUI tutorial for React
Шаг 4: Тестирование
- Все предыдущие шаги
- Понимание принципов тестирования со стороны разработчика
- Unit-тестирование
- Jest
Познакомься с общими принципами тестирования, юнит-тестированием и подходами к тестированию интерфейсов
Познакомиться с библиотекой Jest
Выполнить задачу и в рамках нее использовать Jest
Задание для самопроверки:
В рамках задачи нужно разработать UI Kit из 5 компоннетов и для каждого из компонентов написать unit-test’ы:
- Кнопка
- Поле ввода
- Карточка
- Параграф текста
- Саджест
Макеты
Подробное описание текстом
Шаг 4.5: Typescript
- Уверенная работа с JS
- Понимание React
- Выполнено предыдущее задание
- Базовый TS
- Использование TS в работе
- Типизация проектов, которые изначально были на JS
Необязательный шаг для старта карьеры, но может быть профитным, рекомендую обратиться к карте изучения TypeScript и как минимум разобраться со вступительной частью
Посмотри краткое описание технологии на русском
Задание для самопроверки:
В рамках задачи нужно внедрить типизацию в наш микро ui-kit
- Настрой проверку и транспиляцию в Vite
- Опиши все необходимые типы для компонентов
Шаг 5: Наработка опыта и портфолио
- Пройдены все предыдущие шаги, исключая TypeScript
- Решение тестовых заданий
- Работа над OS
- Настройка окружения под проект
- Стороннее ревью
Найди в открытом доступе несколько тестовых заданий, от компаний, которые тебе нравятся. Попробуй выполнить эти задания, опубликуй результаты на github
Познакомься с разделом github – good first issue, попробуй найти интересные тебе проекты и выбери несколько проблем, с которыми ты сможешь помочь этим проектам
Задание для самопроверки:
Рекомендации по тому, где найти задачи для Open Source:
Шаг 6: Подготовка к собеседованиям
- Пройдены предыдущие этапы обучения
- Есть несколько принятых коммитов в опенсорс-библиотеки
- навык прохождения собеседований
- создание резюме
- оформление gh-аккаунта
Прочитай гайд по составлению резюме и составь свое резюме на resume.io и hh.ru
Задание для самопроверки
Повтори базовые знания HTML, CSS, JS
Пройдись по разделам гайда для собеседований
Отредактируй свое резюме под эти вакансии
Приложи ссылки на тестовые задания, которые ты делал
Покажи, что у тебя есть коммиты в Open Source проекты
Готовься к собесам :)