Алгоритмы для разработчиков: разработка и использование разнообразных алгоритмов и структур данных
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Team Lead C# Developer. Professional PHP Developer. Professional Web-разработчик на Python PHP Developer. Basic Специализация PHP Developer
-25%
Специализация C#
-24%
Golang Developer. Professional Разработчик на Spring Framework Специализация Python Developer
-25%
iOS Developer. Professional Scala-разработчик Highload Architect Kotlin Backend Developer Microservice Architecture Unity Game Developer. Basic JavaScript Developer. Professional Java Developer. Professional Node.js Developer Специализация Java-разработчик
-25%
NoSQL PostgreSQL Cloud Solution Architecture Специализация Java и Архитектор ПО Symfony Framework Программист С HTML/CSS C++ Developer. Basic
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

Алгоритмы и структуры данных

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

Длительность обучения:

5 месяцев

4 ак. часа в нед.

Формат:

Online

Начало занятий:

28 октября

Дни занятий:

Вт 20:00, Чт 20:00

Что даст вам этот курс

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

В программу входят самые известные прикладные алгоритмы, знание которых, как правило, требуется от претендентов на Middle и Senior-должности в крупных IT-компаниях. А также разбираются способы решения задач олимпиадного уровня.

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


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

Особенности курса


Интерактивные вебинары. Преподаватели используют современные педагогические методики, чтобы вовлечь студентов в тему и помочь им лучше усвоить знания. Каждое занятие — это заряд алгоритмической энергии, который поможет вам в интенсивном обучении и выполнении самостоятельной работы, а разнообразие тем позволит сохранить запал до конца курса.
Глубокое погружение в темы. Каждый алгоритм вы изучите «на пальцах», на конкретных визуальных примерах, исследуете разные способы его реализации. Существует тысячи и тысячи самых разных алгоритмов, на изучение которых можно потратить многие годы. Нет смысла изучать их все сразу, мы ценим ваше время, поэтому отобрали самые важные, интересные и популярные алгоритмы. Вы пройдете такие актуальные темы как битовая арифметика, рекурсия, динамическое программирование, теория графов и др. Модуль 9 посвящен продвинутым алгоритмическим трендам, которые рассчитаны на опытных специалистов.
Можно проходить курс на любом языке программирования. На вебинарах преподаватели интерактивно рисуют и демонстрируют, как работает каждый алгоритм, некоторые из них пишем с нуля прямо на уроке, используя C#, Java или Python, после чего вы сможете самостоятельно написать этот алгоритм на вашем любимом языке программирования. Благодаря подробным объяснениям и визуализации, идея каждого алгоритма станет понятна.
Свое приложение для автопроверки. Вы напишете свою простую систему тестирования, с помощью которой сможете проверять часть заданий по заготовленным преподавателями тестам.
Проектная работа для портфолио. К концу курса вы напишете свое приложение и сможете представлять его на собеседовании. Многие студенты придумывают и реализуют интересные проекты: распознавание рукописных цифр, генерация прохождения лабиринтов, решение заданий судоку и так далее.
Без алгоритмов и структур данных языки программирования мертвы. Это именно то, что вдыхает жизнь в Java, C++ и Python
Михаил Горшков
Преподаватель курса

Преподаватели

Михаил Горшков
Лаборатория Касперского
Сергей Голицын
ZillionWhales
Андрей Иванов
Евгений Волосатов
Александр Ключев
Zynga senior developer
Михаил Степанов
Data Scientist Insilico Medicine
Владислав Родин
Руководитель разработки
Работаю в Лаборатории Касперского, окончил курс по С++ в Otus и осваиваю область Data Science. Сейчас являюсь наставником на курсе С++. Специально для проекта OTUS создал программу «Алгоритмы для разработчиков». Программирую на С++ и Python в течение 18 лет, как хобби — играю на фортепиано.

Этот курс для тех, кто не проходил или пропустил алгоритмы в своем ВУЗе, а также для всех программистов, интересующихся данной темой: от любителей до профессионалов. Вы узнаете о популярных алгоритмах и структурах данных, научитесь их реализовывать и применять, сможете претендовать на вакансии в лучшие компании России и всего мира: Яндекс, Google, Facebook!

Присоединяйтесь, будет круто!

Преподаватель
Никогда не учился на разработчика, но однажды мне попались онлайн-курсы, которые озарили мою жизнь новым смыслом, и я стал Java-разработчиком.
На текущий момент занимаюсь Java-разработкой (более 7-ми лет).
За это время создал несколько проектов "с нуля", которые до сих пор работают и приносят пользу заказчикам.
Сейчас я работаю в игровой студии ZillionWhales, в которой мы делаем.. игры.
В свободное время я активно сужу хакатоны и делюсь своим опытом с молодыми ребятами.
Также пишу статьи на хабре @deft31
и medium.com @deft1991

Преподаватель
Один из разработчиков academy.cppstudio.com - бесплатного интерактивного сервиса по обучению С++. Свыше 5 лет опыта разработки приложений на C++ и C#.
Используемые технологии и фрэймворки:
WPF, WinForms, EF6, ASP.NET MVC5, ASP.NET Core 2.

