Три месяца.
Формирование базы программирования и трансформация в крепкого Middle Frontend Developer.
- Избавишься от проблемы "чистого листа" при разработке приложения или библиотеки.
- Поймешь чем отличается хорошая архитектура от плохой.
- Начнешь осмысленно применять алгоритмы и структуры данных в своей работе.
- Будешь прагматично подходить к выбору инструмента для решаемой задачи.
- Готовый проект, который можно будет развивать дальше или использовать как портфолио.
- А для самых старательный мои личные рекомендации в топовые IT компании страны.
Junior, Junior+, Middle.
- Хорошо разбираться в синтаксисе и семантике JS (ES6+).
- Понимание объектной модели JS и браузера.
- Иметь представление об асинхронном программировании в JS хотя бы на базовом уровне.
- Уметь работать с GIT и Github на базовом уровне.
- Опыт работы с TypeScript.
- Опыт работы с инструментами сборки, например, Webpack.
- Все занятия начинаются с формализации решаемой проблемы. Например, если разбираем ООП, то сначала поймём зачем этот ООП вообще придумали.
- Почти каждая лекция будет состоять из теории (проблема, обоснование, решение) и кода. Пропорции примерно 40% к 60% (т.е. кода будет больше).
- Длительность занятия ~2 часа.
- После каждого занятия будут даваться задачки для тренировки, но основная практика - это разработка учебного проекта.
- Раз в две недели будем проводить живые уроки с разборами и ответами на вопросы.
- При разработке учебных проектов все поделятся на команды. Внутри команды будет свой Code-Review и свой team-lead (один из членов команды). Каждая команда будет "защищать" свой проект.
- Те, кто возьмет максимальный тариф, будут работать в команде со мной и получать еженедельную обратную связь.
- Сформируешь базовое понимание о работе процессора и памяти.
- Поймёшь разницу между асинхронным и многопоточным программированием.
- Узнаешь о самых важных алгоритмах и структурах данных в программировании и начнешь их применять.
- Данные и типы данных. Типизация в языках программирования. Фундаментальные структуры данных: массив, связный список, стек, очередь.
- Процессор и память. Многозадачность и роль ОС. Сегменты памяти программы. Управление памятью.
- Важнейшие структуры данных: вектор, хеш-таблицы, деревья поиска.
- Строки. Кодовые таблицы и наборы символов. Кодировки. Графемы. Нормальная составная и разряженные формы.
- Поиск в строке. Регулярные выражения.
- Итераторы и паттерны их применения.
- Автоматы и генераторы.
- Обработка ошибок. Простые и контейнерные типы данных. Функторы и монады.
- Асинхронное программирование. Функции обратного вызова. Монадические контейнеры для асинхронного программирования.
- Асинхронные итераторы. Реактивные структуры данных.
Практика этого модуля основана на реализации своего проекта-библиотеки. Идея библиотеки берется из заранее подготовленного пула или можно придумать самостоятельно. Также, после почти каждого занятия будут даваться задачки на проработку и самостоятельное изучение.
- Узнаешь о разных парадигмах программирования.
- Научишься эффективно применять объектно-ориентированное и функциональное программирование на практике.
- Узнаешь об паттернах построения Frontend приложений.
- Напишешь свой реальный и интересный проект.
- Научишься работать в команде.
- Парадигмы программирования. Идиомы и паттерны. Модули и их метрики.
- ООП: базовые принципы и реализация в JS. Знакомство с TypeScript. Понятие интерфейса. ОО паттерны. Внедрение зависимостей: композиция и стратегия.
- Принципы SOLID. Перегрузка методов и функций. Внедрение зависимостей: посетители.
- Примеси, характеристики и декораторы. Паттерны создания объектов.
- Взаимодействие объектов. Событийная модель. События и реактивные структуры данных. Конвееры. Акторы.
- Архитектура Frontend приложения. MV* паттерны. Состояние приложения.
- View компонента. Декларативный и императивные подходы. JSX и шаблоны. Стратегии рендеринга и доступность.
- Компонент и внешние данные. Чистые компоненты. Взаимодействие компонентов. Обработка ошибок.
- Внедрение зависимостей. Сквозной функционал.
- Способы описания компонента: ОО и функциональные подходы. DSL. Выбор языка программирования для реализации.
- Макро-архитектура Frontend приложения. SPA. Микро-фронтенды. Знакомство с инструментами сборки.
- Тестирование компонентов и приложений.
Практика этого модуля основана на реализации своего проекта-приложения. Идея приложения берется из заранее подготовленного пула или можно придумать самостоятельно. В конце будет защита и отбор. Самые лучше проекты будут награждаться ;)
Если у тебя остались еще вопросы, то буду рада ответить на них. Просто напиши свой вопрос на почту daria.kobezzza@yandex.ru , Дарья Кобец.