Вернуться в видеотеку

Собеседование Middle C++

Тренировочное Middle C++ собеседование: опыт кандидата, вопросы по Qt и стандартной библиотеке, практические задачи и развёрнутый фидбэк по подготовке.

Источник: Ambushed Raccoon

Открыть на YouTube

Таймлайн

Коротко о видео

Это тренировочное собеседование на позицию Middle C++ Developer с Валентином. Кандидат рассказывает об опыте с Linux, Docker, Windows-разработкой, Wi‑Fi/Bluetooth, WPA3, MFC, Qt и gRPC, а затем решает и разбирает несколько задач по C++. Основная часть посвящена Qt и управлению временем жизни объектов, типам и обработке ошибок, шаблонам, `std::vector`, строкам, ассоциативным контейнерам; в конце интервьюер даёт рекомендации по резюме и подготовке.

Затронутые темы

Что взять на заметку

  • Подготовить связный рассказ о проектах: какие именно функции реализовывались, какие технологии применялись и какие инженерные ограничения были важны, а не ограничиваться набором тегов в резюме.
  • Повторить модель владения Qt: родительский `QObject` удаляет дочерние объекты, поэтому сочетание parent-child с `std::shared_ptr` для виджетов способно привести к двойному удалению.
  • В задачах на подсчёт непрерывной последовательности нужно отдельно проверять случай, когда искомая последовательность заканчивается последним элементом вектора, и не усложнять логику лишними условиями.
  • Для размеров, индексов и результатов поиска в контейнере стоит осознанно выбирать `std::size_t` или связанный с контейнером тип, учитывая различия 32- и 64-битных платформ.
  • Для отсутствующего результата поиска обсудить контракт функции: `std::optional` в C++17, знаковый тип с зарезервированным значением или исключение имеют разные компромиссы.
  • Повторить поведение `std::vector` при росте: перевыделение памяти, перемещение или копирование элементов, `reserve`, возможную фрагментацию и недетерминированную задержку выделения памяти.
  • Различать упорядоченные `std::map`/`std::set` и хеш-контейнеры: первые подходят, когда нужен отсортированный обход, тогда как `std::unordered_map` не гарантирует порядок вывода.

Рекомендуем посмотреть