Профессиональный программист. Преподаватель языка Java в колледже.
Автор видеокурсов по C#, Java, PHP

20 лет опыта ведущим программистом в разных фирмах и опыта преподавания в университете, колледже. 6 лет опыта ведения вебинаров и создания видеокурсов.

Три самых крупных завершенных проекта:
PHP. Служба знакомств в интернете - PHP, MySQL, FreeBSD, C/C++
C#. Программа расчёта заработной платы на АЭС - C#, MS-SQL Server
Java. Видеокурс создания игры Сапёр на Java: https://goo.gl/24DgBg

Статьи на Habrahabr:
Как я создавал методику изучения C# - habr.com/post/239825/
Об альтернативном образовании и про C# - habr.com/post/257957/
Изучение C# — Практический подход - habr.com/post/304142/

Участие в IT-конференциях в Литве, призовое место в конкурсе программирования InfoBalt, призовое место на республиканской олимпиаде по математике и информатике

С окончания школы в 1996 году постоянно преподавал информатику в университете, школе, на кружках, в ДДТ, на предприятиях, в колледже. С 2013 года ведет вебинары онлайн, записывает видеокурсы https://www.VideoSharp.info/

В 2002 году закончил Вильнюсский государственный университет по специальности «Магистр математики и информатики», а в 2008 году по специальности «Учитель профессии».

«В детстве меня вдохновила "Занимательная ***" серия книг Я. И. Перельмана. Считаю своим призванием создать занимательную методику обучения программированию.»

Руководитель программы
Уже 10 лет в IT, 7 из которых посвящено C++
Начинал профессиональную карьеру c компании Motorola, область телекоммуникаций, позднее заинтересовался разработкой игр.

Поработал в разных российских и зарубежных игровых студиях над различными игровыми проектами
SocialQuantum: Megapolis, Wild West 3D, Ice age 3D
Keywords Studios: Mortal Kombat, Injustice, F1
В данный момент работаю в компании Zynga над мобильным движком
для всех игровых проектов компании.

Окончил Санкт-Петербургский Электротехнический Университет ЛЭТИ, факультет компьютерных технологий и информатики (ФКТИ)
После окончания университета, работал на кафедре автоматизированных систем управления (в качестве ассистента — вел лабораторные работы).

Сейчас занимается глубоким обучением для разработки новых лекарственных препаратов. Занимался проектами по агрегации отзывов, по анализу и оптимизации производства крупных промышленных компаний, в том числе проектами по face detection, face recognition, pose estimation. Оптимизировал модели для запуска на портативных или маломощных устройствах.

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

В настоящее время занимает должность руководителя разработки, преподает в Московском Физико-Техническом Институте и на портале foxminded.

Выпускник МФТИ, начал программировать на С++, работал инженером-исследователем на проекте вычислительного программного комплекса МФТИ.

С 2017 года занимается Java Enterprise разработкой.

Работал Java-разработчиком в таких компаниях как НСПК и Яндекс. Занимался проблемами высокой нагрузки, работая как на Spring'овом (Spring Boot, Spring Core, Spring Data, Spring Batch и т.д.) так и на Java EE'шном стеках. Улучшал инфраструктуру проектов, внедряя CI/CD и отлаживая процесс миграции БД. Строил С4- архитектурные схемы для проектов, в которых принимал участие.

Является автором статей по backend-разработке на habr.com; спикер Рит++ 2020; обладатель сертификата Oracle Certified Assotiate Java SE 8 Programmer.

Михаил
Горшков
Сергей
Голицын
Андрей
Иванов
Евгений
Волосатов
Александр
Ключев
Михаил
Степанов
Владислав
Родин

Преподаватели

Михаил Горшков
Лаборатория Касперского
Работаю в Лаборатории Касперского, окончил курс по С++ в Otus и осваиваю область Data Science. Сейчас являюсь наставником на курсе С++. Специально для проекта OTUS создал программу «Алгоритмы для разработчиков». Программирую на С++ и Python в течение 18 лет, как хобби — играю на фортепиано.

Этот курс для тех, кто не проходил или пропустил алгоритмы в своем ВУЗе, а также для всех программистов, интересующихся данной темой: от любителей до профессионалов. Вы узнаете о популярных алгоритмах и структурах данных, научитесь их реализовывать и применять, сможете претендовать на вакансии в лучшие компании России и всего мира: Яндекс, Google, Facebook!

Присоединяйтесь, будет круто!

Преподаватель
Сергей Голицын
ZillionWhales
Никогда не учился на разработчика, но однажды мне попались онлайн-курсы, которые озарили мою жизнь новым смыслом, и я стал Java-разработчиком.
На текущий момент занимаюсь Java-разработкой (более 7-ми лет).
За это время создал несколько проектов "с нуля", которые до сих пор работают и приносят пользу заказчикам.
Сейчас я работаю в игровой студии ZillionWhales, в которой мы делаем.. игры.
В свободное время я активно сужу хакатоны и делюсь своим опытом с молодыми ребятами.
Также пишу статьи на хабре @deft31
и medium.com @deft1991

