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

Собеседование C++. Разработчик из Яндекс

Запись тренировочного C++-собеседования с алгоритмическими задачами, вопросами по C++ и развёрнутым фидбэком кандидату. Темы включают списки, XOR, библиотеки, constexpr, шаблоны и многопоточность.

Источник: Ambushed Raccoon

Открыть на YouTube

Таймлайн

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

Тренировочное собеседование на позицию Middle C++ Developer с кандидатом Фаритом: сначала обсуждают его опыт, затем решают алгоритмические задачи и разбирают темы языка C++. Кандидат реализует разворот односвязного списка, с подсказкой приходит к решению задачи о единственном уникальном элементе массива через XOR, а затем отвечает на вопросы о библиотеках, compile-time вычислениях, шаблонах и многопоточности. В финале интервьюер даёт обратную связь: отмечает удачное решение задач после наведения, но рекомендует глубже изучить сборку и библиотеки под Linux.

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

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

  • Отработать разворот односвязного списка за O(n) времени и O(1) дополнительной памяти через указатели current, previous и next; отдельно проверять пустой список и список из одного элемента.
  • Для массива, где все элементы кроме одного встречаются дважды, помнить линейное решение с аккумулятором XOR: одинаковые значения взаимно зануляются.
  • Уметь объяснить назначение статических и динамических библиотек, различия линковки и загрузки, а также собрать и подключить библиотеку на своей целевой платформе, в данном обсуждении — Linux.
  • Различать возможность вычисления constexpr-функции на этапе компиляции и обязательное compile-time вычисление в контексте константного выражения; знать применение static_assert и шаблонных вычислений.
  • Повторить хвостовую рекурсию и то, что её оптимизация компилятором зависит от условий и настроек сборки.
  • Подготовиться к вопросам о std::thread: data race при неатомарном инкременте, необходимость join или detach до разрушения потока, std::terminate при нарушении этого правила и передачу исключений через std::exception_ptr.

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