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

С++ Собеседование. Middle Удивляет

Мок-интервью Middle C++-разработчика о микроархитектуре процессоров, оптимизации кода, STL, многопоточности, памяти и отладке. В конце приведён развёрнутый фидбек по ответам кандидата.

Источник: Ambushed Raccoon

Открыть на YouTube

Таймлайн

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

Пробное собеседование Middle C++-разработчика Андрея посвящено низкоуровневой разработке: конвейеру процессора, предсказанию переходов, branchless-подходам, структурам данных, многопоточности и управлению памятью. Андрей описывает свой опыт в функциональной симуляции и оптимизации branch predictor, а также обсуждает образование, работу с трассами исполнения и ELF-файлами. В финале интервьюер даёт обратную связь: техническая специализация кандидата сильная, но стоит улучшить подачу опыта и алгоритмическую подготовку; это мнение интервьюера в рамках мок-интервью.

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

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

  • Кандидат объясняет назначение branch predictor через предотвращение пузырей конвейера и приводит пример с выходом из циклов, для которого полезны данные профилирования.
  • При branchless-программировании нужно сопоставлять цену неверного предсказания перехода с ценой вычисления обеих ветвей; перед оптимизацией участники рекомендуют профилирование.
  • Для уникальных отсортированных данных обсуждается std::set, а для сбора уникальных адресов переходов в трассе исполнения — std::unordered_set; multiset рассматривается как более редкая структура с несколькими значениями на ключ.
  • В многопоточном C++ обсуждаются гонки, атомарные операции и memory order: sequentially consistent, acquire, release и relaxed; кандидат подчёркивает сложность корректной проверки таких решений.
  • Кастомный пул памяти может быть полезен для заранее известного объёма данных и уменьшения обращений к системному аллокатору, но предсказуемость абсолютных виртуальных адресов всё равно зависит от ОС.
  • Для поиска утечки памяти называются Valgrind Memcheck, наблюдение за ростом потребления памяти и логирование new/delete; для локализации регрессии — git bisect между хорошим и плохим коммитами.

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

58 мин
Разное

System Design с Валерием Бабушкиным | Выпуск 1 | Собеседование | karpov.courses

Разбор задачи проектирования глобального URL shortener в формате System Design-собеседования. Участники рассчитывают ключевое пространство, память и нагрузку, а затем строят масштабируемую архитектуру сервиса.

1:55:15
Разное

Проходим HR скрининги / Что рекрутеры спрашивают на собесах

Разбор записей HR-скринингов на русском и английском: рассказ о проекте, мотивация, достижения, зарплатные ожидания и вопросы к компании. Ведущий комментирует сильные и слабые ответы; обсуждения «легенды» стоит отделять от примеров собственного подтверждаемого опыта.