Как правильно Leetcode.
Подготовка к интервью -- большая тема, на которую легко найти много удивительной информации. Ютуб, Quora и другие ресурсы предлагают кучу материалов, озаглавленных в стиле "Я прорешал 10 тысяч hard задач на литкоде и меня взяли на Staff SWE". Так получилось, что я успешно прошел собеседования в множестро FAANG, FAANG-like и других технологических компаний, а так же нанял множество людей по FAANG процессу (и еще больше не нанял), частью которого является то, что сейчас принято называть Leetcode-интервью.
Прежде всего нужно понять, зачем вообще нужны эти алго-секции. На эту тему есть множество мифов. Мои любимые версии:
- Глупые олимпиадники нанимают таких же олимпиадников
- Нужно завалить кандидата, чтобы предложить ему меньшую ЗП
- Тех компании просто не умеют нанимать разработчиков и потому дают глупые задачки на "код, который уже есть в стандартной библиотеке"
И даже более адекватные варианты, вроде того что в Гугле все пишут алгоритмы на куче два раза в неделю, тоже далеки от реальности: даже если и действительно пишут, смысл Leetcode-интервью не в этом.
Зачем же Leetcode-интервью нужны на самом деле?
Как и другие сложные вопросы, единого ответа нет -- Leedcode-интервью нужны много зачем. Пройдемся по пунктам.
Во-первых, они показывают собеседующему, что кандидат может программировать. Да, это можно проверить кучей других способов, однако сложно спорить, что Leetcode задачи действительно позволяют продемонстрировать, что кандидат может объяснить компьютеру, что нужно делать.
Во-вторых, что выгодно отличает Leetcode от "реальных" задач -- любой разработчик может понять и задачу и решение. Это удобно для организации: у вас 100к разработчиков с очень разными скиллами? Не проблема, *любой* из них может провести Leetcode-интервью и понять способность кандидата программировать. Это удобно и для кандидата: *любой* собеседующийся разработчик может быстро разобраться в задании и уж точно не должен тратить пять лет на изучение домена.
В-третьих, Leetcode-интервью -- это не только проверка навыка программирования, но и своеобразный IQ-тест. Вам дается довольно простая, но абстрактная и слегка запутанная задача, в которой надо быстро разобраться. Это описание подходит и Leetcode-интервью и стандартному IQ-тесту. Таким образом, одно интервью оценивает одновременно и общий интеллект и способность программировать.
В-четвертых, Leetcode-интервью -- это коммуникация ценностей. FAANG-компании публично заявляют миру, что им не важно, какой у вас бэкграунд, если вы умны и умеете программировать -- мы вас наймем. Такое заявление гораздо эффективнее описания в вакансиях или на сайте компании, ведь кандидаты судят не по словам, а по делам. Компания не просто декларирует свои ценности, но предоставляет процесс собеседования, непосредственно на них основанный.
В следующем посте я сделаю выводы из этой информации и дам советы по оптимальной подготовке к Leetcode-интервью.
Post #11
1.84K
- 👍 23
- 🔥 12
- ❤ 1