Преподаватель
Андрей Иванов
Один из разработчиков academy.cppstudio.com - бесплатного интерактивного сервиса по обучению С++. Свыше 5 лет опыта разработки приложений на C++ и C#.
Используемые технологии и фрэймворки:
WPF, WinForms, EF6, ASP.NET MVC5, ASP.NET Core 2.

Евгений Волосатов
Профессиональный программист. Преподаватель языка Java в колледже.
Автор видеокурсов по C#, Java, PHP

20 лет опыта ведущим программистом в разных фирмах и опыта преподавания в университете, колледже. 6 лет опыта ведения вебинаров и создания видеокурсов.

Три самых крупных завершенных проекта:
PHP. Служба знакомств в интернете - PHP, MySQL, FreeBSD, C/C++
C#. Программа расчёта заработной платы на АЭС - C#, MS-SQL Server
Java. Видеокурс создания игры Сапёр на Java: https://goo.gl/24DgBg

Статьи на Habrahabr:
Как я создавал методику изучения C# - habr.com/post/239825/
Об альтернативном образовании и про C# - habr.com/post/257957/
Изучение C# — Практический подход - habr.com/post/304142/

Участие в IT-конференциях в Литве, призовое место в конкурсе программирования InfoBalt, призовое место на республиканской олимпиаде по математике и информатике

С окончания школы в 1996 году постоянно преподавал информатику в университете, школе, на кружках, в ДДТ, на предприятиях, в колледже. С 2013 года ведет вебинары онлайн, записывает видеокурсы https://www.VideoSharp.info/

В 2002 году закончил Вильнюсский государственный университет по специальности «Магистр математики и информатики», а в 2008 году по специальности «Учитель профессии».

«В детстве меня вдохновила "Занимательная ***" серия книг Я. И. Перельмана. Считаю своим призванием создать занимательную методику обучения программированию.»

Руководитель программы
Александр Ключев
Zynga senior developer
Уже 10 лет в IT, 7 из которых посвящено C++
Начинал профессиональную карьеру c компании Motorola, область телекоммуникаций, позднее заинтересовался разработкой игр.

Поработал в разных российских и зарубежных игровых студиях над различными игровыми проектами
SocialQuantum: Megapolis, Wild West 3D, Ice age 3D
Keywords Studios: Mortal Kombat, Injustice, F1
В данный момент работаю в компании Zynga над мобильным движком
для всех игровых проектов компании.

Окончил Санкт-Петербургский Электротехнический Университет ЛЭТИ, факультет компьютерных технологий и информатики (ФКТИ)
После окончания университета, работал на кафедре автоматизированных систем управления (в качестве ассистента — вел лабораторные работы).

Михаил Степанов
Data Scientist Insilico Medicine
Сейчас занимается глубоким обучением для разработки новых лекарственных препаратов. Занимался проектами по агрегации отзывов, по анализу и оптимизации производства крупных промышленных компаний, в том числе проектами по face detection, face recognition, pose estimation. Оптимизировал модели для запуска на портативных или маломощных устройствах.

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

Владислав Родин
Руководитель разработки
В настоящее время занимает должность руководителя разработки, преподает в Московском Физико-Техническом Институте и на портале foxminded.

Выпускник МФТИ, начал программировать на С++, работал инженером-исследователем на проекте вычислительного программного комплекса МФТИ.

С 2017 года занимается Java Enterprise разработкой.

Работал Java-разработчиком в таких компаниях как НСПК и Яндекс. Занимался проблемами высокой нагрузки, работая как на Spring'овом (Spring Boot, Spring Core, Spring Data, Spring Batch и т.д.) так и на Java EE'шном стеках. Улучшал инфраструктуру проектов, внедряя CI/CD и отлаживая процесс миграции БД. Строил С4- архитектурные схемы для проектов, в которых принимал участие.

Является автором статей по backend-разработке на habr.com; спикер Рит++ 2020; обладатель сертификата Oracle Certified Assotiate Java SE 8 Programmer.

Необходимые знания

  • Опыт программирования на любом языке программирования (начальный или средний уровень)
  • Знание элементарной математики в объёме средней школы
  • Минимальное знание алгоритмов и структур данных и желание развиваться в области их изучения

Отзывы

20
Александр
Зимин
Хороший курс. Восстановил всё давно забытое с университета и узнал много нового. Брал его чтобы подготовится к собеседованиям, т.к. планировал менять работу, и полученные на нём знания не раз меня выручили.
Например, теперь ничего не стоит рассказать, как работает очередь с приоритетами построенная на куче.
До курса я бы, скорее всего, завалил этот вопрос)

А ещё на курсе я был очень удивлён тем, насколько сильно отличается скорость работы сортировки Шелла от сортировки вставками.

