Какое-то время назад я писал о своём опыте прохождения курса по алгоритмам от Яндекс Практикума. Это очень хороший способ изучить алгоритмы, но есть два нюанса:
- Он ОЧЕНЬ плотный по нагрузке.
- Он недешёвый.
Любого из пунктов достаточно, чтобы курс вам не подошёл.
Так что же делать, если курс никак, а в алгоритмы всё-таки хочется?
Есть альтернативный путь, который ничуть не хуже (а в чём-то даже и лучше) прохождения нагруженного курса. Этот путь вполне успешно прошло несколько моих знакомых, и они получили вполне достойные результаты. Он предполагает, что вы уже умеете писать код хотя бы на одном языке.
Что понадобится
Три обязательных инструмента и один опциональный:
- Книга «Грокаем алгоритмы».
- LeetCode.
- Google и YouTube.
- Опционально — ментор, который хорошо шарит в алгоритмах.
Суть достаточно проста. Вы читаете книжку и решаете тематические подборки задач на LeetCode. Когда чувствуете достаточно уверенности — двигаетесь к следующей теме. В процессе гуглите то, что не знаете или не понимаете, и тем самым глубже разбираетесь в теме. Если прям буксуете — идёте к ментору за консультацией.
Если цель — именно алгоритмические собеседования, в качестве программы можно использовать бесплатный курс Яндекса. Он хорошо структурирован и содержит необходимую базу, а тонкости при желании можно догуглить. Курс не заменит полноценное фундаментальное обучение, но поможет определить нужные для собеседований темы. Я рекомендую сразу объединять его с LeetCode и решать по несколько задач из каждого раздела.
Главная сложность метода — самостоятельная работа. От вас потребуется усидчивость и настойчивость. Справедливости ради, в курсе Яндекса тоже 90% самостоятельной работы. Вам придётся планировать своё обучение и выделить на эту деятельность несколько месяцев: алгоритмы не получится освоить за пару недель.
Ещё имейте в виду, что в «Грокаем алгоритмы» практически не раскрыта тема деревьев. А она довольно большая и важная, не пропускайте её.
Практические рекомендации
- Двигайтесь по чуть-чуть каждый день. Так знания лучше и прочнее усваиваются.
- Решайте минимум 10–15 задач на каждую тему. Начинайте с уровня Easy, а когда разберётесь с базой, переходите к Medium. Hard оставьте для тем и форматов собеседований, где он действительно нужен.
- Постоянно пользуйтесь Google, чтобы разобраться в теме. Не гуглите готовые решения!
- Не стесняйтесь обращаться за помощью. Помимо менторов существуют специальные чаты и комьюнити, где вам помогут и подскажут.
Удачи, и да пребудет с вами О(n)!