Мы используем cookie для стабильной работы сервиса. Подробнее

Алгоритмический фундамент программиста

ФорматОнлайн
ДлительностьКурс рассчитан на два месяца
Объём22 занятий
О курсе

Подробнее

Я создал этот курс, чтобы помочь опытным программистам подготовиться к прохождению алгоритмических собеседований в крупные компании. За время работы в Яндексе я провёл более 250 таких интервью. Я часто видел, как люди с богатым опытом разработки проваливали собеседование из-за отсутствия практики решения алгоритмических задач. Мой курс поможет таким специалистам подготовиться и получить работу в желаемой компании. Это выгодно обеим сторонам: компания получит мотивированного сотрудника, а сотрудник — интересную работу. Цель курса — дать вам все необходимые навыки для успешного прохождения алгоритмических собеседований в крупные IT-компаниях (Google, Яндекс, Amazon, Apple, Netflix и др.). Курс не просто даёт теорию; он помогает обрести навык быстрого и эффективного решения задач по программированию. Что вы получите: Практический опыт: 100 тщательно отобранных задач, которые вы будете решать самостоятельно, сразу применяя теорию на практике и получая быстрый фидбек благодаря автоматической проверке ваших решений 24/7 Понимание "паттернов решения": Научитесь распознавать классы задач и применять соответствующие методы решения. Навык решения задач в ограниченное время: Отработаете умение быстро находить решения, что особенно важно на собеседованиях. Уверенность на интервью: Избавитесь от чувства шока и трепета перед очередным собеседованием, будете чувствовать себя уверенно. Систематизация знаний: Упорядочите и расширите свои знания алгоритмов и структур данных, чтобы поддерживать высокий профессиональный уровень. Структура курса: асимптотические оценки алгоритмы поиска (линейный поиск, двоичный поиск, метод двух указателей) базовые структуры данных (стек, очередь, связные списки) алгоритмы сортировки (слияниями, "быстрая") двоичная куча графы (поиск в глубину и ширину) двоичные деревья поиска (устройство, inorder, preorder, postorder обходы) хеш-таблицы (асимптотики операций, внутреннее устройство) Задания и требования: Практические задачи: В каждом разделе вы получите набор задач для самостоятельного решения, всего 100 задач различной сложности. Какие это задачи: результат решения задачи — это программа, которую вы отправляете в систему с автоматической проверкой. Вы можете делать любое количество попыток, итеративно продвигаясь к решению задачи. Теоретические видеолекции: Краткие и содержательные материалы, объясняющие необходимую теорию простым и понятным языком. Требования для участия: Уровень программирования не ниже Middle на любом языке. Готовность активно работать и совершенствовать свои навыки. Почему этот курс для вас: Многие из наших учащихся отмечают, что теория сразу подкрепляется практикой, что помогает лучше усваивать материал. Вы научитесь решать задачи "за отведенное время", что критически важно на реальных собеседованиях. Курс поможет вам не только систематизировать знания, но и чувствовать себя уверенно при решении любых алгоритмических задач. Автор курса: Курс разработан Ильёй Шишковым — опытным программистом с 11-летним стажем работы в Яндексе. Илья участвовал в международных олимпиадах ICPC, TopCoder, Codeforces и обладает глубокими знаниями в области алгоритмов и структур данных. Присоединяйтесь к нам и сделайте решающий шаг к достижению своей цели — успешному прохождению собеседования в компанию мечты!
Требования

Что нужно для старта

  • Уметь программировать на одном из языков программирования C++, Go, Java, Python
  • Неважно, какой язык для вас является основным, знакомство с С++ сильно упростит для вас прохождение курса
Результат

Что вы получите

  • Уметь находить достаточно быстрое решение для любой задачи с алгоритмического собеседования
  • Распознавать и применять паттерны решения алгоритмических задач (например, два указателя)
  • Уметь реализовывать его на своём языке программирования
  • Уметь оценивать асимптотическую сложность алгоритмов
  • Понимать, что означают оценки «о большое»
  • Уметь реализовывать линейный и двоичный поиск на своём языке программирования
  • Применять алгоритм поиска, наиболее подходящий под решаемую задачу
  • Уметь реализовывать стек, очередь, дек, одно- и двусвязный список на своём языке программирования
  • Понимать внутреннее устройство этих структур данных
  • Применять наиболее подходящую структуру данных для решаемой задачи
  • Уметь комбинировать базовые структуру данных для решаемой задачи
  • Понимать, как работают быстрая сортировка и сортировка слияниями
  • Уметь реализовывать эти сортировки на своём языке программирования
  • Применять наиболее подходящий алгоритм сортировки для решаемой задачи
  • Уметь реализовывать графовые алгоритмы: поиски в ширину и глубину, in-order, pre-order и post-order обходы деревьев.
  • Понимать внутреннее устройство хеш-таблицы и асимптотики работы её операций
  • Уметь реализовывать хеш-таблицу на своём языке программирования
