The Jerusalem PostIRGC-backed Fatemiyoun gunmen killed in clashes at school used as training groundBollywood HungamaSinger Vishal Mishra buys four Mumbai apartments for Rs 22.25 crore in LokhandwalaDaily MaverickTHE INTERVIEW: Cat got your tongue? Certifiably funny Cape Town comedian goes canine crazyInquirerNartatez says there is ‘secrecy’ in police operationsZDF heuteAktuelle Pressemitteilungen des ZDFAntara NewsIndonesian police name three officers suspects in wiretapping caseSportstarEast Bengal vs Al Seeb LIVE score: EBFC 0-0 SEB; Rashid, Edmund start in AFC Champions League Two matchGMA NewsTrump says US will stop $4-billion military aid to Israel at end of 2026RMF24Dostałeś czerwoną kartę mobilizacyjną? Zobacz, kiedy i jak musisz się stawić do wojskaSBS 뉴스"배후는 북한" 미국이 지목하자…김여정 의미심장 발언ABC NewsWATCH: New states in play as record gas prices hit on Election DayBBC عربيترامب يؤكد شنّ الولايات المتحدة ضربة على تجهيزات للدفاع الجوي في إيران
The Daily Newsstand · Free, Always
Tuesday, November 3, 2026

Как изучить с 0 алгоритмы и структуры данных — для тех, кто не проходил, через олимпиады

Translate

Уже 2 года изучаю ML, прошла магистратуру МИФИ, "прикладная математика и информатика" - это моё второе высшее, первое - психологическое, МГУ. В связи с этим, чтобы глубже двигаться в ML, мне нужно изучать самостоятельно курсы, которых не было у меня ни в бакалавриате, ни в технической магистратуре, но они нужны для работы c Искусственным Интеллектом.

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

Я не претендую на то, что это единственный и самый правильный путь для изучения алгоритмов - скорее, это путь подходящий для меня, как человека, который получил 2 высшее образование по ML в взрослом возрасте и стремится двигаться дальше, чтобы, действительно, разбираться в ML и успешно проходить технические собеседования

Начала я с простой лекции от Codonaft - про 7 наиболее популярных алгоритмов:

Здесь рассказали о простых алгоритмах, включая - полный перебор, метод декомпозиции ("разделяй и властвуй"), жадный алгоритм, поиск с возвратом (backtracking), локальный поиск, например "градиентный спуск",

Далее - нашла лекции Тимофея Кирьянова из МФТИ: https://cs.mipt.ru/cpp_algo/ ГитХаб курса: https://github.com/tkhirianov/lections_2020

Тимофей Фёдорович Хирьянов — старший преподаватель кафедры информатики и вычислительной математики МФТИ, эксперт ЕГЭ по информатике, чемпион ACM ICPC. Его курс считается одним из лучших в рунете.

Темы: рекурсия, сортировки (быстрая, слиянием), динамическое программирование, графы, деревья, хеш-таблицы.

Параллельно я слушаю курс Алексея Пырко. Алексей опытный программист, который с 1 курса начал практику в Яндекс, он отлично знает, какие алгоритмы необходимы для успешного собеса в Яндекс, с его курсом - очень удобно сразу практиковать написание алгоритмов на Python.

Для меня важно, что 2 эти курса помогают сразу за короткое время охватить максимум тем по алгоритмам. Для реальной практики - не хочется умножать сущности, нас интересует оптимальный алгоритм для обучения алгоритмов, если Вы не олимпиадник, а готовитесь к собеседованию.

При этом, часть хороших бесплатных курсов, я так же укажу, так как, думаю, что буду повторять материалы - по этим курсам, и, возможно, кому-то будет полезно послушать курсы от разных авторов:

  1. Бесплатный Курс "Алгоритмы и структуры данных" от VK Education, + можно получить сертификат от VK

    Курс хороший и понятный курс - для начинающих, меня немного огорчает, что примеры решения на псевдокоде, а не на Python или С++ - мне это важно, так как объяснение с помощью этих языков - помогает мне развивать практику программирования, хотелось бы экономить время.

  2. Бесплатный Курс "Алгоритмы и структуры данных: практика", курс на Stepik

    Среди преподавателей: Александр Куликов, Доктор физ-мат наук, исследователь в JetBrains, руководитель бакалаврской программы Computer Science and Artificial Intelligence, Павел Маврин, Университет ИТМО, Computer Science Center, чемпион мира ICPC 2004, Александр Левин, Разработчик Telegram. Ревьюирование C++-кода студентов курса алгоритмов в Computer Science Center. Золотая медаль (2011) и Серебряная медаль (2010) на финале чемпионата мира по программированию ACM ICPC и другие.

    Преподаватели курса - очень сильные разработчики, с опытом ACM ICPC = огромный опыт в олимпиадном программировании, соответственно, большой опыт применения алгоритмов для решения задач.

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

