Готовитесь к алгоритмическому интервью? Оно реально надо?
Привет, в обычной жизни я разработчик на Node.js. И я думаю, немало копий было уже сломано в спорах на тему, реально ли алгоритмические интревью позволяют выявить лучших кандидатов во время приема на работу. Недавно я проходил интервью в компанию Uber и хочу поделиться своим опытом и ощущениями.
Интервью в Uber состояло из нескольких этапов, одним из которых было решение алгоритмической задачи. Задача казалась мне достаточно простой (уровня medium на leetcode), и я довольно быстро нашел решение. Однако, к моему удивлению, я получил очень плохой фидбэк.
Точнее не так. Фидбэк в корне отличался от моего собственного ощущения от того, как прошло интервью. Что было у меня в сухом остатке после часа интервью? Оптимально решенная задача, которая покрывала все корнер кейсы и правильно определенная сложность. Что было в фидбэке? Он начинался со слов "Хотя кандидат решил задачу и правильно определил сложность алгоритма...". На этом положительная часть заканчивалась, и шел длинный список того, что "было плохо": "Запускал тесты слишком много раз, не покрыл корнер кейсы в первоначальном решении, попросил помощи у интервьюера". Про последнее это была попытка втянуть и интервьюера в коммуникацию фразой типа "У нас тут кажется баг, может ты видишь, где проблема?".
В итоге упущенная возможность. Но с другой стороны, это заставило задуматься, почему оценка упорно фокусировалась на мелких недостатках и неправильных решениях, которые могут возникнуть в условиях напряжения и временного давления, свойственных интервью.
Я думаю, дело в том как разные люди мыслят. Мне кажется что человек на том конце ожидал от меня того что я погружусь в размышления на 15-20 минут, а потом просто выдам одним подходом оптимальное решение. Я же начал писать код кусками, запуская тесты после каждой законченной части чтобы удостовериться что в логах то, что я хочу видеть.
Потом я пошел чуть дальше в своих размышлениях к тому, а реально ли алгоритмические интервью нужны в 2023 году для инженеров, чья работа не связана с алгоритмами напрямую. Понятно, что знание базовых концепций важно. Но знание базовых концепций и решение какой-нибудь конкретной задачки на динамическое программирование, по-моему, немного разные вещи, особенно когда в итоге оценивается не только решение, но и то, насколько вышел фит с интервьюером.
С такими размышлениями, я открыл LinkedIn и прочитал очередную статью на тему машинного обучения и то, что скоро всех нас заменят модели. И тут все сошлось в одну точку. Если уж на интервью хотят видеть оптимальное решение задачи, выданное на раз-два, то почему бы не создать инструмент, который поможет мне в этом? Так родилась идея написать Chrome-расширение, которое автоматически решает алгоритмические задачи.
Через две недели работы и ожидания апрува от chrome маркета я задеплоил свой AlgoHack в стор.
Работает все крайне просто, копируешь алгоритмическую таск или делаешь скриншот и получаешь в течении 30 секунд решение, описание и сложность.

Все получилось очень спонтанно, я задеплоил его, сделал сайт и решил посмотреть, насколько реально такое решение может быть полезно при подготовке (или даже прохождении) алгоритмического интервью.
Работает это с любыми сайтами типа Leetcode, HackerRank и т. д.
Прикрутил туда оплату доступа, но если вдруг кто-то хочет попробовать, напишите мне на danroot983@gmail.com, без проблем дам доступ к приложению бесплатно.
Основная же мысль, которую хотелось бы обсудить с сообществом, это насколько, по вашему мнению, алгоритмические интервью имеют смысл в 2023 году, когда решение практически любой типовой задачки находится нажатием одной кнопки?