Аудитория

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

  • 1. Программисты, которые уже заваливали алгоритмическое собеседование в крупной IT-компании и хотят наконец разобраться в теме, чтобы в будущем успешно пройти интервью в Google, Яндекс, Amazon, и другие ведущие компании.
  • 2. Те, кто работает программистами, но всегда считал алгоритмы своей слабой стороной и хочет устранить этот пробел. Если вам интересно разобраться в алгоритмах и повысить свою уверенность — этот курс для вас.
  • 3. Программисты, выходящие на международный рынок труда, которые хотят подготовиться к своему первому собеседованию в крупной зарубежной IT-компании. Курс поможет вам овладеть необходимыми алгоритмическими навыками и чувствовать себя уверенно на интервью.
  • 4. Люди, которые работают в IT-сфере в какой-то роли (менеджер, системный администратор, тестировщик) и хотят перейти в разработку
Содержание

Программа курса

22 занятия
ТемаЧто внутри
01Знакомство и введение

- Приветствие
- Что вас ждёт на курсе
- Познакомьтесь с создателями курса
- Расскажите нам о себе

02Асимптотические оценки алгоритмов

- Введение в асимптотики
- Время работы в лучшем и худшем случае
- Асимптотическое обозначение «О большое»
- Стандартные асимптотики времени работы алгоритмов
- Сложение и умножение асимптотик
- Примеры оценки времени работы алгоритма
- Итоги модуля "Асимптотические оценки алгоритмов"
- Контрольные задания на тему "Асимптотические оценки алгоритмов"
- Сессия вопросов и ответов по асимптотикам

03Разбор задач на асимптотические оценки алгоритмов

- Разбор задач на асимптотические оценки алгоритмов

04Алгоритмы поиска

- Линейный поиск
- Введение в двоичный поиск
- Реализация алгоритма двоичного поиска
- Готовые реализации двоичного поиска в языках программирования
- «Двоичный поиск по ответу»
- Итоги модуля "Алгоритмы поиска"
- Контрольные задачи на тему "Алгоритмы поиска"
- Сессия вопросов и ответов по алгоритмам поиска

05Разбор задач про алгоритмы поиска

- Разбор задач про алгоритмы поиска

06Метод двух указателей

- Вступайте в чат участников курса
- Введение в метод двух указателей
- Задача о поиске отрезка с заданной суммой
- Задача о двух отсортированных массивах
- Задача LongPressedName
- Итоги модуля "Метод двух указателей"
- Контрольные задачи на тему "Метод двух указателей"
- Сессии вопросов и ответов по методу двух указателей

07Разбор задач на метод двух указателей

- Разбор задач на метод двух указателей

08Элементарные структуры данных

- Односвязный список
- Задачи на односвязный список
- Стек
- Двусвязный список
- Очередь
- Амортизированная сложность
- Дек
- Контрольные задачи на элементарные структуры данных
- Сессия вопросов и ответов по элементарным структурам данных

09Разбор задач на элементарные структуры данных

- Разбор задач на элементарные структуры данных

10Сортировки

- Введение в задачу сортировки
- Сортировка слияниями
- Алгоритм быстрой сортировки
- Задача нахождения K-й порядковой статистики
- Алгоритмы сортировки за линейное время
- Контрольные задачи

11Разбор задач на тему "Сортировки"

- Разбор задач

12Куча

- Знакомство с преподавателем
- Основные понятия
- Простая двоичная куча
- Упражнения на простую двоичную кучу
- Асимптотики, построение, сортировки
- Задача на порядковые статистики
- Многопутевое слияние
- Контрольные задачи

13Разбор задач на тему «Куча»

- Разбор задач

14Алгоритмы на графах

