Интервью в Cadence Design System
dariaemacs
Шел 2007 год, я проходила интервью в Cadence Design System, после двух лет работы в подобной компании (гораздо меньшей по количеству людей, но круг проектов и задач был схож и сотрудники уходили из Каденс к нам или наоборот уходили из нашей компании в эту крупнейшую компанию EDA индустрии).

В московском офисе у них были довольно доброжелательные HR. И сначала беседа шла с ними: по почте, телефону.
Затем я приехала уже на техническое собеседование, и дали тест по С++ (толстую пачку бумаги), где необходимо ответить, что выведет программа или дописать несколько строк, найти в чем ошибка.
Меня оставили наедине с этим талмудом на час, и потом уже началось устное собеседование.
Сказать, что я была несколько ошарашена, ничего не сказать. Когда два года работаешь по определенному направлению: qt, окошки, диалоги для обертки Tcl скриптов с очень большим количеством параметров, на изучение глубокого понимания С++ не остается времени. Ты почитываешь для общего развития книги по языку, но на работе от тебя требуются крупицы того, что ты прочитал, и все благополучно забывается.
В тот момент позора, я поняла, что подготовка к собеседованию — это не вспомнить, что ты делал последние два года и какие у тебя были успехи, чтобы радостно об этом сообщить интервьюеру. А он тебя обнимет прослезится и скажет, что всю жизнь компания ждала именно такого сотрудника. Нет, прохождение собеседования — это тяжелый труд и постоянная работа с различными источниками.

С первого дня устройства на отличную работу, начинается деградация по алгоритмам, С++, высшей математике и т.д..
«Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!»(с)
Осознав, погрустив от того, что я поняла это только опозорившись, теперь я стараюсь быть всегда в тонусе. И оказалось, что это благотворно влияет не только на карьеру, а еще на нервную систему. Нет ощущения, что, если что-то с этой работой произойдет, то я больше никуда не устроюсь. Наоборот, знания растут, а с ними уверенность в себе и своих силах.
Сейчас этого теста на бумажках не дают. Интервью состоит из 3-4 раундов по часу: алгоритмы, С++, задачки на сообразительность. В общем, все почти так, как в любой уважающей себя компании)).
Примерные вопросы/задания, которые спрашивали/давали в Cadence в 2019г. :
Вопрос №1
Поместите четные числа в четные индексы и нечетные числа в нечетные индексы, учитывая, что количество нечетных чисел может быть или не быть равным количеству четных чисел. Лишнее нечетное/четное число должно быть помещено в конец массива.
Вопрос №2
Напишите программу, которая подсчитывает высоту бинарного дерева.
Вопрос №3
Какие методы сортировки Вы знаете, напишите любой.
Вопрос №4
Как работает std::map, какие у нее временные сложности?
Вопрос №5
Вытекает из предыдущего, как устроено красно-черное дерево и какие у него свойства?
Вопрос №6
Расскажите о виртуальных функциях, vtable, как происходит аллокация памяти для объекта родительского класса и дочернего?
Вопрос №7
Расскажите о функторах в С++.
Вопрос №8
Найдите k-статистику в несортированном массиве.
Вопрос №9
Реализуйте быструю сортировку.
Вопрос №10
Как работает сортировка кучей, покажите, как работает на данном массиве.
Вопрос №11
Напишите слияние n-сортированных массивов различной длины. Даны сортированные массивы (n штук, различной длины), нужно их слить в один сортированный.
Вопрос №12
Напишите класс со всеми конструкторами (copy, move) и операторами.
Вопрос №13
fun(T &&v), что такое &&?
Вопрос №14
Многопоточность и синхронизация в С++, умные указатели -- расскажите, что знаете.
Вопрос №15
Оптимизируйте выражение, как бы это сделал компилятор С++.