ПопулярныйПуть
Изучайте C++
Бесплатный интерактивный онлайн-курс C++. Вы пишете код на C++ в каждом уроке — основы, указатели, классы, шаблоны — с подсказками ИИ, когда компилятор ругается, и бесплатным сертификатом по завершении.
211,803+ codders записались
- Для начинающих
Помощь ИИ при написании кода
Практические интерактивные уроки
Аудио-озвучка к каждому уроку
Тесты для проверки знаний
Бесплатный сертификат о прохождении
Программа
Раздел 1
Основы
Начать разделНачатьРазвернутьСвернутьСоздайте прочную основу с помощью ключевых понятий и базовых навыковВведение
4 уроков325- 01C++Задача
- 02Hello World!ЗадачаКвиз
- 03КомментарииКвиз
- 04Базовая структура программыЗадачаКвиз
Переменные. Часть 1
6 уроков846- 01Целые числаЗадачаМастерствоКвиз
- 02Вещественные числаЗадачаМастерствоКвиз
- 03СтрокиЗадачаКвиз
- 04Логический типЗадачаКвиз
- 05СимволыЗадачаКвиз
- 06КонстантыЗадачаКвиз
Переменные. Часть 2
5 уроков334- 01Объявление типовЗадачаКвиз
- 02Соглашения об именованииКвиз
- 03Повторение: инициализация переменныхЗадача
- 04Приведение типов. Часть 1ЗадачаКвиз
- 05Приведение типов. Часть 2Квиз
Операторы. Часть 1
7 уроков654- 01Арифметические операторыЗадачаКвиз
- 02Оператор остатка от деленияЗадачаКвиз
- 03Инкремент и декрементЗадачаКвиз
- 04Постфиксный инкремент и декрементЗадачаКвиз
- 05Сокращенные арифметические операцииЗадачаКвиз
- 06Операторы сравненияЗадачаКвиз
- 07Сравнение строкКвиз
Операторы. Часть 2
4 уроков423- 01Логические операторы. Часть 1ЗадачаКвиз
- 02Логические операторы. Часть 2ЗадачаКвиз
- 03Повторение — простая логикаЗадача
- 04Логические операторы. Часть 3ЗадачаКвиз
Принятие решений
6 уроков637- 01Оператор ifЗадачаКвиз
- 02Конструкция if - elseЗадачаКвиз
- 03Оператор switchЗадачаКвиз
- 04Условный операторЗадачаКвиз
- 05Повторение: if - elseЗадача
- 06Вложенный if - elseЗадачаКвиз
Основы ввода-вывода
5 уроков524- 01Оператор coutЗадачаМастерствоКвиз
- 02Оператор cinЗадачаКвиз
- 03Ввод строкКвиз
- 04Повторение — До 120Задача
- 05Повторение — Истина или ложьЗадача
Калькулятор чисел
Проект4 уроков16- 01Приветственное сообщениеЗадачаКвиз
- 02Получение чиселПроект
- 03Основные операцииПроект
- 04Форматированный выводПроект
Циклы
9 уроков760- 01Цикл For, часть 1ЗадачаКвиз
- 02Цикл WhileЗадачаКвиз
- 03Цикл Do WhileЗадачаКвиз
- 04BreakЗадачаКвиз
- 05ContinueЗадачаКвиз
- 06Цикл For, часть 2Квиз
- 07Вложенные циклыЗадачаКвиз
- 08Бесконечные циклыКвиз
- 09Итоги — Динамический вводЗадача
Функции
7 уроков739- 01Объявление функцииЗадачаКвиз
- 02ПараметрыЗадачаМастерствоКвиз
- 03Типы возвращаемых значенийЗадачаКвиз
- 04Перегрузка функцийКвиз
- 05Повторение: функция SigmaЗадача
- 06Повторение: функция валидацииЗадача
- 07Функции VoidЗадачаКвиз
Основы массивов
9 уроков848- 01Объявление массивовЗадачаКвиз
- 02Доступ к элементамЗадачаКвиз
- 03Изменение элементовЗадачаКвиз
- 04Повторение: Красивый вывод массиваЗадача
- 05Массивы и функцииКвиз
- 06Повторение: Произведение элементов массиваЗадача
- 07Повторение: Перевернутый массивЗадача
- 08Улучшенный цикл forЗадачаКвиз
- 09Основные операции с массивамиЗадачаКвиз
Строки
5 уроков441- 01C-style строки. Часть 1ЗадачаКвиз
- 02C-style строки. Часть 2Квиз
- 03Операции со строкамиЗадачаКвиз
- 04Строковые функции. Часть 1ЗадачаКвиз
- 05Строковые функции. Часть 2ЗадачаКвиз
Финальные испытания
3 уроков37- 01Числовой шаблонЗадачаКвиз
- 02Поиск шаблоновЗадача
- 03Калькулятор оценок студентовЗадача
Раздел 2
Логика и управление потоком
Начать разделНачатьРазвернутьСвернутьРазвивайте навыки решения задач и создавайте динамичные интерактивные программыУказатели и память
8 уроков757- 01Что такое указатель?Квиз
- 02Оператор взятия адресаЗадачаКвиз
- 03Оператор разыменованияЗадачаКвиз
- 04Нулевые указателиЗадачаКвиз
- 05Указатели и массивыЗадачаКвиз
- 06Динамическая память и 'new'ЗадачаКвиз
- 07Освобождение памяти и 'delete'ЗадачаКвиз
- 08Итоги: Практика с указателямиЗадача
Векторы (динамические массивы)
9 уроков861- 01Знакомство с std::vectorКвиз
- 02Создание вектораЗадачаКвиз
- 03Добавление элементовЗадачаКвиз
- 04Доступ к элементамЗадачаКвиз
- 05Размер вектораЗадачаКвиз
- 06Итерация с помощью цикла ForЗадачаКвиз
- 07Range-based цикл ForЗадачаКвиз
- 08Удаление элементовЗадачаКвиз
- 09Итоги: операции с векторамиЗадача
Проект: Список задач
Проект5 уроков1- 01Обзор проектаЗадача
- 02Добавление задачиПроект
- 03Просмотр задачПроект
- 04Удаление задачиПроект
- 05Завершение работы над инструментомПроект
Словари (пары ключ-значение)
7 уроков644- 01Знакомство с std::mapКвиз
- 02Создание словаряЗадачаКвиз
- 03Доступ и изменение значенийЗадачаКвиз
- 04Проверка наличия ключейЗадачаКвиз
- 05Удаление парЗадачаКвиз
- 06Итерация по словарюЗадачаКвиз
- 07Повторение: частота словЗадача
Проект: Инструмент инвентаризации
Проект5 уроков1- 01Настройка проектаЗадача
- 02Добавление и обновление товаровПроект
- 03Проверка остатковПроект
- 04Удаление товаровПроект
- 05Печать отчета об инвентаризацииПроект
Множества (уникальные элементы)
6 уроков538- 01Введение в std::setКвиз
- 02Создание множества и добавление элементовЗадачаКвиз
- 03Проверка наличия элементовЗадачаКвиз
- 04Удаление элементовЗадачаКвиз
- 05Итерация по множествуЗадачаКвиз
- 06Повторение: уникальные числаЗадача
Продвинутые функции
7 уроков653- 01Передача по ссылкеЗадачаКвиз
- 02Введение в Lambda-выраженияЗадачаКвиз
- 03Lambda-выражения с параметрамиЗадачаКвиз
- 04Lambda-выражения с возвращаемыми значениямиЗадачаКвиз
- 05Введение в рекурсиюКвиз
- 06Рекурсивный факториалЗадачаКвиз
- 07Сортировка LambdaЗадачаКвиз
Основы обработки ошибок
6 уроков540- 01Введение в исключенияКвиз
- 02Блоки 'try' и 'catch'ЗадачаКвиз
- 03Ключевое слово 'throw'ЗадачаКвиз
- 04Различные типы исключенийЗадачаКвиз
- 05Универсальный обработчикЗадачаКвиз
- 06Итоги: Безопасное делениеЗадача
Финальные испытания
3 уроков3- 01Фильтрация данных вектораЗадача
- 02Поиск значений в MapЗадача
- 03Указатель и динамический массивЗадача
Раздел 3
Объектно-ориентированное программирование
Начать разделНачатьРазвернутьСвернутьУзнайте, как организовывать код с помощью классов, объектов и повторно используемых структурОсновы ООП
11 уроков1187- 01Внешние файлыЗадачаКвиз
- 02Сборка и компиляция C++ЗадачаКвиз
- 03Заголовочные файлы и файлы исходного кодаЗадачаКвиз
- 04Пространства имен и область видимостиЗадачаКвиз
- 05Введение в ООП на C++ЗадачаКвиз
- 06Классы и объектыЗадачаКвиз
- 07Указатель 'this'ЗадачаКвиз
- 08Методы (функции-члены)ЗадачаКвиз
- 09Атрибуты (члены данных)ЗадачаКвиз
- 10Основы конструкторов и деструкторовЗадачаКвиз
- 11Итоги — Простой калькуляторЗадача
Управление памятью
6 уроков644- 01Стек и кучаЗадачаКвиз
- 02Указатели и ссылкиЗадачаКвиз
- 03Динамическая память (new/delete)ЗадачаКвиз
- 04Умные указатели в C++ЗадачаКвиз
- 05RAII в C++ЗадачаКвиз
- 06Итоги — Менеджер динамического массиваЗадача
Конструкторы и деструкторы
9 уроков972- 01Конструктор по умолчаниюЗадачаКвиз
- 02Параметризованный конструкторЗадачаКвиз
- 03Конструктор копированияЗадачаКвиз
- 04Конструктор перемещенияЗадачаКвиз
- 05Списки инициализации конструктораЗадачаКвиз
- 06Делегирующие конструкторыЗадачаКвиз
- 07Глубокое погружение в деструкторыЗадачаКвиз
- 08Правило трех / пяти / нуляЗадачаКвиз
- 09Повторение — класс StringЗадача
Свойства классов
7 уроков753- 01Члены экземпляра против статическихЗадачаКвиз
- 02Геттеры и сеттерыЗадачаКвиз
- 03Константные функции-членыЗадачаКвиз
- 04Ключевое слово mutableЗадачаКвиз
- 05Статические методы и переменныеЗадачаКвиз
- 06Дружественные функции и классыЗадачаКвиз
- 07Итоги — Менеджер банковских счетовЗадача
Инкапсуляция
6 уроков651- 01Спецификаторы доступа в C++ЗадачаКвиз
- 02Спецификаторы доступа: подробный разборЗадачаКвиз
- 03Сокрытие данныхЗадачаКвиз
- 04Struct против ClassЗадачаКвиз
- 05Вложенные и внутренние классыЗадачаКвиз
- 06Итоги — Система учета студентовЗадачаКвиз
Перегрузка операторов
8 уроков863- 01Введение в перегрузку операторовЗадачаКвиз
- 02Перегрузка арифметических операторовЗадачаКвиз
- 03Перегрузка операторов сравненияЗадачаКвиз
- 04Операторы потоковЗадачаКвиз
- 05Перегрузка оператора присваиванияЗадачаКвиз
- 06Перегрузка операторов [] и ()ЗадачаКвиз
- 07Операторы преобразования типовЗадачаКвиз
- 08Итоги — класс MatrixЗадача
Наследование
8 уроков862- 01Основы наследованияЗадачаКвиз
- 02Уровни доступа при наследованииЗадачаКвиз
- 03Порядок вызова конструкторов и деструкторовЗадачаКвиз
- 04Переопределение методовЗадачаКвиз
- 05Виртуальные функции и VTableЗадачаКвиз
- 06Множественное наследованиеЗадачаКвиз
- 07Виртуальное наследованиеЗадачаКвиз
- 08Итоги — Иерархия сотрудниковЗадача
Полиморфизм
8 уроков860- 01Полиморфизм компиляции и времени выполненияЗадачаКвиз
- 02Перегрузка функцийЗадачаКвиз
- 03Виртуальные функции: повторениеЗадачаКвиз
- 04Чистые виртуальные функцииЗадачаКвиз
- 05Абстрактные классыЗадачаКвиз
- 06Проектирование интерфейсов на C++ЗадачаКвиз
- 07Dynamic Casting и RTTIЗадачаКвиз
- 08Итоги: Калькулятор фигурЗадача
Шаблоны
6 уроков546- 01Шаблоны функцийЗадачаКвиз
- 02Шаблоны классовЗадачаКвиз
- 03Специализация шаблоновЗадачаКвиз
- 04Вариативные шаблоныЗадачаКвиз
- 05Основы SFINAE и Type TraitsКвиз
- 06Итоги — Обобщенный контейнерЗадача
Обзор STL
6 уроков646- 01Обзор и философия STLЗадачаКвиз
- 02Контейнеры STLЗадачаКвиз
- 03ИтераторыЗадачаКвиз
- 04Алгоритмы STLЗадачаКвиз
- 05Функторы и лямбда-выраженияЗадачаКвиз
- 06Итоги: частота словЗадача
Продвинутые концепции ООП
7 уроков763- 01Композиция против наследованияЗадачаКвиз
- 02Миксины через CRTPЗадачаКвиз
- 03Идиома PimplЗадачаКвиз
- 04Стирание типовЗадачаКвиз
- 05Enum Classes и строгая типизацияЗадачаКвиз
- 06Обработка исключений в ООПЗадачаКвиз
- 07Пользовательские иерархии исключенийЗадачаКвиз
Возможности современного C++
7 уроков764- 01Семантика перемещения и RvaluesЗадачаКвиз
- 02Идеальная передача (Perfect Forwarding)ЗадачаКвиз
- 03Лямбда-выражения в деталяхЗадачаКвиз
- 04std::function и std::bindЗадачаКвиз
- 05constexpr и constevalЗадачаКвиз
- 06Структурированные привязкиЗадачаКвиз
- 07optional, variant, anyЗадачаКвиз
Паттерны проектирования. Часть 1
6 уроков655- 01Введение в паттерны проектированияЗадачаКвиз
- 02Паттерн SingletonЗадачаКвиз
- 03Factory и Abstract FactoryЗадачаКвиз
- 04Паттерн BuilderЗадачаКвиз
- 05Паттерн ObserverЗадачаКвиз
- 06Паттерн StrategyЗадачаКвиз
Паттерны проектирования. Часть 2
7 уроков764- 01Паттерн КомандаЗадачаКвиз
- 02Паттерн АдаптерЗадачаКвиз
- 03Паттерн ДекораторЗадачаКвиз
- 04Паттерн Шаблонный методЗадачаКвиз
- 05Паттерн СостояниеЗадачаКвиз
- 06Паттерн КомпоновщикЗадачаКвиз
- 07RAII как паттернЗадачаКвиз
Финальные испытания
2 уроков2- 01Платформа для онлайн-обученияЗадача
- 02Банковская системаЗадача
Почему стоит изучать C++ на Coddy
- Пишите и запускайте настоящий C++ прямо в браузере. Без установки компилятора и настройки тулчейна. Каждый урок компилирует ваш C++ на сервере и сразу показывает результат.
- Современный C++: классы и объекты, наследование, виртуальные функции, ссылки и указатели, шаблоны, STL. Те приёмы C++, которые реально используются сегодня.
- AI-подсказки помогают разбирать и исправлять ошибки компилятора C++ — особенно те самые загадочные — так что язык перестаёт казаться карательным и становится посильным.
- Бесплатный сертификат по C++ после прохождения курса. Пригодится для системного программирования, gamedev и embedded-разработки, где владение C++ — базовое требование.
Частые вопросы об изучении C++
Легко ли изучать C++?
C++ славится как один из самых сложных языков: указатели, ручное управление памятью и огромный набор возможностей — всё это даёт о себе знать. Хорошая новость в том, что осваивать всё сразу не нужно. Курс начинается с практической базы (переменные, control flow, функции, классы), а указатели и шаблоны появляются только после того, как основы прочно усвоены.
Что учить первым — C или C++?
Оба учат мыслить низкоуровнево, но ведут в разные стороны. C компактнее и сразу заставляет разбираться с памятью и указателями. C++ объёмнее, но позволяет постепенно войти в язык через классы и STL, прежде чем браться за ручное управление памятью. Если цель — прикладная разработка или геймдев, начинайте с C++; для embedded или работы с ОС ближе к железу будет C.
Сколько времени нужно, чтобы выучить C++?
Основы C++ — синтаксис, управляющие конструкции, функции, простые классы — занимают от трёх до шести недель ежедневной практики. Уверенная работа с указателями, шаблонами и STL обычно требует от трёх до шести месяцев. Мастерство (идиомы современного C++, оптимизация производительности, сложные кодовые базы) — это путь длиной в несколько лет.
Можно ли изучать C++ онлайн бесплатно?
Да. Интерактивный курс по C++ бесплатный — уроки, задачи по программированию, тесты и сертификат. Редактор работает прямо в браузере, так что для старта не нужно ставить GCC, Clang или Visual Studio локально.
Нужно ли устанавливать компилятор, чтобы пройти этот курс C++?
Нет. Каждое упражнение по C++ компилируется на сервере в изолированной среде, а результат отображается рядом с вашим кодом. Никаких toolchain, makefile или IDE.
Получу ли я сертификат по C++ после курса?
Да. По завершении курса C++ вы получаете бесплатный сертификат. Подтверждаемое доказательство, которое можно добавить в резюме или LinkedIn вместе с проектами из портфолио.