В общем, всячески рекомендую, познавательно и интересно.
Читать целиком
Александр
Рыбаков
Очень полезный курс, рекомендую, уверен что поможет мне во многих моих проектах. Этот курс помог мне пересмотреть взгляд на многие на первый взгляд простые задачи, упростить и ускорить их выполнение.
Спасибо, OTUS
Читать целиком
Инна
ХХХ
Курс был полезен для приобретения новых навыков. Очень подробно рассмотрены темы сортировок, контейнеры, деревья и графы. Интересное и полезное занятие на тему memory allocation. Из всех преподавателей хочу выделить Евгения Волосатова - ему отдельное спасибо за очень хорошее взаимодействие с аудиторией.
Читать целиком
Андрей
Меньшенин
Очень насыщенная программа. Много материалов. Интересные и довольно сложные домашние задания, надо которыми надо подумать, поразмышлять, и реализовать.
Понравилось то, что все материалы представлены в личном кабинете, что можно зайти и повторить.
Понравилось то, что можно было подключить микрофон, и голосом спросить вопросы у преподавателя на вебинаре или даже пройти алгоритм шаг за шагом вместе с преподавателем.
Больше всего понравились преподаватели, которые старались как можно проще и понятнее объяснить тему вебинаров.
Читать целиком
Роман
Зотов
Так как не имею профильного образования, чувствовалась нехватка фундаментальных знаний в области основ программирования. На данном курсе рассмотрены основные алгоритмы и структуры данных, которые должен знать каждый разработчик. Преподаватели отлично знают материал и чаще всего могут его преподнести так что даже не подготовленному человеку можно разобраться. По сложности - да было сложно, но оно того стоит. Спасибо за полученные знания.
Читать целиком
Михаил
Бедрицкий
Очень толковый, достаточно сбалансированный курс. Получил удовольствие и пользу.
Читать целиком
Arseny
Cherenkov
Курс очень хороший. Преподаватели Евгений Витольдович и Михаил (не знаю отчества) Горшков реально крутые в своем деле. Мне понравилось все. Все, кроме моей лени. У меня было много времени, но я еле смог досдать минимальные варианты ДЗ. Сейчас я чувствую, что я профессионально вырос и с удивлением обнаруживаю, что могу давать советы коллегам и даже консультировать по части алгоритмов. Спасибо, OTUS!
Читать целиком
Андрей
Филаткин
Курс оказался очень полезен, чтобы систематизировать существующие разрозненные знания. А выполнение домашних заданий на практике помогло почувствовать разницу между близкими алгоритмами. Курс оказался хорошим мотиватором для всего этого, я даже прочитал таки Сэджвика, купленного лет 15 назад)
Читать целиком
Дарья
Шумихина
Курс очень понравился. Особенно понравилась обратная связь, формат занятий, при котором можно, не стесняясь, тут же обсудить всё с преподавателем и другими ребятами, прям как настоящая команда:) Отдельно хотелось бы отметить крутого преподавателя - Волосатова Евгения Витольдовича, у него настоящий преподавательский дар, настолько интересно и легко он рассказывает и объясняет темы, а еще клёво рисует поясняющие картинки) Он по-настоящему заинтересовал нас и объединил. На другом моем курсе отуса все только пишут в чат, и то очень редко, хотя возможность говорить есть, но никто этого не делает, никто никого не знает, преподаватель никого не помнит, спросить что-то из-за этого становится неудобно, в плане стеснения, и прочее, короче, камандой это не назовешь, наверно, атмосфера какая-то другая. На данном курсе же наоборот, хочется именно онлайн присутствовать, а не смотреть в записи.
Читать целиком
Иван
Смирнов
Интересный курс, хорошие преподаватели.
Для себя нашел и что-то новое, и вспомнил что-то старое.
Благодаря курсу смог более детально разобраться в некоторых вещах, которые ранее были непонятны.
Читать целиком
Dmitry
Moskalyov
В целом понравилось. Из недостатков запомнилось только что некоторые презентации содержали ошибки, делающие представленные алгоритмы нерабочими, или приводились неверные расчёты. Но это возможно наследие предыдущих курсов, где-то поправили, где-то на заметили.

Было-бы неплохо представить большее число примеров на реальном языке, питоне/c++/c#/java/etc, для упрощения поиска у себя ошибок и возможности сравнения с точно работающим кодом.

Понравилась идея с тестовым окружением, когда есть набор исходных данных и набор данных которые нужно получить. Сильно упрощает тестирование. Как вариант такого подхода нам давался сайт на котором можно было положить свой код и сайт его прогонял через свои тесты. Там правда тоже не без проблем, но сама идея отличная.