- Введение в теорию графов. Способы хранения графов
- Поиск в глубину
- Поиск в ширину
- Поиск циклов и топологическая сортировка
- Обзор более сложных алгоритмов на графах
- Контрольные задачи
- Сессия вопросов и ответов по алгоритмам на графах

15Разбор задач на алгоритмы на графах

- Разбор задач

16Двоичные деревья поиска

- Основное свойство двоичного дерева поиска
- Поиск и вставка в двоичное дерево поиска
- Удаление из двоичного дерева поиска
- Обходы двоичных деревьев поиска
- Глубина двоичного дерева поиска и сбалансированные деревья
- Контрольные задачи

17Разбор задач на двоичные деревья поиска

- Разбор задач

18Декартовы деревья

- Свойства декартовых деревьев
- Операция merge
- Операция split
- Реализация декартового дерева
- Контрольные задачи
- Разборы задач

19Хеш-таблицы

- Идея индексации по данным
- Задача хеширования
- Выбор хеш-функции
- Разрешение коллизий
- Рехеширование
- Контрольные задачи

20Разбор задач на хеш-таблицы

- Разбор задач

21Финальные задачи

- Задачи

22Разбор финальных задач

- Разбор задач

01Знакомство и введение

- Приветствие
- Что вас ждёт на курсе
- Познакомьтесь с создателями курса
- Расскажите нам о себе

02Асимптотические оценки алгоритмов

- Введение в асимптотики
- Время работы в лучшем и худшем случае
- Асимптотическое обозначение «О большое»
- Стандартные асимптотики времени работы алгоритмов
- Сложение и умножение асимптотик
- Примеры оценки времени работы алгоритма
- Итоги модуля "Асимптотические оценки алгоритмов"
- Контрольные задания на тему "Асимптотические оценки алгоритмов"
- Сессия вопросов и ответов по асимптотикам

03Разбор задач на асимптотические оценки алгоритмов

- Разбор задач на асимптотические оценки алгоритмов

04Алгоритмы поиска

- Линейный поиск
- Введение в двоичный поиск
- Реализация алгоритма двоичного поиска
- Готовые реализации двоичного поиска в языках программирования
- «Двоичный поиск по ответу»
- Итоги модуля "Алгоритмы поиска"
- Контрольные задачи на тему "Алгоритмы поиска"
- Сессия вопросов и ответов по алгоритмам поиска

05Разбор задач про алгоритмы поиска

- Разбор задач про алгоритмы поиска

06Метод двух указателей

- Вступайте в чат участников курса
- Введение в метод двух указателей
- Задача о поиске отрезка с заданной суммой
- Задача о двух отсортированных массивах
- Задача LongPressedName
- Итоги модуля "Метод двух указателей"
- Контрольные задачи на тему "Метод двух указателей"
- Сессии вопросов и ответов по методу двух указателей

07Разбор задач на метод двух указателей

- Разбор задач на метод двух указателей

08Элементарные структуры данных

- Односвязный список
- Задачи на односвязный список
- Стек
- Двусвязный список
- Очередь
- Амортизированная сложность
- Дек
- Контрольные задачи на элементарные структуры данных
- Сессия вопросов и ответов по элементарным структурам данных

09Разбор задач на элементарные структуры данных

- Разбор задач на элементарные структуры данных

10Сортировки

- Введение в задачу сортировки
- Сортировка слияниями
- Алгоритм быстрой сортировки
- Задача нахождения K-й порядковой статистики
- Алгоритмы сортировки за линейное время
- Контрольные задачи

11Разбор задач на тему "Сортировки"

- Разбор задач

12Куча

- Знакомство с преподавателем
- Основные понятия
- Простая двоичная куча
- Упражнения на простую двоичную кучу
- Асимптотики, построение, сортировки
- Задача на порядковые статистики
- Многопутевое слияние
- Контрольные задачи

13Разбор задач на тему «Куча»

- Разбор задач

14Алгоритмы на графах

- Введение в теорию графов. Способы хранения графов
- Поиск в глубину
- Поиск в ширину
- Поиск циклов и топологическая сортировка
- Обзор более сложных алгоритмов на графах
- Контрольные задачи
- Сессия вопросов и ответов по алгоритмам на графах

15Разбор задач на алгоритмы на графах

- Разбор задач

16Двоичные деревья поиска

