Заметка

Как изучить алгоритмы почти бесплатно

Какое-то время назад я писал о своём опыте прохождения курса по алгоритмам от Яндекс Практикума. Это очень хороший способ изучить алгоритмы, но есть два нюанса:

  1. Он ОЧЕНЬ плотный по нагрузке.
  2. Он недешёвый.

Любого из пунктов достаточно, чтобы курс вам не подошёл.

Так что же делать, если курс никак, а в алгоритмы всё-таки хочется?

Есть альтернативный путь, который ничуть не хуже (а в чём-то даже и лучше) прохождения нагруженного курса. Этот путь вполне успешно прошло несколько моих знакомых, и они получили вполне достойные результаты. Он предполагает, что вы уже умеете писать код хотя бы на одном языке.

Что понадобится

Три обязательных инструмента и один опциональный:

  1. Книга «Грокаем алгоритмы».
  2. LeetCode.
  3. Google и YouTube.
  4. Опционально — ментор, который хорошо шарит в алгоритмах.

Суть достаточно проста. Вы читаете книжку и решаете тематические подборки задач на LeetCode. Когда чувствуете достаточно уверенности — двигаетесь к следующей теме. В процессе гуглите то, что не знаете или не понимаете, и тем самым глубже разбираетесь в теме. Если прям буксуете — идёте к ментору за консультацией.

Если цель — именно алгоритмические собеседования, в качестве программы можно использовать бесплатный курс Яндекса. Он хорошо структурирован и содержит необходимую базу, а тонкости при желании можно догуглить. Курс не заменит полноценное фундаментальное обучение, но поможет определить нужные для собеседований темы. Я рекомендую сразу объединять его с LeetCode и решать по несколько задач из каждого раздела.

Главная сложность метода — самостоятельная работа. От вас потребуется усидчивость и настойчивость. Справедливости ради, в курсе Яндекса тоже 90% самостоятельной работы. Вам придётся планировать своё обучение и выделить на эту деятельность несколько месяцев: алгоритмы не получится освоить за пару недель.

Ещё имейте в виду, что в «Грокаем алгоритмы» практически не раскрыта тема деревьев. А она довольно большая и важная, не пропускайте её.

Практические рекомендации

  1. Двигайтесь по чуть-чуть каждый день. Так знания лучше и прочнее усваиваются.
  2. Решайте минимум 10–15 задач на каждую тему. Начинайте с уровня Easy, а когда разберётесь с базой, переходите к Medium. Hard оставьте для тем и форматов собеседований, где он действительно нужен.
  3. Постоянно пользуйтесь Google, чтобы разобраться в теме. Не гуглите готовые решения!
  4. Не стесняйтесь обращаться за помощью. Помимо менторов существуют специальные чаты и комьюнити, где вам помогут и подскажут.

Удачи, и да пребудет с вами О(n)!