Основы Linux
Командная строка с нуля: файлы, права, процессы, сеть, bash-скрипты и SSH — в терминале учебной Ubuntu.
Курс по подписке
C++ Advanced: от основ языка к коду, который пишут в реальных проектах
Получить доступ к курсу
Курс по подписке · Обучение в своём темпе · Без звонков и консультаций
О курсе
Курс для тех, кто уже прошёл «Основы программирования на C++» (или уверенно знает переменные, циклы, std::vector, функции, struct, ссылки и целые типы фиксированной ширины) и хочет писать настоящий код на C++: для встраиваемых систем, робототехники, сетевых сервисов или высоконагруженных приложений.
Вы разберётесь, как работают память и указатели, как классы управляют ресурсами (RAII), что такое копирование и перемещение, научитесь писать шаблоны, пользоваться контейнерами и алгоритмами STL, обрабатывать ошибки, разбирать и формировать бинарные данные, делить программу на заголовки и единицы трансляции, запускать потоки и синхронизировать их, а также искать ошибки и узкие места производительности. Завершает курс итоговый проект — библиотека кодирования пакетов из нескольких файлов.
Аудитория
Прошли основы C++
Перейдёте к памяти и указателям, RAII, копированию и перемещению, шаблонам, контейнерам и алгоритмам STL.
Пишете для embedded или робототехники
Будете разбирать и формировать бинарные данные, работать с битами и C API и соберёте библиотеку пакетного протокола.
Сетевые и высоконагруженные сервисы
Будете запускать и синхронизировать потоки, искать ошибки и узкие места производительности.
Курс опирается на знания, отмеченные ниже как обязательные.
Нужно знать
Если этих знаний ещё нет — пройдите курсы по порядку:
Формат
Каждая тема — это теория с примерами, автоматически проверяемые задачи (написать, исправить ошибку, дописать модуль к готовому коду, ускорить медленное решение) и тест. Весь код вы пишете и запускаете в браузерном редакторе LMS; компилятор — g++ со стандартом C++17.
35 уроков с примерами
55+ заданий с автоматической проверкой
18 тестов для самопроверки
Онлайн на my.prog.academy, без установки программ
Платформа Prog Academy
Курс проходит на платформе Prog Academy — вместе с ним вы получаете AI-помощника и инструменты для поиска первой работы в IT.
Обучение
Вы учитесь, выполняя задания: каждую новую тему сразу применяете на практике, а не только читаете теорию. Задания проверяются автоматически, прямо в браузере.
Вы не остаётесь один на один с материалом
Что-то непонятно или застряли на задании — спросите прямо в уроке. Помощник объяснит тему проще, ответит на вопросы, поможет разобраться в условии задания и подскажет следующий шаг, найдёт нужное в материалах курса. Он знает, какой урок вы проходите, и помнит разговор.
Карьера
Успешно прошли курс — получаете сертификат и в один клик добавляете его в профиль LinkedIn.
Резюме на английском, украинском или русском — прямо на платформе. Ваши курсы и сертификаты добавляются в него в пару кликов.
Junior-вакансии и стажировки в одном месте — с подборкой под курсы, которые вы проходите.
Вся платформа — в одном аккаунте
Программа
18 модулей, 55+ практических заданий с автоматической проверкой и 18 тестов. Откройте модуль, чтобы увидеть все темы.
Как g++ превращает текст в программу, что такое неопределённое поведение, тернарный оператор, do/while, шестнадцатеричные литералы, printf/scanf и потоки с iomanip.
Дополнительный код, целочисленное продвижение и обычные арифметические преобразования, ловушки знаковых и беззнаковых чисел, сдвиги, маски, битовые поля в 32-битном регистре, abs/llabs/fabs и static_cast.
Где лежат данные программы (стек, куча, статические данные, код), sizeof/alignof и выравнивание полей структур, инициализация значением, область видимости и время жизни, висячие ссылки, статические локальные переменные, состояние модуля в файловых static и анонимных пространствах имён.
Сырые массивы и их преобразование в указатель, операции & и *, nullptr, арифметика и разность указателей, const T* против T* const, API «указатель + количество», выходные параметры через указатель, указатели на структуры и ->, массивы структур, указатель на указатель.
Массивы char и завершающий '\0', функции cstring, почему strcpy/strcat/sprintf опасны, snprintf и strncpy, надёжный разбор чисел через strtol/errno и sscanf, переход между std::string и C-строками, extern "C" и API в стиле (буфер, размер).
Перегрузка и как компилятор выбирает функцию, аргументы по умолчанию, inline, рекурсия, возврат структур через return {...}, указатели на функции, типы колбэков через using, колбэки с контекстом void* и таблицы диспетчеризации.
Разделение на .h и .cpp, include guards и #pragma once, объявление и определение, правило одного определения (ODR), extern, static и анонимное пространство имён, inline-функции и переменные, пространства имён, ошибки компилятора и линкера, статические и динамические библиотеки (-I, -L, -l, rpath) и основы CMake.
class и struct, private/public и инварианты, конструкторы и список инициализации, const-методы, ссылки-члены и explicit, статические члены, деструкторы, порядок создания и уничтожения объектов и RAII.
Конструктор копирования и присваивание, поверхностная и глубокая копия, правило нуля/трех/пяти, перемещение и std::move, состояние после перемещения, RVO, перегрузка операторов и дружественные функции на примере числа с фиксированной запятой.
new/delete и new[]/delete[], утечки, двойное освобождение и висячие указатели; std::unique_ptr и передача владения, shared_ptr со счетчиком ссылок, weak_ptr для циклов, собственные deleter-ы для C API и пулы объектов без кучи для встроенных систем.
Базовые и производные классы, virtual/override/final, чисто виртуальные интерфейсы, зачем виртуальный деструктор, срезка объектов, полиморфные контейнеры, внедрение зависимостей через интерфейс и фейки для детерминированных тестов, композиция вместо наследования.
Шаблоны функций и классов, вывод аргументов, параметры-значения template<typename T, size_t N>, std::array, обобщённый RingBuffer<T, N>, специализация, constexpr-функции и таблицы на этапе компиляции, static_assert, if constexpr, type traits и обобщённые алгоритмы над итераторами.
vector глубже (capacity, reserve, insert/erase, инвалидация итераторов, data()), deque, map/unordered_map/set и ловушки operator[], pair и tuple, структурные привязки, std::optional, поиск в std::string, итераторы, алгоритмы <algorithm> и <numeric>, лямбды с захватом и std::function.
Коды ошибок и исключения, throw/try/catch, стандартная иерархия исключений и собственные классы, noexcept, раскрутка стека и RAII, гарантии безопасности исключений, типы-результаты для кода без исключений.
Байтовые буферы, порядок байтов, сборка и разбор чисел сдвигами, почему не reinterpret_cast и когда memcpy, знаковые и фиксированные числа из байтов, сериализация записей, TLV с проверкой границ, CRC-16, кадры с синхробайтом и ресинхронизация, файлы в бинарном режиме.
std::thread, join и detach, передача аргументов и std::ref, гонки данных как неопределённое поведение, std::mutex и lock_guard/unique_lock, взаимная блокировка, std::atomic, condition_variable и очередь производитель-потребитель, std::async и std::future, пул потоков и детерминированный вывод.
Сложность алгоритмов на практике, выбор контейнера, локальность кеша, лишние копии, что делает оптимизатор, ловушки бенчмарков; предупреждения компилятора, assert, AddressSanitizer и UBSan, gdb и профилировщики — сначала найти горячую точку, потом оптимизировать.
Многофайловый проект в три шага: кодирование кадров с CRC-16, потоковый парсер за интерфейсом FrameSink и прикладной уровень домашней сети датчиков со статистикой и отчетом. Архитектура слоями, тестирование с фейками, политика обработки ошибок и итоговый тест по всему курсу.
Стек
Код пишете и запускаете в браузере на платформе — устанавливать ничего не нужно.
Доступ
Короткая форма на этой странице — без звонков и консультаций.
После формы перейдите в Telegram-бот Prog Academy — он пришлёт дальнейшие инструкции по доступу.
Уроки, практика и тесты — на my.prog.academy, в удобном для вас темпе.
Контакт
Оставьте контакты — пришлём детали доступа к курсу «C++ Advanced». Без звонков и консультаций.
Командная строка с нуля: файлы, права, процессы, сеть, bash-скрипты и SSH — в терминале учебной Ubuntu.
Массивы, срезы, broadcasting и матрицы — числовая основа, на которой стоят pandas, scikit-learn и PyTorch.
Научитесь писать программы, которые не простаивают, пока ждут сеть, диск или другой сервис
Оставьте вопрос — подскажем, подходит ли вам курс и с чего лучше начать.