Больше пожалуй нечего сказать. Всегда можно было-бы дать больше направлений, но тогда это и заняло бы больше времени
Читать целиком
Игорь
Лопушко
Однозначно курс понравился! Большое количество теории, детальный разбор алгоритмов и структур данных на лекциях, интерактивное общение во время занятий. Особенно хочется отметит отличную работу преподавателей, которые доступно все объясняют и отвечают на любой вопрос. Домашнее задание емкое и позволяет глубоко разобраться в конкретной теме. Дипломная работа позволяет детально погрузиться в выбранную тему, а при необходимости преподаватель скорректирует работу. Из того что можно улучшить, хотелось бы добавить немного больше примеров реализации того или иного алгоритма на любом языке программирования. Иногда этого не хватало, особенно для сложных алгоритмов. Но в целом курс дает возможность глубоко изучить или освежить знания по алгоритмам и структурам данных, а так же является хорошим подспорье для дальнейшего самостоятельного обучения и развития.
Читать целиком
Сергей
Голицын
Что сказать о курсе? Это было круто. Это было сложно. Порой это было безумн тяжело, но приятно. Практически каждая тема разжовывалась, обьяснялась на псевдокоде и доносилась до нас так что все (надеюсь) сразу понимали. Отдельное спасибо за темы про графы и строки. Это было великолепно. Уверен что в будущем еще не раз пересмотрю эти лекции.
Было много дз. Хотя не так ного как у прошлого курса, ноо это были реально обьемные задания. И я прекрасно понимаю тех кто не до конца выполнил их. Было приятно когда получал коментарии в гите по поводу того что можно улучшить и сделать лучше.
Считаю что преподавателю нужно минимум 2 постоянных помошника для проверки домашних заданий, потому как порой приходилось ждать около месяца.
Отдельное спасибо хочется сказать Евгению за его горящие глаза и энтузиазм с которым он все рассказывал. Это был не просто заученный текст, а чудестная импровизация по теме урока с примерами.
Очень рекомендую данный курс для расширения кругозора и открытия новых профессиональных возможностей!
Читать целиком
Николай
Карастелев
Понравилось интересная программа с разнообразием алгоритмов, включая как "академические", так и прикладные. Материал излагался доступно, плюс за хорошее качество видео/звука, пошаговое объяснение, проработка вопросов и наличие записей лекций, дополнительного материала и домашних заданий к пройденному материалу. Думаю, можно доработать систему ревью, добавить автоматизировать проверку домашних заданий или предложить набор тестовых данных, чтобы постараться сократить время на ожидание проверки (несколько моих ДЗ ожидали проверки более двух недель). Система оценок ДЗ вроде бы есть (байты за задание), но она мало мотивирует и её очень трудно использовать для отслеживания своих результатов и в целом не понятно для чего нужна. Тоже можно сказать и о ревью, оно скорей номинально, думаю при наличии автоматических тестов ревью можно было бы свести к минимуму, ограничившись консультациями в случае если решение зашло в тупик. Можно еще отметить комфортный график проведения лекций, наличие каникул и не сильно раздуют группу студентов на одного преподавателя. В целом остались положительные впечатления, понравилось качество материала, Евгению отдельное спасибо за старание и подачу материала.
Читать целиком
Владимир
Елхин
Великолепный курс! Программист без этого курса не программист. Волосатов большой молодец
Читать целиком
Алексей
Шубников
Курс полностью оправдал мои ожидания. По окончании я стал чувствовать себя уверенней в данной теме. Теперь у меня есть понимание как можно эффективно решать многие задачи с использованием определенных структур данных, применяя соответствующие алгоритмы. Отдельную благодарность хотел бы выразить преподавателям, в особенности Волосатову Евгению Витольдовичу. Его способность объяснять сложные вещи простыми словами, подкрепленная визуальной частью (на каждой лекции Евгений схематично изображал то, о чем рассказывал) очень сильно помогла усвоить материал. Без преувеличения скажу, что данный курс можно приравнять к полноценной дисциплине из университета. Всем рекмоендую!
Читать целиком
Денис
Терентьев
Я QA automation engineer, в начале этого курса работал в компании НТЦ «Протей» . Мне хотелось развиваться, и я решил восполнить недостаток фундаментальных знаний алгоритмизации. Именно их тяжелее всего изучать самому, без опытного наставника. Повседневная практика также не позволяет овладеть ими. А именно знание фундаментальной теории, как мне кажется, отличает хорошего специалиста. Такие знания позволяют эффективнее подбирать инструменты и существующие алгоритмы для решения практических задач, улучшая качество конечного продукта. На курсе в процессе практических занятий с опытными преподавателями было разобрано огромное количество подходов и алгоритмов, так что все мои ожидания были оправданы. После прохождения курса навыки программирования значительно выросли, и изменился подход к решаемым проблемам. В процессе обучения я получил предложение от компании Arrival. Новое место работы открывало для меня большие перспективы, и я принял его. Сейчас могу сказать , что работаю в «компании своей мечты».
Читать целиком
Алексей
Дьяконов
Очень качественный, структурированный курс. Отличная подача материала. Интересные, наглядные лекции и полезные домашние задания. Было сложно, но увлекательно!
Читать целиком
Николай
Морозов
Записался на курс чтоб увереннее проходить алгоритмические части собеседований и лучше понимать внутреннее устройство разных вещей (сортировки, хешмапы и тд). Обучение прошло хорошо, более детально описывал в отзывах к занятиям.
По итогу обучения собеседований еще не было, зато понимание внутренних механизмов появилось, так же начал больше обращать внимание на оптимальность в повседневном коде. Работу на данный момент не ищу)
Читать целиком
Александр
Краев
Крайне рекомендую курс! Будет полезен как начинающим, так и опытным разработчикам. Разобраны по сути все вопросы из собеседований в FAAMG. Пришлось посидеть до рассвета над некоторыми домашками. Отдельное спасибо Евгению Волосатову за потрясающее изложение материала.
Читать целиком
Александр
Зимин
Хороший курс. Восстановил всё давно забытое с университета и узнал много нового. Брал его чтобы подготовится к собеседованиям, т.к. планировал менять работу, и полученные на нём знания не раз меня выручили.
Например, теперь ничего не стоит рассказать, как работает очередь с приоритетами построенная на куче.
До курса я бы, скорее всего, завалил этот вопрос)

