Бесплатная бета: 30 дней полного доступа, без карты.Зарегистрироваться бесплатно

Мы используем необходимые куки для работы сайта (вход и язык). Формы обратной связи и сообщения об ошибке дополнительно используют Google reCAPTCHA для защиты от спама. Она загружается только если вы согласитесь. Политика конфиденциальности

← Blog
Обновления

Зачем я сделал AlgoPath

Elman Huseynov · 2026-08-03

Я умел писать код. Я делал вещи, которыми пользовались живые люди. И всё равно сидел перед задачей с собеседования и не понимал, что делать.

Ради этого разрыва и сделан AlgoPath.

Что на самом деле шло не так

Я делал то, что советуют все. Открывал сайт с задачами, брал задачу, застревал, читал решение, понимал решение, успокаивался. Потом открывал следующую задачу и застревал снова.

Задаче на шестидесятой я заметил неприятное. Я не становился лучше в решении задач. Я становился лучше в чтении решений. Это разные навыки, и на собеседовании проверяют только один.

Момент, когда стало очевидно. В задаче просили найти самый длинный участок списка, где сумма не превышает лимит. Я смотрел на неё 20 минут. Потом прочитал ответ: скользящее окно. На той же неделе я решил четыре задачи на скользящее окно. Написать его я умел. Чего я не умел — посмотреть на задачу, где слов «скользящее окно» нет нигде, и понять, что она про него.

Этому шагу меня никто не учил. Все туториалы, которые я смотрел, начинались после него. «Сегодня решаем это скользящим окном» — и дальше аккуратное объяснение того, что я и так умел писать.

Шаг посередине

Решение алгоритмической задачи состоит из трёх частей:

  1. Прочитать задачу и понять, какого она типа.
  2. Вспомнить, как решается этот тип.
  3. Написать код.

Курсы учат пунктам 2 и 3. Сайты с задачами дают пункт 3. Пункт 1 — это то, на чём выигрывают и проваливают собеседования, и его считают чем-то, что само появится после достаточного числа повторений.

Само оно действительно появляется. Уходит на это несколько сотен задач, и большинство бросает раньше. Примерно так и получилось у всех, кого я знал.

Поэтому я сделал то, что тренирует пункт 1 напрямую.

Во что это выросло

150 шагов по порядку, каждый опирается на предыдущий. Шаг берёт одну идею, объясняет её, заставляет написать самому, а потом ставит внутрь реальной production-ситуации — рейт-лимитер, LRU-кеш, автодополнение. «Найди пару чисел с нужной суммой» и «сопоставь возврат с двумя платежами, которые его составили» — это один и тот же алгоритм, но работой звучит только второе.

Рядом с шагами: 52 паттерна, у каждого сигналы, которые на него указывают, и соседний паттерн, который выглядит подходящим и не подходит. И 194 задачи без подписи, где вы называете паттерн до того, как написали строчку, и вам говорят, правы вы или нет. Из последнего собирается карта того, что вы с чем путаете, — самое полезное, что у меня вообще было при изучении этой темы.

Как устроен шаг

Прочитать идею. Разобрать сигналы, по которым она видна в условии, — до кода, намеренно. Написать ядро самому в редакторе прямо на странице: JavaScript, Python или PHP, всё работает в вашем браузере. В части шагов вместо этого дают рабочий код с одним намеренным багом. Дальше подключить написанное к реальному кейсу и добиться, чтобы тесты прошли. У сложных шагов есть лестница подсказок: первая ступень — вопрос, последняя близка к коду, насколько глубоко спускаться, решаете вы.

Шаг засчитан, когда вы можете объяснить его без заметок и написать ядро заново с чистого файла. Дальше он возвращается через несколько дней, потом через пару недель, потом через месяц.

Три глубины

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

Для кого это

Для тех, кто умеет написать цикл и функцию и встаёт, как только задача перестаёт объявлять, чего она хочет.

Сюда попадают те, кто меняет профессию, самоучки и люди с парой лет опыта, которые ничего из этого формально не учили. Я из последней группы. Курс начинается с «что такое алгоритм» не просто так: мне надоели материалы, которые считали, что я уже знаю, как устроена хеш-таблица внутри, и мне не хотелось строить ту же стену для кого-то ещё.

Он не подходит для подготовки к спортивному программированию и не проведёт вас через собеседование на следующей неделе.

Почему это пишу я

Меня зовут Эльман Гусейнов. Я работаю разработчиком 10 лет, сейчас в Zalando в Берлине, до этого Shopify и Scoutbee. В основном JavaScript, TypeScript и React с одной стороны, PHP и Python с другой. Подробнее — на helloelman.com.

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

И я никогда не учил computer science. Всё, что я знаю, набрано по ходу работы. Для задач, которые перед тобой стоят, это эффективно, но оставляет конкретные дыры. Это была одна из них.

Я строил всё это, пока учился сам, и по материалу это видно. Каждое место, где объяснения замедляются и повторяются, — это место, где я застрял.

С чего начать

Первые 33 шага бесплатные, и это не демо. Внутри Big O, хеш-таблицы, два указателя, скользящее окно и бинарный поиск — примерно пятая часть курса, и этого хватает, чтобы тренажёр распознавания и матрица ошибок были не пустыми.

Начинайте с первого шага, если какие-то слова выше незнакомы. Начинайте с тренажёра распознавания, если код вы пишете и хотите понять, насколько велик разрыв.

Обе ссылки — одна и та же: algopath.pro.