Скидки 10% на курсы из спецкаталога
Скидки 10%
Действуют до 14 июня. Дальше скидка 5%
Действуют до 14 июня. Дальше скидка 5%
Перейти
Системное программирование

Системное программирование

От железа и ОС — к производительному коду

В июле

3 месяца

Онлайн

Для кого этот курс?

  • Разработчики на системных языках (C, С++, Rust), желающие расширить свои заниня
  • Backend-разработчики, которые планируют или работают с высокопроизводительными системами
  • Архитекторы и тимлиды, которым необзходимо проектировать производительные компоненты и проводить разбор инцидентов/узких мест

Необходимые знания

  • Опыт программирования на C/C++
  • Знания структур данных

Чему научится студент на курсе?

  • Понимать, как код исполняется от железа к ОС: CPU/регистры, иерархия памяти и кэши, стек/куча, виртуальная память (MMU/TLB)
  • Разбираться, как устроен исполняемый файл и загрузка: статическая/динамическая линковка, анатомия ELF
  • Понимать устройство ядра как менеджера ресурсов: системные вызовы, прерывания, page fault, copy-on-write, процессы/потоки и планирование
  • Писать системный код на уровне API ОС: управление процессами, низкоуровневый I/O, управление памятью (brk/sbrk, mmap), многопоточность и синхронизация (pthread, mutex, semaphore, condition variables)
  • Работать с IPC: сигналы, пайпы/FIFO, shared memory (shm_open + mmap) и принципы корректной синхронизации между процессами
  • Отлаживать и профилировать системный/многопоточный код: strace, gdb, valgrind, AddressSanitizer/ThreadSanitizer

Почему стоит освоить?

 
Курс позволит закрыть разрыв между написанием кода и пониманием почему он не работает или тормозит на уровне ОС и железа. Часто эти знания критично необходимы для собеседований и первых задач в системной/инфраструктурной разработке.
 
Вы сможете на практике разобраться как устроена ОС: процессы/потоки, память, IPC. Также, в программу курса включен блок про отладку и профилирование.

Процесс обучения

Занятия в OTUS — это не заранее отснятый материал. Вебинары проходят в режиме реального времени, где преподаватели-практики рассказывают об актуальных кейсах и инструментах, которые нужны им в работе сейчас. Вы сможете активно участвовать голосом, практиковаться, задавать вопросы и получать обратную связь. Такой формат дает реальный результат. 

А если вы не смогли посетить занятие в реальном времени, то сможете посмотреть его в записи и задать вопрос преподавателю в закрытом чате.

Портфолио

Индивидуальная разработка итоговой проектной работы

Обучайтесь у экспертов


Программу ведут действующие специалисты

Перспективы

 

Получите знания, которые помогут повысить вашу востребованность и доход

Партнеры

Многие студенты еще во время прохождения первой части программы находят или меняют работу, а к концу обучения могут претендовать на повышение в должности.

  • Карьерные мероприятия в сообществе
    Публичный разбор резюме
    Публичное прохождение собеседования и воркшопы
  • Разместите свое резюме в базе OTUS и сможете получать приглашения на собеседования от партнеров
* Информация в этом разделе не предназначена для корпоративного обучения
Формат обучения

Интерактивные вебинары


2 онлайн-трансляции по 2 ак.часа в неделю. Доступ к записям и материалам остается навсегда

Практика

 

Домашние задания + проектная работа, для усиления вашего портфолио и компетенций

Активное комьюнити

Живое общение с преподавателями на вебинарах, переписки в чате и развёрнутые ответы при проверке ДЗ

Программа

Аппаратный фундамент и управление памятью

Изучение что такое "железо", физические ограничения и аппаратные кэши. Основы для понимания ОС.

Тема 1: Архитектура CPU и физическая память

Тема 2: Иерархия памяти и кэширование данных

Тема 3: Стек и Куча на уровне процессора

Тема 4: Аппаратная виртуализация памяти (MMU и TLB)

Тема 5: Линковка и Анатомия бинарника (практика)

Операционная система как менеджер

Абстракции ядра, изоляция программ и управление аппаратной магией.

Тема 1: Пространство ядра и Системные вызовы

Тема 2: Как ОС управляет памятью (Page Faults)

Тема 3: Концепция Процесса и шедулинг

Тема 4: Концепция Потока (Thread)

