Я провёл за свою карьеру много технических собеседований. Из них штук на пяти сказали дать задачи из литкода. Окей, я эти ваши алгоритмы хуй знаю, но перед интервью за час разобрал задачи, запомнил пару решений и был готов представлять из себя важного интервьюера 🥰
Если ты в компании, где платят за перекладывание джейсонов и поддержку пяти микросервисов — навык быстро написать обход дерева не понадобится тебе никогда. Ни разу. Вот прям ни единожды. За восемь лет коммерческой разработки я не встретил ни одной рабочей задачи, где надо было реализовать поиск в ширину руками.
Хуй с ним. Можно сказать, что эти задачи проверяют логическое мышление. Но ведь нет — литкод могут решать те, кто много тренировался решать литкод. Абсолютно весь секрет успеха в том, чтобы вовремя вспомнить реализацию нужного алгоритма. Будь ты хоть Аланом Тьюрингом, ты никогда за 15 минут под давлением не изобретёшь обход дерева в глубину с нуля.
Что реально надо бэкендеру? Уметь декомпозировать большую задачу. Читать чужой код, а не только писать свой. Вести переговоры с менеджером, когда сроки не выглядят как "к концу недели сделаешь, там делов то". Найти, почему запрос в проде тормозит. Объяснить джуну, почему его подход не работает, и не увести его в депрессию ещё на год.
И вот сидит на собесе кандидат с шестью годами опыта с хайлоадом, тащил на себе четыре микросервиса, инциденты на проде фиксил. А его час спрашивают, как развернуть односвязный список за O(n) с константной памятью. Он не помнит. Его не берут.
Серьёзно?
Я знаю аргумент: "Яндекс/Гугл спрашивают, значит работает". Это работает, потому что у них в воронке всегда были тысячи кандидатов и нужен дешёвый отсев — ВСЁ.
Литкод-собес — это либо плохое копирование больших компаний, либо желание интервьюера почувствовать себя умным, потому что он когда-то потратил кучу времени на решение вот прям таких же задач. Никогда — не способ найти хорошего бэкенд-разработчика в команду.
Если ты сейчас собесишься и тебя гоняют по графам на C# вакансию — это не означает, что ты тупой. Это означает, что в этой команде не подумали, кого хотят нанять. Это их проблема, не твоя
👍 — Литкод проверяет умение решать литкод
🌟 — Ахахха стоп. Разработчик должен знать алгоритмы