Найти в Дзене
Путь разработчика

Как попасть в топ-компанию и что реально спрашивают на собеседованиях?

Когда смотришь на вакансии в больших IT-компаниях, кажется, что туда берут только гениев. Нужно знать три языка программирования, разбираться в алгоритмах на уровне гроссмейстера и писать код так, чтобы сам Линус Торвальдс вернулся с того света, чтобы пожать тебе руку. А потом видишь, что кто-то без CS-образования, с опытом пару лет, уже работает в FAANG или Яндексе и думаешь — как так? Почему? Я сам долго не понимал, где правда и как вообще пробиться в хорошую компанию. Сейчас могу сказать точно: главное не знать абсолютно всё, а знать достаточно, чтобы пройти собеседование и быть полезным в команде. Типичный список требований в вакансиях выглядит устрашающе: алгоритмы и структуры данных, базы данных, понимание работы браузера и сетей, работа в команде… но если смотреть на реальный процесс, всё упрощается. Алгоритмы нужны, но не на уровне олимпиадников — достаточно уверенно работать со структурами данных и понимать сложность алгоритмов. Например, если вам дают массив чисел и просят на
Оглавление

Когда смотришь на вакансии в больших IT-компаниях, кажется, что туда берут только гениев. Нужно знать три языка программирования, разбираться в алгоритмах на уровне гроссмейстера и писать код так, чтобы сам Линус Торвальдс вернулся с того света, чтобы пожать тебе руку.

А потом видишь, что кто-то без CS-образования, с опытом пару лет, уже работает в FAANG или Яндексе и думаешь — как так? Почему?

Я сам долго не понимал, где правда и как вообще пробиться в хорошую компанию. Сейчас могу сказать точно: главное не знать абсолютно всё, а знать достаточно, чтобы пройти собеседование и быть полезным в команде.

Типичный список требований в вакансиях выглядит устрашающе: алгоритмы и структуры данных, базы данных, понимание работы браузера и сетей, работа в команде… но если смотреть на реальный процесс, всё упрощается.

Как так упрощается?

Алгоритмы нужны, но не на уровне олимпиадников — достаточно уверенно работать со структурами данных и понимать сложность алгоритмов.

Например, если вам дают массив чисел и просят найти два числа, сумма которых равна X, то первым делом должен приходить в голову hashmap.

Глубина знаний важнее ширины. Лучше разбираться в одном языке и его экосистеме, чем по верхам знать всё подряд. Теория тоже важна, но на старте никто не будет требовать, чтобы вы проектировали высоконагруженные системы. Условно, никто не ждет, что вы построите распределённую базу данных с нуля, но вот объяснить, почему индексы ускоряют запросы — наверное будет полезно.

А как проходит собеседование?

Собеседования обычно проходят в несколько этапов. Сначала проверяют адекватность и базовые знания. Потом этап с задачами: дают две-три штуки на алгоритмы, если справился — двигаешься дальше. Чаще всего это задачи на строки, массивы, асинхронность, деревья, графы.

Например, у меня были такие: как посимвольно вывести несколько строк в консоль, не нарушая порядок, если функцию вызвали несколько раз? Или как обойти дерево данных и создать строку, отображающую его структуру без рекурсии?

Если это не первая работа, могут спрашивать про опыт: что разрабатывал, какие технические решения принимал, как дебажил сложные баги. Soft skills тоже важны, но их не проверяют отдельно, скорее просто смотрят, как ты объясняешь мысли и взаимодействуешь.

Совет

Много статей я встречал об устрашающих этапах отбора и читал их взахлёб. Но это лишь усиливало страх и по итогу сыграло со мной злую шутку... Я стал так сильно нервничать перед собеседованием, что забыл вообще всё. На этапе решения задач я так долго соображал, что ревьюеру пришлось задавать мне наводящие вопросы. Лишь потом я собрался с мыслями и начал решать. Так что избавьте себя от тревожных ожиданий и просто примите то, что есть. Получится - вы молодец, не получится - будут еще попытки.

Главное в подготовке — регулярность. Если каждый день решать хотя бы пару задач, пересмотреть базу по языку, разбирать ошибки в чужом коде, то рано или поздно пробьёшься.

Друзья, какую часть собеседований больше всего не хочется проходить? Алгоритмы, может архитектурное ревью или не нравится как оценивают ваши soft skills? Интересно, у кого какой был опыт