А ещё на курсе я был очень удивлён тем, насколько сильно отличается скорость работы сортировки Шелла от сортировки вставками.

В общем, всячески рекомендую, познавательно и интересно.
Читать целиком
Александр
Рыбаков
Очень полезный курс, рекомендую, уверен что поможет мне во многих моих проектах. Этот курс помог мне пересмотреть взгляд на многие на первый взгляд простые задачи, упростить и ускорить их выполнение.
Спасибо, OTUS
Читать целиком
Инна
ХХХ
Курс был полезен для приобретения новых навыков. Очень подробно рассмотрены темы сортировок, контейнеры, деревья и графы. Интересное и полезное занятие на тему memory allocation. Из всех преподавателей хочу выделить Евгения Волосатова - ему отдельное спасибо за очень хорошее взаимодействие с аудиторией.
Читать целиком
Андрей
Меньшенин
Очень насыщенная программа. Много материалов. Интересные и довольно сложные домашние задания, надо которыми надо подумать, поразмышлять, и реализовать.
Понравилось то, что все материалы представлены в личном кабинете, что можно зайти и повторить.
Понравилось то, что можно было подключить микрофон, и голосом спросить вопросы у преподавателя на вебинаре или даже пройти алгоритм шаг за шагом вместе с преподавателем.
Больше всего понравились преподаватели, которые старались как можно проще и понятнее объяснить тему вебинаров.
Читать целиком
Роман
Зотов
Так как не имею профильного образования, чувствовалась нехватка фундаментальных знаний в области основ программирования. На данном курсе рассмотрены основные алгоритмы и структуры данных, которые должен знать каждый разработчик. Преподаватели отлично знают материал и чаще всего могут его преподнести так что даже не подготовленному человеку можно разобраться. По сложности - да было сложно, но оно того стоит. Спасибо за полученные знания.
Читать целиком
Михаил
Бедрицкий
Очень толковый, достаточно сбалансированный курс. Получил удовольствие и пользу.
Читать целиком
Arseny
Cherenkov
Курс очень хороший. Преподаватели Евгений Витольдович и Михаил (не знаю отчества) Горшков реально крутые в своем деле. Мне понравилось все. Все, кроме моей лени. У меня было много времени, но я еле смог досдать минимальные варианты ДЗ. Сейчас я чувствую, что я профессионально вырос и с удивлением обнаруживаю, что могу давать советы коллегам и даже консультировать по части алгоритмов. Спасибо, OTUS!
Читать целиком
Андрей
Филаткин
Курс оказался очень полезен, чтобы систематизировать существующие разрозненные знания. А выполнение домашних заданий на практике помогло почувствовать разницу между близкими алгоритмами. Курс оказался хорошим мотиватором для всего этого, я даже прочитал таки Сэджвика, купленного лет 15 назад)
Читать целиком
Дарья
Шумихина
Курс очень понравился. Особенно понравилась обратная связь, формат занятий, при котором можно, не стесняясь, тут же обсудить всё с преподавателем и другими ребятами, прям как настоящая команда:) Отдельно хотелось бы отметить крутого преподавателя - Волосатова Евгения Витольдовича, у него настоящий преподавательский дар, настолько интересно и легко он рассказывает и объясняет темы, а еще клёво рисует поясняющие картинки) Он по-настоящему заинтересовал нас и объединил. На другом моем курсе отуса все только пишут в чат, и то очень редко, хотя возможность говорить есть, но никто этого не делает, никто никого не знает, преподаватель никого не помнит, спросить что-то из-за этого становится неудобно, в плане стеснения, и прочее, короче, камандой это не назовешь, наверно, атмосфера какая-то другая. На данном курсе же наоборот, хочется именно онлайн присутствовать, а не смотреть в записи.
Читать целиком
Иван
Смирнов
Интересный курс, хорошие преподаватели.
Для себя нашел и что-то новое, и вспомнил что-то старое.
Благодаря курсу смог более детально разобраться в некоторых вещах, которые ранее были непонятны.
Читать целиком
Dmitry
Moskalyov
В целом понравилось. Из недостатков запомнилось только что некоторые презентации содержали ошибки, делающие представленные алгоритмы нерабочими, или приводились неверные расчёты. Но это возможно наследие предыдущих курсов, где-то поправили, где-то на заметили.

Было-бы неплохо представить большее число примеров на реальном языке, питоне/c++/c#/java/etc, для упрощения поиска у себя ошибок и возможности сравнения с точно работающим кодом.

Понравилась идея с тестовым окружением, когда есть набор исходных данных и набор данных которые нужно получить. Сильно упрощает тестирование. Как вариант такого подхода нам давался сайт на котором можно было положить свой код и сайт его прогонял через свои тесты. Там правда тоже не без проблем, но сама идея отличная.

