
В подборке представлены 4 курса, в учебных планах которых заявлено изучение CMake. Сразу уточним: полноценных отдельных курсов по этой системе сборки на российском рынке почти не существует, обычно её преподают как часть более крупных программ по C++.
Показано 4 программы




| Программа | Школа | Срок | Стоимость |
|---|---|---|---|
| Разработчик на C++ | Нетология | 12 месяцев | 122 000 ₽ вместо 246 407 ₽ |
| C++ Developer | OTUS | 10 месяцев | 150 000 ₽ |
| C++ для робототехников | Skillbox | 1 месяц | 30 294 ₽ вместо 55 080 ₽ |
| C++ Developer. Basic | OTUS | 5 месяцев | 70 000 ₽ |
Стоимость обучения варьируется от 30 294 ₽ до 150 000 ₽, а всего в выборку вошли 3 школы. Курсы, где нет практики и студент не собирает собственный проект с внешними зависимостями, исключаются. Ниже представлены карточки программ с указанием цен и длительности, а после них — разбор: что такое CMake, чему учат в модуле сборки, кому эта тема нужна и как освоить инструмент бесплатно, если полная платная программа не требуется.
CMake не занимается компиляцией кода. Его задача — подготовить файлы для сборщика, будь то Make, Ninja, Visual Studio или Xcode. Достаточно один раз описать проект в CMakeLists.txt, и затем этот же конфиг будет работать и на ноутбуке коллеги под macOS, и на сборочном агенте под Linux.
Простейший проект помещается в четыре строки: указание версии CMake, имя проекта, команда add_executable со списком исходников. Но дальше начинается основная работа: подключение библиотек, настройка флагов компилятора, добавление условной логики для разных платформ.
Именно поэтому инструмент и изучают. Без него кроссплатформенная сборка превращается в набор несовместимых скриптов под GCC, Clang и MSVC, которые перестают работать при первом переносе на другую машину. Согласно опросу JetBrains Developer Ecosystem 2025, в котором участвовали около 900 C-разработчиков из 23 стран, CMake применяют 56% респондентов, Makefiles занимают второе место с 37%, а проекты Visual Studio — 29%.
Существенный нюанс: отдельных онлайн-курсов, полностью посвящённых CMake, на российском рынке почти нет. Обычно инструмент разбирают в рамках больших программ по C++, выделяя на него модуль в несколько занятий. Поэтому запрос «курсы по CMake» на практике выводит на программы C++ разработчика, а не на отдельный интенсив. Так устроены не только наши подборки, но и каталоги других агрегаторов: все они показывают по этому запросу курсы C++. Мы предпочитаем говорить об этом открыто, а не делать вид, что предлагаем двухнедельный интенсив по системе сборки.
Если взять статью 2014 года и попробовать повторить из неё пример, скорее всего, получится рабочий, но трудно поддерживаемый скрипт. Старый стиль базировался на глобальных переменных: изменишь CMAKE_CXX_FLAGS — и флаг распространяется на все цели проекта, включая те, где он не нужен.
Modern CMake — подход, используемый в версиях 3.x, — оперирует целями и их свойствами. Библиотека сама объявляет, какие заголовки и флаги требуются тем, кто её подключает. Команда target_link_libraries автоматически подтягивает пути к инклюдам, определения препроцессора и зависимости следующего уровня.
Разница становится заметна на проекте из десятка модулей. В старом стиле любое изменение требует держать в голове весь контекст. В целеориентированном — каждый модуль самодостаточен, и новому члену команды достаточно вечера, чтобы разобраться в сборке.
Отдельно стоит выяснить, рассказывают ли на курсе про CMakePresets.json. Этот файл появился в версии 3.19 и решил давнюю проблему: раньше набор флагов конфигурации надо было передавать длинной командной строкой и хранить в заметках или README. Теперь пресеты лежат в репозитории, и для запуска сборки в нужной конфигурации достаточно указать одно имя. Среды разработки подхватывают их автоматически.
Именно этот критерий мы считаем ключевым при оценке программы. Курс, где используют include_directories вместо target_include_directories, обучает практикам, которые индустрия оставила более десяти лет назад.
Модуль по системе сборки почти всегда идёт после блока о компиляции и линковке. Без понимания разницы между объектным и исполняемым файлом эти команды выглядят как набор заклинаний.
Несмотря на различия в углублённости, все программы охватывают схожий фундаментальный набор тем.
Практическое наполнение зависит от специализации курса. Если программа ориентирована на разработку интерфейсов, тогда рассматривается сборка проектов на Qt. В курсах по компьютерному зрению обычно подключают OpenCV. Робототехнические направления уделяют внимание работе с аппаратурой и кросс-компиляции под конкретную плату.
Особое направление — организация сборки в CI. Здесь CMake взаимодействует с Git, контейнерами и Linux, и именно на этом этапе тема выходит за пределы чистого программирования. Значительная часть материала пересекается с обязанностями DevOps-инженера.
Инструмент не приносит пользы сам по себе. До того как открыть первый конфигурационный файл, необходимо разобраться в процессе сборки программы: как препроцессор обрабатывает заголовочные файлы, чем статическая библиотека отличается от динамической, и по какой причине компоновщик сообщает о неразрешённых символах. Без такой базы команды запоминаются механически и быстро забываются.
Наибольшую пользу тема приносит следующим категориям специалистов:
Новичку, который пишет первую программу в одном файле, CMake пока не требуется — среда разработки справится с таким проектом самостоятельно. Потребность появляется, когда файлов становится больше десяти, подключается первая сторонняя библиотека, или код нужно передать другому человеку. Обычно это происходит на втором или третьем месяце интенсивного изучения языка, и в программах по программированию модуль сборки располагается примерно в этот период.
В текущем каталоге представлено 4 курса, в программе которых заявлен CMake. Стоимость варьируется от 30 294 ₽ до 150 000 ₽, а медианная цена составляет около 96 000 ₽.
Подобная разница объясняется тем, что оплачивается не отдельный модуль по сборке, а образовательная программа целиком. Минимальная цена характерна для краткосрочных прикладных курсов продолжительностью три месяца с узкой специализацией. Максимальная — для годовых треков C++ разработчика, которые включают проверку домашних заданий, дипломный проект и помощь в трудоустройстве.
Прежде чем приобретать курс, стоит внимательно изучить его программу: поищите упоминания «сборка», «CMake» или «зависимости». Если такой модуль присутствует, обратите внимание на количество занятий и его расположение относительно итогового проекта. Когда модуль стоит непосредственно перед дипломом, вероятно, он носит обзорный характер. Дополнительно можно посетить бесплатное вводное занятие и напрямую спросить преподавателя, какая версия CMake рассматривается и используется ли работа с целями.
Определять стоимость отдельного модуля бессмысленно, и мы не претендуем на такую оценку. Главный вопрос: нужна ли вам вся программа целиком. Если да, то актуальный блок по сборке служит приятным дополнением и показателем того, что авторы следят за современными практиками. Если же вам необходим только CMake, рациональнее обратиться к бесплатным материалам, представленным ниже.
Если вы уже работаете с C++ и вам требуется только система сборки, платный курс — не единственный вариант. Тема хорошо обеспечена открытыми материалами, и многие разработчики осваивают её самостоятельно за пару вечеров.
Логично начать с официального руководства на cmake.org. Оно состоит из двенадцати шагов — от создания первого исполняемого файла до генерации инсталлятора — и обновляется вместе с релизами. Для новичков это наиболее короткий путь к рабочему результату.
Тем, кто использует Microsoft, будет полезен раздел о проектах CMake в Visual Studio на русском языке. Там описана интеграция со средой и взаимодействие с пакетным менеджером vcpkg.
На образовательных платформах есть открытые курсы, а в вики некоторых технических вузов размещены конспекты университетских практикумов по системам сборки. Эти материалы часто раскрывают тему глубже, чем многие платные модули. Уровень различается, но для первого знакомства этого достаточно.
Из книг разработчики часто упоминают «Professional CMake» Крейга Скотта: он входит в число мейнтейнеров проекта, и книга переиздаётся для каждой новой ветки. Русскоязычные переводы и университетские пособия по системам сборки также доступны в открытом виде.
Тогда зачем платный курс? Ради двух вещей, которых нет в документации: обратной связи от человека, готового посмотреть ваш скрипт и указать на ошибки, и системного контекста. Система сборки редко нужна сама по себе — она используется в связке с архитектурой проекта, тестами и развёртыванием, а это уже уровень целой программы, а не одного инструмента.
Чаще всего путают CMake и Make, хотя различие простое. Make выполняет правила из готового Makefile, а CMake сам создаёт этот Makefile, причём может сгенерировать вместо него файлы для Ninja или проект Visual Studio. Это разные уровни инструментов, а не конкуренты.
Настоящие альтернативы выглядят иначе. Ninja — быстрый исполнитель сборки, почти всегда работающий в паре с CMake как генератором, а не вместо него; в опросе JetBrains его отметили 12% респондентов. Meson предлагает более чистый синтаксис и популярен в опенсорсе вокруг GNOME, но набрал лишь 4%. Bazel силён в огромных монорепозиториях, где важна воспроизводимость и распределённое кеширование, однако порог входа у него заметно выше.
Стоит помнить и об инструментах конкретных платформ. В мире Qt долгое время использовался собственный qmake, но с шестой версии Qt Company перевела рекомендуемый путь сборки на CMake. Это хороший индикатор того, куда движется индустрия.
Когда встаёт вопрос, с чего начать обучение, выбор очевиден. Большинство крупных библиотек C++ собираются именно с помощью CMake, все распространённые IDE его поддерживают, и в вакансиях он упоминается чаще всего. Поэтому, освоив CMake, легко перейти на Meson, но обратный путь потребует больше усилий.
