Собеседование Middle C++
Тренировочное Middle C++ собеседование: опыт кандидата, вопросы по Qt и стандартной библиотеке, практические задачи и развёрнутый фидбэк по подготовке.
Ambushed Raccoon
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 43,7 тыс.
- Лайки на YouTube: 825
Таймлайн
Коротко о видео
Это тренировочное собеседование на позицию 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` не гарантирует порядок вывода.