C++ для новичков — что за язык программирования и как писать программы: первая часть гайда
Разбираемся, как устроен язык программирования C++, что такое программы и как научиться их писать.
Чтобы начать программировать с нуля, не нужны специальные знания — достаточно базовых навыков работы на компьютере: устанавливать программы, создавать и находить файлы и папки. Это первая статья из серии «Глубокое погружение в C++»: с неё вы начнёте разбираться в языке и сделаете первые шаги к профессии разработчика серверных приложений и игр.
Не пугайтесь большого объёма информации: чем лучше вы разберётесь в базовых принципах, тем проще будет писать код. Для C++ это особенно важно: чтобы программа работала быстро, нужно понимать, что происходит «под капотом» — как расходуется память и как команды выполняются процессором.
Важно: это первый, ознакомительный материал, поэтому информация в нём намеренно упрощена. На старте важнее ухватить общую логику и принципы, а строгие формулировки и тонкости мы разберём в следующих частях серии.
Содержание
- Что такое язык программирования
- Как работают программы
- Для чего нужен C++
- Пишем и запускаем первую программу на C++
- Из чего состоит программа на C++
- Плюсы и минусы C++
Что такое язык программирования
Сам по себе компьютер — это лишь набор электронных компонентов, который не понимает человеческие команды. Поэтому, чтобы он что-то сделал, нужно дать ему программу — чёткий пошаговый список инструкций: откуда взять данные, что с ними сделать и куда после этого отправить результат.
Компьютер понимает только машинный код — специальный язык, который очень сложно читать и писать вручную. Например, вот как выглядит вывод надписи «Hello, World!» на машинном коде (в шестнадцатеричном виде):
BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21Чтобы не писать программы в виде наборов чисел, люди придумали языки программирования — в них те же действия записываются более читаемыми словами и конструкциями, понятными человеку. Одним из первых стал ассемблер — вот как на нём выглядит тот же вывод «Hello, World!»:
mov bx, 0111h
mov cx, 000Dh
mov ah, 0Eh
print: mov al, [bx]
inc bx
int 10h
loop print
int 20h
HW db 'Hello, World!'Всё равно сложно, правда? Поэтому со временем появились высокоуровневые языки — на них программы пишутся гораздо быстрее и читаются почти как обычный текст. Например, весь «Hello, World!» на Python — это одна строка:
print("Hello, World!")Чтобы такой код заработал, его сначала нужно превратить в инструкции, понятные процессору. В одних языках это делают заранее: программу компилируют в машинный код. В других — команды переводятся и выполняются прямо во время запуска с помощью программы-интерпретатора.
Это лишь один способ разделить языки. Есть и другой — по тому, насколько язык близок к железу. Те, что работают почти на уровне машинного кода, называют низкоуровневыми, а понятные человеку — высокоуровневыми.
C++ интересен тем, что это высокоуровневый и при этом компилируемый язык с прямым низкоуровневым доступом к памяти и железу. Благодаря этому на нём достаточно удобно писать — и программы получаются очень быстрыми.
Как работают программы
Практическая любая программа делает три вещи: получает данные, затем что-то с ними делает и в конце выдаёт результат. Эти данные могут прийти от пользователя, загрузиться из файла или быть заранее заданными в коде.
Возьмём для примера браузер. Данные на входе — введённый вами адрес сайта. Браузер по доменному имени определяет нужный сервер, отправляет запрос и получает в ответ HTML-разметку, стили, скрипты и картинки. А на выходе получается страница, которая собрана из этих частей у вас на экране.
Большие программы обычно собирают из подпрограмм — небольших блоков инструкций, каждая со своей задачей. В том же браузере одна подпрограмма принимает адрес, другая находит сервер и отправляет запрос, третья получает ответ, четвёртая рисует страницу. Посмотрите на логику такой подпрограммы.