- Основное свойство двоичного дерева поиска
- Поиск и вставка в двоичное дерево поиска
- Удаление из двоичного дерева поиска
- Обходы двоичных деревьев поиска
- Глубина двоичного дерева поиска и сбалансированные деревья
- Контрольные задачи

17Разбор задач на двоичные деревья поиска

- Разбор задач

18Декартовы деревья

- Свойства декартовых деревьев
- Операция merge
- Операция split
- Реализация декартового дерева
- Контрольные задачи
- Разборы задач

19Хеш-таблицы

- Идея индексации по данным
- Задача хеширования
- Выбор хеш-функции
- Разрешение коллизий
- Рехеширование
- Контрольные задачи

20Разбор задач на хеш-таблицы

- Разбор задач

21Финальные задачи

- Задачи

22Разбор финальных задач

- Разбор задач

Организатор

Автор курса

StepikStepik
Stepik — образовательная платформа и конструктор онлайн-курсов. Мы разрабатываем алгоритмы адаптивного обучения, сотрудничаем с авторами MOOC, помогаем в проведении олимпиад и программ переподготовки. Наша цель — сделать образование открытым и удобным. Stepik — широко известная российская образовательная платформа, основанная в 2013 году. На Stepik зарегистрировано более миллиона пользователей из России и стран СНГ. В настоящее время на Stepik представлены несколько тысяч учебных курсов на самые разные темы.
Подробнее об авторе
Мнения учеников

Отзывы о курсе

Оставьте отзыв

Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.

Напишите ваш коментарий, не менее 30 символов

Нажимая кнопку, вы даете согласие на обработку персональных данных

Оставьте заявку

Консультант ответит на вопросы о курсе «Алгоритмический фундамент программиста» и поможет разобраться в деталях обучения.

Комментарий ...

Нажимая кнопку, вы даете согласие на обработку персональных данных

Информация обновлена 3 сентября 2026 г.

Продолжить выбор

Похожие курсы

Шаблоны проектирования. Design patterns tutorial.
Шаблоны проектирования. Design patterns tutorial.

Для кого курс Этот курс ориентирован на тех, кто уже знаком с языком программирования Java/PHP/C# и хотел бы углубить свои знания и изучить объектно-ориентированный анализ и проек…

Онлайн6 занятий
2 999 ₽
Алгоритмы и структуры данных от А до Я
Алгоритмы и структуры данных от А до Я

В этом курсе мы пройдём основные алгоритмы и структуры данных. Примеры кода написаны на C#, однако 99% материала будет ясно любому Java-программисту, поскольку синтаксис языков оч…

Онлайн15 занятий
1 990 ₽
Основы логики и программирования.
Основы логики и программирования.

Курс развивает логическое мышление и готовит к программированию. Все в интересном для детей формате: через игры, логические и комбинаторные задачи. Ребёнок узнает, как применять а…

Онлайн
44 480 ₽
PRO C#. Графы
4 часа
PRO C#. Графы

Хочешь получить бесплатную консультацию? ✅ Пиши слово "Консультация" по ссылке. Теория графов используется в огромном количестве приложений и систем. Например, вы задумывались как…

Онлайн9 занятийНачальный
12 300 ₽
Школьная информатика. Базовый уровень
Школьная информатика. Базовый уровень

Курс основан на федеральной рабочей программы по информатике. Вы научитесь защищать компьютер от вредоносных программ, узнаете разницу между растровой и векторной графикой. Создад…

Онлайн
3 130 ₽
PRO C#. Структуры данных
3-6 часов в неделю
PRO C#. Структуры данных

Хочешь получить бесплатную консультацию? Пиши слово "Консультация" по ссылке https://t.me/ironprogrammpro_bot Курс можно купить в рамках курса Алгоритмы и структуры данных со скид…

Онлайн11 занятий
18 500 ₽
Начать без затрат

Бесплатные курсы

Сборник задач с сайта acmp.ru
Бесплатно
Сборник задач с сайта acmp.ru

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

Онлайн1 занятий
Бесплатно
Структуры данных предметной области
Бесплатно
Структуры данных предметной области

Основные задачи дисциплины: − Дальнейшее развитие и углубление навыков алгоритмизации и программирования при решении прикладных задач предметной области. − Знакомство с реализацие…

Онлайн5 занятий
Бесплатно
Введение в алгоритмы. Практикум.
Бесплатно
Введение в алгоритмы. Практикум.

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

Онлайн15 занятий
Бесплатно