Больше пожалуй нечего сказать. Всегда можно было-бы дать больше направлений, но тогда это и заняло бы больше времени
Читать целиком
Игорь
Лопушко
Однозначно курс понравился! Большое количество теории, детальный разбор алгоритмов и структур данных на лекциях, интерактивное общение во время занятий. Особенно хочется отметит отличную работу преподавателей, которые доступно все объясняют и отвечают на любой вопрос. Домашнее задание емкое и позволяет глубоко разобраться в конкретной теме. Дипломная работа позволяет детально погрузиться в выбранную тему, а при необходимости преподаватель скорректирует работу. Из того что можно улучшить, хотелось бы добавить немного больше примеров реализации того или иного алгоритма на любом языке программирования. Иногда этого не хватало, особенно для сложных алгоритмов. Но в целом курс дает возможность глубоко изучить или освежить знания по алгоритмам и структурам данных, а так же является хорошим подспорье для дальнейшего самостоятельного обучения и развития.
Читать целиком
Сергей
Голицын
Что сказать о курсе? Это было круто. Это было сложно. Порой это было безумн тяжело, но приятно. Практически каждая тема разжовывалась, обьяснялась на псевдокоде и доносилась до нас так что все (надеюсь) сразу понимали. Отдельное спасибо за темы про графы и строки. Это было великолепно. Уверен что в будущем еще не раз пересмотрю эти лекции.
Было много дз. Хотя не так ного как у прошлого курса, ноо это были реально обьемные задания. И я прекрасно понимаю тех кто не до конца выполнил их. Было приятно когда получал коментарии в гите по поводу того что можно улучшить и сделать лучше.
Считаю что преподавателю нужно минимум 2 постоянных помошника для проверки домашних заданий, потому как порой приходилось ждать около месяца.
Отдельное спасибо хочется сказать Евгению за его горящие глаза и энтузиазм с которым он все рассказывал. Это был не просто заученный текст, а чудестная импровизация по теме урока с примерами.
Очень рекомендую данный курс для расширения кругозора и открытия новых профессиональных возможностей!
Читать целиком
Николай
Карастелев
Понравилось интересная программа с разнообразием алгоритмов, включая как "академические", так и прикладные. Материал излагался доступно, плюс за хорошее качество видео/звука, пошаговое объяснение, проработка вопросов и наличие записей лекций, дополнительного материала и домашних заданий к пройденному материалу. Думаю, можно доработать систему ревью, добавить автоматизировать проверку домашних заданий или предложить набор тестовых данных, чтобы постараться сократить время на ожидание проверки (несколько моих ДЗ ожидали проверки более двух недель). Система оценок ДЗ вроде бы есть (байты за задание), но она мало мотивирует и её очень трудно использовать для отслеживания своих результатов и в целом не понятно для чего нужна. Тоже можно сказать и о ревью, оно скорей номинально, думаю при наличии автоматических тестов ревью можно было бы свести к минимуму, ограничившись консультациями в случае если решение зашло в тупик. Можно еще отметить комфортный график проведения лекций, наличие каникул и не сильно раздуют группу студентов на одного преподавателя. В целом остались положительные впечатления, понравилось качество материала, Евгению отдельное спасибо за старание и подачу материала.
Читать целиком
Владимир
Елхин
Великолепный курс! Программист без этого курса не программист. Волосатов большой молодец
Читать целиком
Алексей
Шубников
Курс полностью оправдал мои ожидания. По окончании я стал чувствовать себя уверенней в данной теме. Теперь у меня есть понимание как можно эффективно решать многие задачи с использованием определенных структур данных, применяя соответствующие алгоритмы. Отдельную благодарность хотел бы выразить преподавателям, в особенности Волосатову Евгению Витольдовичу. Его способность объяснять сложные вещи простыми словами, подкрепленная визуальной частью (на каждой лекции Евгений схематично изображал то, о чем рассказывал) очень сильно помогла усвоить материал. Без преувеличения скажу, что данный курс можно приравнять к полноценной дисциплине из университета. Всем рекмоендую!
Читать целиком
Денис
Терентьев
Я QA automation engineer, в начале этого курса работал в компании НТЦ «Протей» . Мне хотелось развиваться, и я решил восполнить недостаток фундаментальных знаний алгоритмизации. Именно их тяжелее всего изучать самому, без опытного наставника. Повседневная практика также не позволяет овладеть ими. А именно знание фундаментальной теории, как мне кажется, отличает хорошего специалиста. Такие знания позволяют эффективнее подбирать инструменты и существующие алгоритмы для решения практических задач, улучшая качество конечного продукта. На курсе в процессе практических занятий с опытными преподавателями было разобрано огромное количество подходов и алгоритмов, так что все мои ожидания были оправданы. После прохождения курса навыки программирования значительно выросли, и изменился подход к решаемым проблемам. В процессе обучения я получил предложение от компании Arrival. Новое место работы открывало для меня большие перспективы, и я принял его. Сейчас могу сказать , что работаю в «компании своей мечты».
Читать целиком
Алексей
Дьяконов
Очень качественный, структурированный курс. Отличная подача материала. Интересные, наглядные лекции и полезные домашние задания. Было сложно, но увлекательно!
Читать целиком
Николай
Морозов
Записался на курс чтоб увереннее проходить алгоритмические части собеседований и лучше понимать внутреннее устройство разных вещей (сортировки, хешмапы и тд). Обучение прошло хорошо, более детально описывал в отзывах к занятиям.
По итогу обучения собеседований еще не было, зато понимание внутренних механизмов появилось, так же начал больше обращать внимание на оптимальность в повседневном коде. Работу на данный момент не ищу)
Читать целиком
Александр
Краев
Крайне рекомендую курс! Будет полезен как начинающим, так и опытным разработчикам. Разобраны по сути все вопросы из собеседований в FAAMG. Пришлось посидеть до рассвета над некоторыми домашками. Отдельное спасибо Евгению Волосатову за потрясающее изложение материала.
Читать целиком