Тема 5: Трассировка системных вызовов (практика)

Системное программирование и IPC

Написание кода, управляющий процессами, потоками и памятью через API операционной системы.

Тема 1: Управление процессами в коде

Тема 2: Низкоуровневый ввод-вывод (I/O)

Тема 3: Системное управление памятью

Тема 4: Многопоточность на практике

Тема 5: Конкурентность и Синхронизация

Тема 6: Проблемы синхронизации и Spin-locks

Тема 7: IPC: Сигналы ОС

Тема 8: IPC: Пайпы (Pipes)

Тема 9: IPC: Разделяемая память (Shared Memory)

Тема 10: Отладка и профилирование системного кода (практика)

Проектная работа

Тема 1: Консультация по проектам и домашним заданиям

Тема 2: Защита проектных работ

Тема 3: Подведение итогов курса

Также вы можете получить полную программу, чтобы убедиться, что обучение вам подходит

Выпускной проект

 
Тема проектной работы: "Микро-Docker: разработка собственной примитивной системы контейнеризации"
 
Студент реализует минимальную систему контейнеризации, которая запускает процесс в изолированном окружении и управляет его жизненным циклом. В результате проектной работы должен быть работающий прототип микро-контейнера и краткая документация (архитектура, ограничения, инструкция запуска).

Преподаватель

Руководитель курса

Артём Токарев

Lead Rust Developer

3 года в Otus

Опыт и достижения: - Проектирует конкурентные структуры данных, оптимизирует производительность, внедряет метрики в data pipeline. Занимался разработкой DRM-системы (server + client). - С нуля построил backend ETL-платформы OneBridge: монолитный web-server с REST API и параллельный графовый pipeline обработки данных; участвует в техсобеседованиях и найме. Экспертиза: Rust/C/C++, Linux, многопоточность (tokio), HTTP/REST (Axum), Docker/CI/CD, SQL/SQLite, профилирование и оптимизация; есть опыт научной разработки (инструменты на Rust для численного моделирования).

Преподает на курсах

  • Rust Developer. Professional
  • Системное программирование

Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания

Этот курс может оплатить ваш работодатель

Обучайтесь за счёт работодателя или разделите оплату 50/50
  • Подробно расскажем об интересующем вас курсе
  • Объясним, как договориться с работодателем
  • Сообщим стоимость обучения и варианты оплаты
  • Ответим на вопросы
  • Предоставим шаблон договора и счёт на оплату

Подтверждение знаний и навыков

OTUS осуществляет лицензированную образовательную деятельность.

Вы получите сертификат о прохождении обучения, а также можете получить удостоверение о повышении квалификации.

После обучения:

  • Удостоверение о повышении квалификации: если вы успешно защитили выпускной проект и готовы предоставить копию документа о высшем или среднем профессиональном образовании

  • Доступ к учебным материалам курса

  • Ваш личный проект, который поможет проходить собеседования

Частые вопросы

Смогу ли я совмещать учебу с работой?
Да. Программа курса рассчитана на студентов, у которых мало времени. Лекции проводим дважды в неделю, домашние задания — не чаще 1 раза в неделю.
Обязательно ли выполнять и защищать выпускной проект?
Для получения сертификата OTUS и УПК (удостоверение повышения квалификации государственного образца) необходимо сдать проект. Кроме того, проект необязательно защищать перед аудиторией, а можно сдать в чате с преподавателем. Для получения УПК также понадобится предъявить документ об образовании.
Обязательно ли выполнять все домашние задания?
Да, если хотите хорошо отточить навыки. На курсе будут практические домашние задания, их выполнение занимает примерно 2-3 часа.
Что, если в середине курса я не смогу продолжать обучение?
Вы можете бесплатно перейти в другую группу. Но только один раз.
Я могу вернуть деньги?
Да, мы можем вернуть деньги за то время курса, которое вы ещё не успели отучиться. Например, если курс длится пять месяцев, а вы отучились один, мы вернём деньги за оставшиеся четыре месяца за вычетом фактически понесенных расходов.
Может ли мой работодатель оплатить курс?
Да. Когда свяжетесь с нашим менеджером, уточните, что оплачивать курс будет ваш работодатель.
Остались вопросы?
Оставляйте заявку и задавайте вопросы менеджеру, команда курса с ним на связи и постарается дать вам исчерпывающую информацию.