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
- Тезисы: «надрочились на лидкод, пишут лапшу»; ваша задача — бизнес-задачи