System Design
В декабре
3 месяца
Онлайн
Для кого этот курс
- Разработчики программного обеспечения (Software Developers)
- Архитекторы (Solution Architects, Software Architects, Highload Architects)
- Технические лиды (Tech Leads)
- Инженеры по данным (Data Engineers)
- DevOps-инженеры
Необходимые знания
- Языки программирования: Java, Python, C++, JavaScript, Go, или другие популярные языки
- Базы данных: SQL, NoSQL, например, PostgreSQL, MongoDB, Redis
- Облачные платформы: Яндекс.Облако
- Инструменты и технологии: Docker, Kubernetes, микросервисная архитектура, REST и gRPC, CI/CD
Что даст вам этот курс
- Разработчикам: позволит улучшить понимание системного дизайна, чтобы создавать более масштабируемые и устойчивые приложения;
- Архитекторам: систематизируете и обновите свои знания по проектированию сложных систем;
- Лидам: позволит глубже понять методы и подходы к разработке архитектуры решений;
- Дата-инженерам: поймете, как проектировать распределенные системы;
- DevOps'ам: научитесь применять системный дизайн при развертывании и управлении инфраструктурой.
Особенности курса
- Практическая ориентация на реальные кейсы
Курс будет построен на разборе реальных кейсов, которые используют ведущие IT-компании. Это позволит студентам лучше понять, как решаются практические задачи в реальном мире - Подготовка к интервью в крупных компаниях
Основное внимание будет уделено подготовке к системным интервью, включая симуляции и разборы типичных вопросов, что является востребованным навыком на рынке труда - Проектная работа
Завершение курса предполагает выполнение комплексного проекта, который можно использовать в портфолио. Этот проект будет ориентирован на решение реальной проблемы, что даст студентам конкурентное преимущество - Уникальный контент
Курс включает в себя эксклюзивные материалы и инструменты, которые используются в компаниях, работающих с большими и распределенными системами
- Многие компании, ожидают, что кандидаты будут готовы к вопросам по системному дизайну на интервью. Это включает в себя разбор кейсов, проектирование системы с учетом нефункциональных требований (например, надежность, производительность) и оценку различных trade-offs.
- Вакансии для средних и старших аналитиков часто включают задачи по проектированию архитектуры системы, взаимодействию с разработчиками и разработке технической документации. Знание системного дизайна помогает выполнять эти задачи на высоком уровне и часто требуется для работы в крупных компаниях или на сложных проектах.
- Во многих вакансиях для системных аналитиков указывается необходимость глубокого понимания принципов системного дизайна. Например, компании требуют знания архитектурных паттернов, умения проектировать масштабируемые системы и опыт работы с распределенными системами. Эти навыки важны как для разработки новых систем, так и для анализа существующих, чтобы предложить оптимальные решения.
Процесс обучения
Обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в Telegram, сдача домашних работ и получение обратной связи от преподавателя.
Вебинары проводятся 2 раза в неделю по 2 ак. часа и сохраняются в записи в личном кабинете. Вы можете посмотреть их в любое удобное для вас время.
В ходе обучения вы будете выполнять домашние задания. Каждое из них посвящено одному из компонентов вашего выпускного проекта.
После выполнения всех домашних заданий вы получите готовый выпускной проект.
Оптимальная нагрузка
Возможность совмещать учебу с работой
Портфолио
Индивидуальная разработка итоговой проектной работы
Перспективы
Получите знания, которые помогут повысить вашу востребованность и доход
Партнеры
Многие студенты еще во время прохождения первой части программы находят или меняют работу, а к концу обучения могут претендовать на повышение в должности.
- Получите помощь с оформлением резюме, портфолио и сопроводительного письма
- Разместите свое резюме в базе OTUS и сможете получать приглашения на собеседования от партнеров
Формат обучения
Интерактивные вебинары
2 занятия по 2 ак.часа в неделю. Доступ к записям и материалам остается навсегда
Обратная связь
Домашние задания с поддержкой и обратной связью наших преподавателей помогут освоить изучаемые технологии
Активное комьюнити
Чат в Telegram для общения преподавателей и студентов
Программа
Основные концепции системного дизайна
Тема 1: Основы системного дизайна
Тема 2: Требования и анализ
Тема 3: Шаблоны проектирования (Design Patterns)
Масштабирование и производительность
Тема 1: Масштабирование систем
Тема 2: Высокая доступность (High Availability) и отказоустойчивость
Тема 3: Производительность и оптимизация
Сетевые технологии и взаимодействие компонентов
Тема 1: Сетевые протоколы и взаимодействие
Тема 2: Работа с API и микросервисами
Тема 3: Системы сообщений и очередей
Хранение данных и работа с базами данных
Тема 1: Выбор и проектирование баз данных
Тема 2: Кэширование и хранение данных
Безопасность и управление доступом
Тема 1: Безопасность систем
Тема 2: Управление доступом и секретами
DevOps и CI/CD
Тема 1: Инфраструктура как код (IaC)
Тема 2: CI/CD и автоматизация
Кейсы и практические задания
Тема 1: Обзор типов вопросов на интервью по системному дизайну
Тема 2: Разбор популярных кейсов на интервью
Тема 3: Архитектура высоконагруженных систем
Тема 4: Подготовка к системным интервью
Тема 5: Проектирование систем хранения данных
Тема 6: Сетевые протоколы и их применение на практике
Тема 7: Безопасность и надежность систем
Тема 8: Работа с инфраструктурой и DevOps
Тема 9: Подготовка к системным интервью в топовых компаниях
Проектная работа
Тема 1: Выбор темы и организация проектной работы
Тема 2: Консультация по проектам и домашним заданиям
Тема 3: Защита проектных работ и подведение итогов курса
Также вы можете получить полную программу, чтобы убедиться, что обучение вам подходит
Выпускной проект
Каждый семестр завершается финальным проектом, который предстоит защитить перед преподавателями и командой. Вам будет, что обсудить на собеседовании!
В качестве проектной работы вам предстоит с нуля реализовать сложную систему: проектирование, выбор технологий, документация.
Вы можете выбрать одну из предложенных преподавателем тем или реализовать свою идею.
Преподаватель
Кирилл Дикалин
Альфа-банк
Руководитель направления аналитической инфраструктуры
Руководитель направления аналитической инфраструктуры в Альфа-Банке Автор и код-ревьювер курса по Data Engineering Имеет более пяти лет опыта в области дата-инжиниринга. Эксперт в создании высоконагруженных и распределённых систем, а также в развёртывании облачных инфраструктур Выпускник МГТУ им. Н.Э. Баумана по специальности "Прикладная информатика"
Преподает на курсах
- Data Engineer
- Data Warehouse Analyst
- ClickHouse для инженеров и архитекторов БД
- Highload Architect
- System Design
Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания
Корпоративное обучение для ваших сотрудников
- Курсы OTUS верифицированы крупными игроками ИТ-рынка и предлагают инструменты и практики, актуальные на данный момент
- Студенты работают в группах, могут получить консультации не только преподавателей, но и профессионального сообщества
- OTUS проверяет знания студентов перед стартом обучения и после его завершения
- Простой и удобный личный кабинет компании, в котором можно видеть статистику по обучению сотрудников
- Сертификат нашего выпускника за 5 лет стал гарантом качества знаний в обществе
- OTUS создал в IT более 120 курсов по 7 направлениям, линейка которых расширяется по 40-50 курсов в год
Сертификат о прохождении курса
OTUS осуществляет лицензированную образовательную деятельность. В конце обучения вы получите сертификат OTUS о прохождении курса и удостоверение о повышении квалификации.
После обучения вы:
- Получите материалы по пройденным занятиям (видеозаписи курса и дoполнительные материалы)
- Создадите свой проект, который поможет при прохождении собеседований
- Повысите свою ценность и конкурентоспособность как IT-специалист
- Получите сертификат об окончании курса