О проекте 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 страницы, описанием и шагами воспроизведения. Для ошибки в коде добавьте вход, ожидаемый и фактический результат, язык и версию среды.
Не прикладывайте персональные данные или полный экспорт своего прогресса, если для воспроизведения достаточно маленького примера.