Как тебе работать с C++
Что проверяют
Насколько у вас живой, а не книжный опыт с языком: что вам в нём нравится, что мешает и как вы с этим справляетесь. Следом обычно уточняют, на каком стандарте вы пишете и как ловите утечки и неопределённое поведение.
Как отвечать
Вопрос похож на HR-разминку, но технический интервьюер ждёт конкретики. Каркас из трёх частей:
- где и на чём писали: тип проектов (серверный код, встраиваемые системы, игры, обработка данных), стандарт (C++17, C++20, C++23), сборка на CMake, зависимости через Conan или vcpkg;
- что нравится и почему: контроль над памятью и производительностью без сборщика мусора, RAII, семантика перемещения,
std::unique_ptrвместо ручныхnew/delete. Из нового можно назвать концепты, диапазоны,std::span,std::format,std::expected, но только то, чем вы реально пользовались; - что трудно и как справляетесь: неопределённое поведение, долгая сборка, многословные ошибки шаблонов. Сразу называете инструменты: AddressSanitizer, UndefinedBehaviorSanitizer и ThreadSanitizer в CI, clang-tidy, профилирование через perf, ускорение сборки через ccache или предкомпилированные заголовки.
Один конкретный эпизод сильнее общего рассказа: гонка данных, которую нашёл ThreadSanitizer, или горячий цикл, где смена контейнера дала заметный выигрыш по профилировщику. Цифры берите свои, те, что вы действительно замеряли.
Если коммерческого опыта мало, скажите прямо: учебные проекты, пет-проект, алгоритмические задачи. И покажите, что пишете на современном C++, а не на «C с классами», и понимаете, куда расти.
Где спотыкаются
Отвечают общими словами: «мощный и быстрый язык». Такой ответ ничего не сообщает о вас, и интервьюер начнёт гонять по основам, чтобы проверить уровень.
Хвалят язык без единой оговорки. Опытный разработчик на C++ всегда назовёт, что его раздражает, а отсутствие минусов звучит как мало практики.
Упоминают фичи, которые не могут объяснить. Назвали std::move, будьте готовы рассказать, что он ничего не перемещает, а только приводит выражение к rvalue-ссылке.