Немного о практике

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

База для совсем новичков ( если нет базы по программированию - не нужно начинать с алгоритмов - лучше сделать шаг назад и начать с комфортной БАЗЫ, которую проходят абсолютно все:

  1. Snakify - проект Виталия Павленко, из МФТИ, хороший интерактивный учебник по Python, для тренировки перед решением задач на алгоритмы - это важная и необходимая база. Главный плюс - это отличный интерактивный учебник, с проверкой кода

  2. Поколение Python - супер популярный бесплатный курс на Stepik с сотнями задач по программированию на Python, с продолжением - отличная база перед алгоритмами.

    Важно приготовиться к тому, что решение задач на курсе "Поколение Python" займёт десятки часов Вашего времени, даже с использованием нейросетей, использовать из при освоении практики - я не рекомендую, так как 1000% не освоите и половины, не научитесь программировать, и придётся перепроходить курс заново, когда освоитесь с Python.

    Лучше изначально решать задачи самостоятельно, и быть готовым к тому, что освоение базы - занимает десятки и, возможно, если обучаетесь, как я, почти, совсем с 0, даже, сотни часов времени, но это необходимо, чтобы, действительно, научиться программировать, а в будущем, почувствовать разницу при решении задач - при применении алгоритмов и их сочетаний.

  3. Школа программиста - На этом сайте есть классный архив задач на алгоритмы со встроенной системой проверки. В Архиве - 1000 задач. Сложность определяется числом от 1 до 100, из этих значений формируется рейтинг. Уровень представленных здесь задач - базовый, они легче задач, размещенных на аналогичных сервисах. Главная ценность для меня - они подходят для тех, кто начинает программировать.

Практика по алгоритмам:

  1. LeetCode - платформа в представлении не нуждается, поэтому расскажу просто - что с LeetCode - точно не нужно начинать - так как даже задачи Easy - могут быть очень сложными для новичков, столкновение с ними хотя и полезно для развития, всё же, я рекомендую сначала освоить базу, а на LeetCode сначала решать максимум базу Pandas, Python и не огорчаться, если даже простые задачи сначала даются очень неняпросто.

    При этом, для тех, кто уже уверенно программирует на Python, это очень хорошая платформа для совершенствования навыков решения задач, в том числе - алгоритмических.

    Как известно, при тренировке на LeetCode, вы можете подготовиться к типичным задачам на собеседованиях в Российском и международном BigTech, по статистике, для качественной подготовки, важно уметь уверенно решать, хотя бы 200+ задач на Leetcode - то есть большинство easy и medium уровня, при этом важно учитывать, что и в категории easy иногда встречаются задачи уровня hard, и в категории hard

    Начать имеет смысл с данных задач Blind75.

  2. Тренировки по Алгоритмам Яндекс если не успели на недавний отбор по алгоритмам, можно посмотреть тренировки по алгоритмам здесь. Здесь есть очень подробные и понятные тренировки по всем необходимым темам

  3. Yandex CodeRun Это официальный тренажер Яндекса для подготовки к алгоритмическим секциям. Его главное преимущество перед LeetCode — идеальная системность и родной язык.

    Как устроен Каталог: Задачи разбиты не по случайным спискам, а по четким темам: «Массивы и строки», «Хеш-таблицы», «Деревья», «Графы», «Динамическое программирование». Внутри каждой темы есть градация от простых к сложным.

    Кратко пока так, данный алгоритм для изучения алгоритмов не является единственным верным. Он подходящий для меня, так как я изучаю алгоритмы в взрослом возрасте, после получения 2 высшего в онлайн-магистратуре МИФИ, у меня есть стандартный взрослый график жизни, в котором есть семья и работы, учеба в ML мне необходима, при этом нет возможности проходить все курсы одновременно, в связи с этим мне было необходимо выбрать необходимый и достаточный минимум, по которому я продолжаю двигаться.

    Буду рада, если собранные мной материалы, Вам помогут в изучении алгоритмов

    Желаю успехов на собесах по алгоритмам и в обучении и практике разработки алгоритмов.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.