LeetCode и алгоритмы — зачем и когда

Алгоритмы поднимают качество мышления, но реально на работе их не пишут. LeetCode нужен только перед собесом. На работе пишут ORM, формы и бизнес-логику.

Суть

Между натаскиванием на LeetCode и реальной разработкой огромный разрыв. Люди надрочились на алгоритмы, потом пришли на проект и пишут лапшу. Алгоритмы вроде zlib давно написаны, ChatGPT выдаст любой алгоритм за 5 секунд. Учить нужно обзорно — знать, что существует и где применить.

Что реально делает разработчик

  • Пишет ORM-модельки
  • Делает формочки и отчёты
  • Реализует бизнес-логику
  • Интегрирует API
  • Разруливает легаси
  • Алгоритмы — крайне редко

Почему алгоритмы всё-таки учат

  • Маркер дисциплины — кто прошёл LeetCode, тот упорный
  • Легче переучить на другой стек
  • Натренированное мышление на сложных задачах
  • Обзорные знания — понимать, где взять готовый алгоритм
  • Понимание сложности — O(n), O(log n), O(n²) на интуиции

Когда они реально нужны

  • Разработка компиляторов
  • Операционные системы
  • СУБД
  • Сетевые протоколы
  • Поисковые движки
  • Это элита индустрии, не массовая разработка

Как готовиться правильно

  • Обзорно знать структуры данных и их сложность
  • В Haskell уже всё с O(...) задокументировано — просто читай таблицу
  • Не заучивать реализации
  • Уметь нагуглить, проверить и применить
  • ChatGPT даст алгоритм за секунды — помнить необязательно

Метафора автора

«Это разные специальности. Это как если бы мы сантехника учили, как изготавливать краны и трубы. Конечно, он будет лучшим сантехником в мире, если разбирается, какая сталь используется. Но это разные профессии.»

Программист = сантехник, а не металлург. Использовать готовые алгоритмы из библиотеки — нормально.

Антипаттерны

  • Час на собесе писать сортировку пузырьком
  • Заучивать порядок фаз event loop наизусть
  • Считать, что LeetCode = квалификация
  • Игнорировать domain knowledge, делая упор на алгоритмы
  • Считать, что без алгоритмов не возьмут на работу (зависит от компании)

🎓 Источники

  • 🎓 [💡 Собеседования, переговоры по зарплате] · 2024-06-22 · YouTube
    • Тезисы: «вы каждый день пишете ORM-ки и формочки»; алгоритмы как маркер дисциплины; нужен обзор, не зубрёжка
  • 🎓 [🎙️ Найм зламаний] + Безуглый · 2025-01-16 · YouTube
    • Тезисы: сантехник vs металлург; алгоритмы никогда писать не будут; Haskell-документация со сложностью
  • ⚡ [🧑‍💻 Собеседования и найм] · 2025-12-03 · YouTube
    • Тезисы: «надрочились на лидкод, пишут лапшу»; ваша задача — бизнес-задачи