Полученный результат можно вернуть пользователю, записать в файл или передать другой подпрограмме. Вот ещё один пример — команда в терминале:
magick img.jpg img.png
Эта команда запускает утилиту ImageMagick, которая конвертирует изображение img.jpg в формат PNG и сохраняет результат в файл img.png.
Сегодня слово «подпрограмма» вы услышите нечасто: обычно говорят «функция», «процедура» или «метод». Но по сути это одно и то же — небольшой блок кода со своим именем и конкретной задачей. Вам достаточно написать его один раз, а потом вызывать по имени столько раз, сколько нужно.

Читайте также:
Для чего нужен C++
C++ — мощный и универсальный язык программирования, который разработчики ценят прежде всего за скорость. Он появился ещё в начале 1980-х как развитие языка C: к скорости и «низкоуровневым» возможностям предшественника добавилась работа с классами и объектами, а также множество других полезных инструментов. Главная фишка C++ — сочетание высокой скорости с гибкостью, поэтому его в первую очередь выбирают для задач, где важны производительность и контроль над ресурсами компьютера.
Вот лишь несколько областей, где C++ применяют чаще всего:
- Игры и графика. C++ широко используют в геймдеве, потому что он даёт высокую производительность и полный контроль над ресурсами. На нём создают движки (например, Unreal Engine), ключевые части игр — рендеринг, физику, ИИ — и тяжёлые графические приложения.
- Системное ПО. Операционные системы, браузеры, базы данных, компиляторы — всё, где нужны максимальная скорость и надёжность.
- Встраиваемые системы. Микроконтроллеры, бытовая техника, автомобили, робототехника, умные устройства — везде, где есть ограниченные ресурсы и необходим прямой доступ к железу.
- Высоконагруженные и наукоёмкие задачи. Проекты, где нужна максимальная производительность: финансовые сервисы и торговые платформы, вычисления для науки и инженерии, системы обработки больших данных и ключевые модули библиотек машинного обучения.

Читайте также:
Пишем и запускаем первую программу на C++
По традиции первая программа на любом новом языке выводит на экран надпись «Hello, World!». На C++ она выглядит так:
#include <iostream>
int main()
{
std::cout << "Hello, World!\n";
}Давайте запустим этот код, а затем разберём, как он работает.
Запускаем программу онлайн
Проще всего сделать это через онлайн-сервис, где код на C++ компилируется и запускается прямо в браузере — ничего не нужно устанавливать. Например, зайдите на JDoodle, вставьте код в окно редактора и нажмите Execute.

Запускаем программу на компьютере
Если вы хотите запустить код прямо на компьютере, понадобится установить компилятор. Самый популярный — G++ из набора инструментов GCC, его и будем использовать. Способ установки зависит от операционной системы:
- Windows — проще всего через окружение MSYS2. Установите его, откройте терминал MSYS2 UCRT64 (он ставится вместе с MSYS2) и затем выполните команду pacman -S mingw-w64-ucrt-x86_64-gcc.
- Linux — скорее всего, компилятор уже есть в системе. Если нет, установите его через менеджер пакетов: sudo apt install g++ (Ubuntu/Debian), sudo dnf install gcc-c++ (Fedora), sudo pacman -S gcc (Arch/Manjaro).
- macOS — выполните в терминале xcode-select --install.
После установки введите в терминал команду g++ --version. Если всё прошло успешно, вы увидите название и версию компилятора.

Скриншот: Manjaro Linux / Skillbox Media
После установки компилятора нужно подготовить файл с кодом. Создайте отдельную папку для проекта и в ней — файл hello.cpp. Далее откройте hello.cpp в любом удобном редакторе кода и вставьте код нашей программы.
После этого прямо в редакторе кода откройте терминал и выполните команду:
g++ hello.cpp -o hello
Эта команда скомпилирует код из файла hello.cpp в исполняемый файл с именем hello (в Windows — hello.exe). Если ошибок нет, команда выполнится без сообщений — просто появится новый файл. Теперь запустите программу:
./hello
На скриншоте ниже — запущенная программа в Antigravity IDE.

Теперь, когда программа запускается, разберёмся, как она устроена.

