Привет! Как и обещал, рассказываю, какие знания и навыки пригодились мне для успешного прохождения собеседования в Order Capital.
Мой обычный disclaimer. Цель таких постов — показать, какими на самом деле бывают собеседования в IT-компании и какие знания и навыки действительно на них пригождаются. Сами задачи в этот раз раскрывать не буду.
Всего у меня 4 технических собеседования, на каждом из них я писал код. Ребята искали человека под конкретную позицию, поэтому и задачи подбирали так, чтобы проверить, смогу ли я в дальнейшем выполнять свою работу.
Хотя первая задача на первом собесе была немного не об этом 😉 "Напиши двоичный поиск," — именно с этих слов начался мой процесс собеседования в компанию 😬 Есть мнение, что только 10%❗️ профессиональных программистов способны написать двоичный поиск без ошибок, так что задача только на первый взгляд кажется простой.
☝️ В курсе «Алгоритмический фундамент программиста» я сделал отдельный урок про реализацию двоичного поиска с разбором типичных ошибок, которые в ней допускают. Так что я оказался готов 😄 Вот и говорите после этого, что алгоритмы не нужны...
Другая задача на первом собеседовании была на внесение изменений в
Когда я написал код, на его примерах мне стали задавать разные вопрос по С++.
☝️ Итого, на первом собеседовании в Order Capital мне пригодились
1️⃣ Умение корректно писать двоичный поиск (вы знаете, где этому научиться 😉)
2️⃣ Умение работать с готовым кодом на С++
3️⃣ Постоянный диалог с интервьюером, чтобы в любой момент быть уверенным, что я решаю именно ту задачу, которую мне дали
P.S. Моя реализация двоичного поиска:
template <typename T>P.P.S. Изучите, как работают padding'и в C++, и научитесь в уме считать
int b_search(const vector<T>& a, const T& x) {
// [l; r)
int l = 0;
int r = a.size() - 1;
while (l <= r) {
int m = l + (r - l) / 2;
if (a[m] < x) {
l = m + 1;
} else {
r = m - 1;
}
}
// [0; -1]
return r != a.size() - 1 && a[r + 1] == x ? int(r + 1) : -1;
}
sizeof структур с их учётом. Мне миллион раз попадался такой вопрос на самых разных собеседованиях 😉