Нужно владеть основами программирования, понимать работу компьютерных сетей, знать базовые алгоритмы и структуры данных, а также иметь с ними примитивный опыт работы
разработчик
системный аналитик
архитектор
продакт менеджер
QA-инженер
Middle — минимальный грейд для комфортного обучения
Знакомая ситуация?
/1
Боюсь секцию по System Design — даже у senior нет таких задач, а на собеседованиях спрашивают
/2
Не умею проектировать большие системы с нуля — что и зачем нужно применять для той или иной проблемы
/3
Не хватает насмотренности и практики в проектировании — работал(-а) только в одной компании
/4
Хочу расти в сторону архитектуры — поменять специализацию или работу, поднять грейд или вырасти в зарплате
/5
Нужно улучшать сервис под нагрузками — с чего начать и как сделать правильно
/6
Чтение книг по System Design только все усложнило — знания хаотичны, в голове нет структуры
вопросов по system design закроешь На этом обучении
95%
ты закроешь На этом обучении 95% вопросов по system design
Подготовишься к System Design интервью — поймешь из чего оно состоит, узнаешь его особенности и научишься уверенно его проходить на практике
Узнаешь best practices по проектированию больших отказоустойчивых систем, как в Google, Яндекс или Озон
Познакомишься с огромным количеством паттернов и приемов проектирования высоконагруженных систем
Узнаешь, как работают репликация, шардирование, транзакции и многое другое
Научишься устанавливать требования для высоконагруженных систем, считать нагрузку и ресурсы, проектировать API, модель данных и всю систему в целом
Увеличишь шансы на повышение грейда, зарплаты и повысишь свою ценность, как специалиста
Систематизированно и без воды изучаем все, что нужно для работы и собеседований
Свойства информационных систем
Надежность
Масштабируемость
Производительность
Удобство сопровождения
Безопасность
Критерии информационных систем
Data / compute intensive системы
Read / write intensive системы
Low latency системы
High throughput системы
Балансировка нагрузки
клиентская / серверная
DNS и geoDNS балансировка
L4 / L7 балансировка
алгоритмы балансировки - random / round robin / weighted round robin / least connections / least response time / least bandwidth / sticky sessions / power of two choises
Проксирование
forward / reverse
Функциональные и нефункциональные требования
Расчет нагрузки
______________________________
Результат:
знаешь основные критерии и свойства информационных систем, без которых невозможно спроектировать большую отказоустойчивую систему.
разбираешься в балансировке нагрузки и проксировании, а также умеешь устанавливать требования к системе и считать нагрузку.
Бонус:
вместе установим функциональные и нефункциональные требования для одного популярного приложения, а также оценим будущую нагрузку на него.
Домашнее задание:
установить функциональные и нефункциональные требования, а также рассчитать нагрузку для будущей социальной сети
с одним ведущим узлом / с несколькими ведущими узлами / без ведущих узлов
логическая (SBR / RBR) / физическая
hot standby / warm standby
фильтрация репликаций
split brain
failover
Партиционирование
Вертикальное / горизонтальное
Range based / key based / directory based
Шардирование
перебалансировка (virtual buckets)
resharding (consistent / randezvous hashing)
роутинг (client / proxy / coordinator routing)
Бэкапы
CAP теорема
PACELC теорема
CDN (Content Delivery Network)
CDC (Change Data Capture)
______________________________
Результат:
понимаешь, как хранить данные распределенно на нескольких хостах, а также умеешь считать, сколько потребуется хостов для хранения этих данных.
Бонус:
вместе выберем стратегии репликации и шардирования базы данных одного из популярных приложений, а также посчитаем сколько потребуется хостов для хранения данных.
Домашнее задание:
выбрать стратегии репликации и шардирования базы данных для будущей социальной сети, а также посчитать сколько потребуется хостов для хранения данных
Результат: применяешь все знания с уроков на практике, умеешь строить большие высоконагруженные системы и понимаешь, как спроектированы популярные сервисы, которыми ты пользуешься каждый день.
Результат: применяешь все знания с уроков на практике, умеешь строить большие высоконагруженные системы и понимаешь, как спроектированы популярные сервисы, которыми ты пользуешься каждый день.
Результат: применяешь все знания с уроков на практике, умеешь строить большие высоконагруженные системы и понимаешь, как спроектированы популярные сервисы, которыми ты пользуешься каждый день.
Здесь собраны знания из личного опыта, книг, статей, конференций и реальных собеседований Все темы можно найти по кусочкам, но это долго и неэффективно. Мы систематизировали весь контент в одном месте на понятном языке и с практикой
Сделали качественные записи вместо online-уроков, чтобы можно было учиться в любое время. Вся информация актуальна на текущий год
Уроки длятся по 1.5−2 часа
Записанные уроки студийного качества
Занятия открываются по вторникам и четвергам в 10:00 по МСК
Будешь решать тесты для закрепления материала и выполнять небольшие ДЗ, из которых в конце вырастет соцсеть для путешественников. Ты спроектируешь ее с полного нуля за месяц учебы
Домашние задания и итоговый проект
Тесты обязательны. Они открываются после каждого модуля, а их прохождение занимает <5 минут
ДЗ и итоговый проект необязательны. Без их сдачи можно изучать все лекции и закончить обучение
На общих zoom-созвонах можно задавать любые вопросы по урокам, домашкам, собеседованиям по System Design и проектированию систем на работе
4 Q&A-сессии в свободное от работы и учебы время
Q&A-сессии проходят по будням в 19:00 по МСК. Запись остается
Посмеяться, обсудить проблему или задать вопрос — на связи целое комьюнити разработчиков
Поддерживающий чат с участниками курса
Будешь совместно с другими учениками курса делать код-ревью друг другу и дополнительно закрепишь полученные знания о высоконагруженных системах
Code review сокурсников
Проектирование приложения на интервью или в компании — это не единоличная работа, поэтому тренировка с напарником полностью моделирует ситуацию из жизни и готовит тебя к этой задаче.
Вместе с напарником ты будешь совместно практиковаться в построении различных частей системы
Тренировки с напарником
Выбирается один участник из группы. Остальные вместе с преподавателем дают обратную связь и учатся на чужом опыте
Групповое mock-собеседование для подготовки к System Design-интервью
Разбиваемся на группы. Каждая проектирует одну и ту же систему, а потом защищает ее перед сокурсниками и преподавателем
Групповое проектирование системы для практики на работе
Получишь список бесплатных книг, видео-уроков и статей, которые позволят тебе изучить System Design еще глубже
Дополнительные материалы
Получишь чек-листы и методички по установке нефункциональных требований, оценке нагрузки и расчету ресурсов для будущей системы, чтобы не забыть важные детали на работе или во время интервью
Чек-листы и методички
После прохождения курса получишь именной сертификат, который будет служить подтверждением твоих навыков
Владимир, мне кажется, я не смогу научиться System Design за 4 недели…
Владимир
Сергей, если ты знаешь основы программирования, понимаешь как примерно работают компьютерные сети и у тебя есть база в алгоритмах, то все будет хорошо, можешь не переживать! На курсе мы будем идти поэтапно от простого к сложному, от теории к практике + ты сможешь задавать любые вопросы, на которые получишь ответ
Виталий
Это сложно для меня. Мне кажется, я ещё не дорос...
Владимир
Все новое и неизведанное кажется для нас страшным и сложным, я тебя понимаю) Если ты соответствуешь всем требованиям специалиста, которому подходит курс, то справишься со всеми трудностями. Во-первых, я всегда на связи, во-вторых, у тебя будет напарник, с которым вы сможете поддерживать друг друга, да и в-третьих, весь курс объясняется простым языком. Отзывы соврать не дадут)
Евгений
Я не смогу применять знания на практике
Владимир
Весь курс наполнен практикоориентированной теорией, без которой невозможно построить высоконагруженную и отказоустойчивую систему.
Я поработал уже в 5 ведущих IT-компаниях России, успешно прошел mock-собеседования с сотрудниками из Google и Microsoft по System Design на платформе pramp.com, а мои ученики проходят System Design интервью и устраиваются в ведущие IT-компании.
За моими плечами реальный практический опыт, которым я с радостью с тобой поделюсь!
Для комфортного обучения на курсе нужно иметь уровень не ниже Middle.
Чтобы выжать из курса максимум, необходимо владеть основами программирования, понимать, как работают компьютерные сети, знать базовые алгоритмы и структуры данных, а также иметь с ними примитивный опыт работы.
Курс не рассчитан на Junior’ов — учиться можно, но часть информации усвоить не получится.
По статистике последних потоков на курсе учатся:
junior — 6%
middle — 42%
senior — 36%
lead — 16%
Нет, но знание основ программирования обязательны для прохождения курса
Лекции можно смотреть с любого устройства. Никаких специальных программ устанавливать не нужно — потребуются только браузер и Telegram.
Около 50-ти
Курс оплачивается на сайте через платежный виджет GetCourse. Чек об оплате высылать не нужно, доступ в личный кабинет ученика приходит сразу после оплаты
Да, при оформлении покупки тебе будет доступна такая возможность. Более того, оплатить можно иностранной валютой
Да, у нас есть возможность произвести оплату обучения в качестве юридического лица.
Чтобы сделать это, пожалуйста, свяжитесь с нами через форму заявки, мы свяжемся с вами в ближайшее время.
Да, ты сможешь вернуть всю стоимость онлайн-курса в течение первой недели обучения, если останешься недоволен качеством или поймешь, что курс тебе не подходит.
Возврат придет за вычетом комиссии платежной системы
Мы находимся в процессе получения государственной лицензии, поэтому пока не получится получить налоговый вычет. Зато можно получить кешбэк на образовательные услуги, если он подключен у тебя в банке
На курсе у тебя будет 2 урока в неделю примерно по 1.5−2 часа — они будут открываться на платформе во вторник и четверг. Дополнительно придется выделить несколько часов в неделю на домашние задания
Обучение на курсе удобно совмещать с работой, потому что все лекции уже записаны — их можно смотреть в любое время.
Для вопросов будем устраивать zoom-созвоны 1 раз в неделю. Они длятся не более 1 часа.
В среднем в неделю нужно будет тратить около 8−10 часов на обучение. Точное время зависит от твоего уровня
Жестких дедлайнов нет — если ты не успел (-а) сдать домашнюю работу вовремя, то всегда сможешь сдать ее позже
Если курс закончится, и ты не успеешь сдать ДЗ, то у тебя будет дополнительный месяц на проверку
Да, курс ведет только один преподаватель. Он же проверяет все домашние работы, проводит zoom-созвоны и отвечает на вопросы в чате курса. У нас нет кураторов и помощников – только прямое обучение с преподавателем
Остались вопросы?
Если у тебя срочный вопрос, можешь написать нам в Telegram-бот
Если ты готов немного подождать, оставляй вопрос на сайте — мы свяжемся с тобой в ближайшее время