Читайте также:
Из чего состоит программа на C++
Начнём с самой первой строчки:
#include <iostream>Здесь #include — это команда компилятору подключить к программе библиотеку, а <iostream> в угловых скобках — её название.
Переходим к следующей части кода:
int main()
{
...
}Разберём эту строку по частям:
- int — тип данных, которые возвращает функция;
- main — идентификатор, то есть имя этой самой функции;
- круглые скобки () — в них указывают входные параметры функции, однако если параметров нет, скобки оставляют пустыми;
- фигурные скобки { } — внутри находится тело функции, то есть набор команд, которые выполняются при её вызове.
main () — это функция, с которой начинается выполнение любой программы на C++. Её ещё называют точкой входа.
Сами подпрограммы мы разберём подробнее в следующих статьях. Сейчас достаточно знать, что все команды записываются в тело функции.
Настало время понять, как работают команды:
std::cout << "Hello, World!\n";Эта строка тоже состоит из нескольких частей:
- std — пространство имён, к которому относится команда;
- cout — команда вывода;
- << — оператор вывода, он передаёт текст команде cout;
- «Hello, World!» — текст, который нужно вывести;
- \\n — символ переноса строки;
- ; — точка с запятой в конце.
Команда std: cout выводит текст в консоль — в нашем примере это «Hello, World!». Текст обязательно берётся в двойные кавычки "...", иначе компилятор воспримет его не как сообщение, а как имя переменной или функции (идентификатор). Попробуйте самостоятельно изменить текст в кавычках, заново запустить программу и посмотреть, как изменится вывод.
После каждой команды должна стоять точка с запятой: она сообщает компилятору, что инструкция закончилась и можно переходить к следующей.
Пространства имён (например, std) группируют команды из библиотек, чтобы их названия не конфликтовали между собой. Подробнее о них мы тоже поговорим в следующих статьях.
Плюсы и минусы C++
Как и у любого инструмента, у C++ есть сильные и слабые стороны. Для начала давайте перечислим все основные преимущества:
- Высокая производительность. Программы на C++ работают очень быстро — практически на уровне машинного кода.
- Контроль над ресурсами. Язык даёт прямой доступ к памяти и железу, что во многих случаях критически важно для требовательных приложений.
- Универсальность. На C++ можно создавать самые разные программы под любую платформу — от прошивок для микроконтроллеров до серверов и настольных приложений. Исключение — фронтенд, где правит JavaScript, а C++ подключают разве что через WebAssembly для тяжёлых вычислений.
- Зрелость и экосистема. Язык развивается десятилетиями, поэтому для него есть огромное количество библиотек и готовых решений.
- Востребованность. Хорошие разработчики на C++ нужны всем.
Теперь перейдём к недостаткам:
- Высокий порог входа. Язык большой и сложный — новичку придётся освоить немало понятий, прежде чем писать серьёзные программы.
- Ручное управление памятью. Это мощный инструмент, но из-за него легко допустить ошибку — например, утечку памяти или незаметный баг.
- Строгость к ошибкам. Некоторые ошибки в коде проявляются не сразу и ведут себя непредсказуемо, поэтому их бывает довольно сложно найти.
- Многословность. В C++ приходится явно прописывать множество деталей — типы данных, структуру программы и так далее. Из-за этого даже простые задачи требуют больше кода, чем, например, на Python.
- Долгая сборка. Чем больше проект, тем больше файлов и зависимостей нужно скомпилировать и связать. Поэтому сборка может длиться несколько минут, а её настройка будет неочевидной для новичков.
Хоть недостатки и звучат серьёзно, переживать из-за них не стоит. С большинством сложностей вы столкнётесь только на крупных проектах — а к тому времени уже наберётесь опыта и будете знать, как их решать. К тому же современный C++ стал удобнее и безопаснее, чем его версия из 2000-х. Поэтому осваивать его можно спокойно, не пытаясь заучить всё и сразу.
На этом всё. Для первого раза этих основ вполне достаточно, чтобы сделать первые шаги, — остальное придёт с практикой. В следующей части мы также подробно разберём, как программа получает данные и где их хранит.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!
