О проекте AlgoDS

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

Для кого этот курс

AlgoDS — бесплатный русскоязычный курс по алгоритмам, структурам данных и решению задач на технических собеседованиях. Он рассчитан на человека, который знает базовый синтаксис программирования и хочет научиться самостоятельно строить решения. Регистрация для чтения уроков и сохранения прогресса AlgoDS не требуется.

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

Как устроено обучение

Основной курс содержит 54 урока в 21 этапе. Порядок ведёт от ограничений, перебора и инвариантов к структурам данных, паттернам, графам, DP и смешанной практике. Карта знаний показывает зависимости, а справочник помогает быстро восстановить сигнал задачи и границы применимости техники.

Важная идея урока проходит цепочку: задача → перебор → узкое место → наблюдение → состояние и инвариант → алгоритм → реализация → стоимость → крайние случаи и тесты. Предсказания и интерактивные лаборатории позволяют проверять понимание по шагам.

C++17 и Python 3

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

Как проверяются примеры

В репозитории есть автоматические проверки структуры уроков, зависимостей и практики, модульные тесты, сборка и проверка внутренних ссылок. Команда validate:examples извлекает парные примеры основных уроков, компилирует C++ с -std=c++17 и запускает обе версии. Browser-тесты проверяют основные учебные взаимодействия, прогресс и адаптивность.

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

Как отбирается практика

Задачи сопоставлены темам и предварительным знаниям: сначала работа с разбором, затем перенос известной техники и самостоятельный выбор. Каталог практики объединяет LeetCode, CodeRun и Codewars, а LeetCode 75 выделяет официальный набор с привязкой к курсу. Условия и отправка решений находятся на внешних платформах; их правила доступа могут отличаться.

AlgoDS сохраняет ссылки и метаданные задач, а не выдаёт количество решённых задач за меру готовности к интервью. Важно уметь объяснить решение и применить идею в другом условии.

Прогресс хранится в вашем браузере

Пройденные уроки, статусы задач, закладки, язык кода и тема сохраняются в localStorage. Серверного аккаунта и автоматической синхронизации между устройствами нет. Очистка данных браузера может удалить прогресс; для резервной копии используйте экспорт JSON на главной странице, затем импортируйте его в другом браузере.

На production-домене подключена Яндекс Метрика для анализа посещений и взаимодействий. Локальное хранение учебного прогресса не означает отсутствие аналитики сайта.

Исходный код и сообщения об ошибках

Репозиторий AlgoDS на GitHub содержит учебные тексты, компоненты и команды проверки. Если нашли ошибку, создайте GitHub issue с URL страницы, описанием и шагами воспроизведения. Для ошибки в коде добавьте вход, ожидаемый и фактический результат, язык и версию среды.

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

Начать учиться · Как готовиться к собеседованию