C++

C++23 · на русском · в браузере

Станьразработчикомна C++

От первой строки до Telegram-бота с архитектурой, за которую не стыдно на собеседовании. Диагностика найдёт твой уровень — дальше только то, чего ты ещё не знаешь.

Тем в графе знаний
42
Модулей до бота
7
Задач
∞
Стандарт
C++23

Проблема

Через неделю ты помнишь пятую часть прочитанного

Это не ты плохо учишься — так устроена память. Кривую забывания измерил Эббингауз ещё в 1885 году. Курсы, которые дают тему один раз и идут дальше, строят дом на песке: к модулю про классы ты уже не помнишь циклы.

Платформа возвращает каждый вопрос в тот момент, когда вероятность вспомнить падает до 90%. Повторений нужно всё меньше, а знание держится месяцами.

0%25%50%75%100%сегодня7 дн.14 дн.21 дн.30 дн.повторение
Прочитал и забыл — 0% через месяц С интервальными повторениями — 89%

Метод

Не курс, а тренажёр: навык, а не конспект

  1. 01

    Диагностика

    10–18 адаптивных вопросов. Каждый ответ уточняет картину сразу по нескольким темам: граф знаний подсказывает, что ты уже умеешь, а что пропустил.

  2. 02

    Теория порциями

    Шаги по 3–5 минут. Посреди текста — вопросы на вспоминание: попытка вспомнить закрепляет сильнее, чем перечитывание. Примеры запускаются в один клик.

  3. 03

    Лестница практики

    Допиши → почини → напиши сам. Поддержка убирается постепенно, пока ты не пишешь без подсказок. Новые задачи генерируются, проверяются тестами и не кончаются.

  4. 04

    Повторение по расписанию

    Алгоритм FSRS считает момент повторения для каждого вопроса отдельно — ровно тогда, когда ты начинаешь забывать. Темы перемешаны: мозгу сложнее, памяти лучше.

Стандарт

Не C++ из девяностых

Многие курсы до сих пор учат char*, new[] и using namespace std. Мы учим C++23 и инструменты индустрии: CMake, vcpkg, тесты. Старое показываем, чтобы ты узнавал его в чужом коде.

Так учат во многих курсах

main.cpp · 2003
#include <iostream>
#include <cstring>
using namespace std;
​
int main() {
    char* name = new char[100];
    cin >> name;
    int* scores = new int[10];
    for (int i = 0; i <= 10; i++)
        scores[i] = i * 10;
    printf("Hi, %s\n", name);
    delete name;   // а где delete[] scores?
}
  • утечка памяти и выход за границы массива
  • переполнение буфера, если имя длиннее 99 символов
  • delete вместо delete[] — неопределённое поведение

Так пишут сейчас

main.cpp · C++23
#include <algorithm>
#include <iostream>
#include <print>
#include <ranges>
#include <string>
#include <vector>
​
int main() {
    std::string name;
    std::getline(std::cin, name);
​
    auto scores = std::views::iota(0, 10)
                | std::views::transform([](int i) { return i * 10; })
                | std::ranges::to<std::vector>();
​
    std::println("Привет, {}! Лучший: {}", name, std::ranges::max(scores));
}
  • память управляется сама — утечек нет by design
  • строка любой длины, границы под контролем
  • намерение читается с первого взгляда

Маршрут

Шесть модулей до своего бота

42 тем, связанных пререквизитами. Ты не проходишь всё подряд — только то, чего не знаешь, в порядке, где каждая тема опирается на предыдущие. Уже открыто тем: 36, остальные в работе.

  1. 01Основы

    Первые программы

    Как устроена программа на C++, переменные, ввод-вывод, ветвления, циклы и функции. После модуля ты пишешь небольшие консольные программы сам, без подсказок.

    • Первая программа
    • Visual Studio: своя среда
    • Переменные и типы
    • Ввод и вывод
    • Выражения и операторы
    • Ветвления
    • Циклы
    • Функции
    • Ссылки и const
  2. 02Данные

    Контейнеры и алгоритмы

    Контейнеры стандартной библиотеки, строки, структуры, лямбды и алгоритмы. Здесь C++ становится удобным: меньше ручной работы, больше выразительности.

    • std::vector
    • Строки
    • Структуры
    • Перечисления
    • Словари
    • std::optional
    • Лямбды
    • Алгоритмы и ranges
  3. 03Объекты

    Классы и память

    Классы с инвариантами, время жизни, RAII, умные указатели, перемещение, полиморфизм и шаблоны. То, что отличает C++ от других языков и делает его быстрым и надёжным.

    • Классы
    • Перегрузка операторов
    • Время жизни и RAII
    • Указатели
    • Умные указатели
    • Перемещение
    • Наследование и полиморфизм
    • std::variant
    • Шаблоны и концепты
  4. 04Надёжность

    Ошибки, файлы, тесты

    Обработка ошибок, работа с файлами и тесты. Программа перестаёт падать от первого неожиданного ввода.

    • Обработка ошибок
    • Файлы
    • Тесты
  5. 05Инженерия

    Сборка и архитектура

    Несколько файлов, CMake, сторонние библиотеки, JSON и архитектура. Как устроены настоящие проекты и почему именно так.

    • Несколько файлов
    • Пространства имён
    • CMake
    • Сторонние библиотеки
    • JSON
    • Как осваивать любую библиотеку
    • Архитектура
  6. 06Проекты

    Сеть, потоки и бот

    Потоки, HTTP и Telegram-бот, собранный по правилам: ядро логики отдельно от транспорта, с тестами и нормальной структурой.

    • Потоки
    • HTTP и API
    • Telegram-бот
  7. 07С ИИ

    Кодим на C++ с ИИ

    Claude Code как напарник: установка, настройка под проект и рабочий цикл, в котором ИИ ускоряет тебя, а не думает за тебя. Модуль стоит в конце намеренно: проверять ИИ может только тот, кто умеет сам.

    • ИИ как напарник
    • Claude Code: установка и настройка
    • Рабочий цикл с ИИ

Наставник

ИИ, который не решает за тебя

Правильность решения проверяют тесты в песочнице, а не нейросеть. Наставник нужен, чтобы ты не застрял.

Объясняет ошибки компилятора

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

Подсказывает, а не решает

Наводящие вопросы и лестница подсказок. Решение открывается только если ты сам решишь сдаться.

Ревью как от сеньора

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

Начни сегодня

Регистрация не нужна: начни сейчас, аккаунт создашь, когда захочешь сохранить прогресс.