Процесс обучения

Обучение проходит онлайн, в формате вебинаров. Длительность этого курса составляет 5 месяцев, финальный месяц отводится для выполнения проектной работы и оттачивания полученных навыков.

Расписание занятий включает 2 вебинара в неделю по 2 академических часа и от 2 до 4 часов на домашнюю работу.

Во время обучения слушатель может задавать преподавателю уточняющие вопросы по материалам лекций, домашних заданий и выпускного проекта.
Корпоративное обучение для ваших сотрудников
Поможем вашей компании развивать команду! Благодаря данному курсу ваши сотрудники: Смогут повысить производительность программ и улучшить качество кода / Смогут самостоятельно решать более сложные задачи уровня Middle+ / Получат большое количество практических задач во время обучения
>
Программа обучения
В процессе обучения вы получите комплексные знания и навыки.
C 28 октября
Тема 1. Циклы и рекурсия
Тема 2. Как выполнять домашние задания
Тема 3. Алгебраические алгоритмы
Тема 4. Битовая арифметика
Тема 5. Базовые структуры данных
C 18 ноября
Тема 6. Простые сортировки
Тема 7. Пирамидальная сортировка
Тема 8. Быстрая и внешняя сортировка
Тема 9. Линейная сортировка
C 2 декабря
Тема 10. Двоичные деревья поиска АВЛ
Тема 11. Красно-чёрные деревья
Тема 12. Другие варианты деревьев поиска
C 14 декабря
Тема 13. Хэш-функции и хэш-таблицы
Тема 14. Разрешение коллизий
Тема 15. Универсальное и идеальное хэширование
C 23 декабря
Тема 16. Определения и представления
Тема 17. Поиск и сортировка
Тема 18. Минимальный скелет
Тема 19. Кратчайший путь
Тема 20. Управление памятью
Тема 21. Задача коммивояжёра
C 20 января
Тема 22. Алгоритм Бойера-Мура
Тема 23. Алгоритм Ахо-Корасика
Тема 24. Алгоритм Кнута-Морриса-Пратта
Тема 25. Алгоритмы сжатия
Тема 26. Шифрование данных
C 15 февраля
Тема 27. Динамическое программирование
Тема 28. Алгоритмы кэширования
C 22 февраля
Тема 29. Сложная задача
Тема 30. Dancing Links
C 1 марта
Тема 31. Фильтр Блума
Тема 32. Алгоритмы MinHash, SimHash
Тема 33. Алгоритмы HyperLogLog, Count-Min Sketch
C 15 марта
Тема 34. Выбор темы и организация проектной работы
Тема 35. Консультация по проектам и домашним заданиям
Тема 36. Защита проектных работ
Тема 37. Подведение итогов курса
Скачать подробную программу
Выпускной проект
В рамках курса предусмотрена защита проекта. Это отдельная работа, на выполнение которой отводится последний месяц обучения. Проект включает в себя имплементацию сложного алгоритма и/или сложной структуры данных. При подготовке проектной работы студент может рассчитывать на консультации преподавателя и его экспертные советы. Примеры тем выпускного проекта:


  • написать кастомную хэш-таблицу

  • реализовать свой менеджер памяти с garbage collector

  • реализовать B-tree индекс для СУБД

  • любая тема на выбор студента, связанная с продвинутыми алгоритмами и структурами данных

Прошедшие открытые вебинары
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
Сложность алгебраических алгоритмов. Часть-2 "Решето Эратосфена"
Евгений Волосатов
День открытых дверей
19 октября в 20:00
Для доступа к прошедшим мероприятиям необходимо пройти входное тестирование
Возможность пройти вступительное тестирование повторно появится только через 2 недели
Результаты тестирования будут отправлены вам на e-mail, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!

После обучения вы


  • получите материалы по всем пройденным занятиям (видеозаписи вебинаров, выполненные домашние задания, выпускной проект)

  • сможете писать рациональный и хорошо структурированный код

  • получите сертификат об окончании курса

  • приобретёте навыки работы с алгоритмами и структурами данных, которые необходимы при реализации сложных проектов в крупных компаниях

  • получите приглашение пройти собеседование в компаниях-партнёрах (в случае успешного обучения)

Дата выдачи сертификата: 2 мая 2022 года
Ваш сертификат

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Алгоритмы и структуры данных»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Директор департамента образования
ООО “Отус Онлайн-Образование”
Анна Фирсова

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018 года.

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Алгоритмы и структуры данных»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Директор департамента образования
ООО “Отус Онлайн-Образование”
Анна Фирсова

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018 года.
Стоимость обучения
60 000 ₽
Продолжительность
5 месяцев
Начало занятий
28 октября