Алгоритмы и структуры данных для разработчиков

Новый курс для джуниор- и мидл-программистов
3 минуты8476

Алгоритмы и структуры данных — непростая область знаний, нужная при этом и дата-сайентистам, и аналитикам, и программистам, а также представителям других специальностей. Поэтому мы решили открыть новый пятимесячный курс для разработчиков уровня junior и middle. 

Что нужно для поступления

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

Что предстоит изучить 

Обучение длится пять месяцев — в совокупности это 70 часов теории и 80 часов практики. Программа состоит из пяти блоков. 

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

  1. Асимптотическая сложность алгоритмов. O-нотация.
  2. Алгоритм Евклида. Решето Эратосфена.
  3. Линейный и бинарный поиск.
  4. Понятие структуры данных. Связный список.
  5. Массивы и два указателя.
  6. Стек и очередь.

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

  1. Рекурсия и оценка сложности рекурсивных алгоритмов.
  2. Сортировка пузырьком, вставками и выбором.
  3. Быстрая сортировка. Сортировка слиянием.
  4. Сортировка подсчётом.
  5. Понятие жадного алгоритма.

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

  1. Бинарные деревья.
  2. Очередь с приоритетом и пирамидальная сортировка.
  3. Сбалансированные (АВЛ) деревья.
  4. Специальные деревья.
  5. Определение графа. Способы представления графа в памяти.
  6. Обход в ширину и глубину. Компонент связности.
  7. Алгоритмы поиска кратчайшего пути в графе A*.
  8. Построение минимального остовного дерева.

Четвёртый месяц. Хеш-таблицы и алгоритмы на строках — изучение хеш-функций и проблемы коллизий. Рассмотрение основных алгоритмов и структур данных для работы со строками.

  1. Хеширование, отображение и хеш-функции.
  2. Способы разрешения коллизий и открытая адресация.
  3. Хеш-таблицы.
  4. Префиксное дерево.
  5. Алгоритмы поиска подстроки в строке.
  6. Алгоритм Хаффмана.

Пятый месяц. Знакомство с динамическим программированием, вероятностными алгоритмами, фильтром Блума и HyperLogLog. Задачи на двумерную динамику.

  • Динамическое программирование.
  • Одномерная динамика.
  • Двумерная динамика.
  • Понятие вероятностных алгоритмов и фильтр Блума.
  • HyperLogLog.

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

Какие навыки вы получите во время обучения

  • Фундаментальные знания классических алгоритмов.
  • Понимание практической значимости использования алгоритмов для решения рабочих задач.
  • Умение оценивать сложность работы алгоритмов и структур данных.
  • Опыт реализации классических алгоритмов.
  • Опыт и навыки для решения алгоритмических задач.

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

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

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

Сергей Романчук, технический директор в Forly Capital. Руководит разработкой аналитических алгоритмов прогнозирования финансовых рынков криптовалюты Forly Capital. Раньше работал инженером-исследователем в концерне «Калашников», занимался разработкой средств сбора данных о ICO-проектах с последующим скорингом в Squilla LLC.

Алексей Петренко, Python Developer, фрилансер. Разрабатывает IT-решения по автоматизации процессов учёта наличия и движения людей и технических средств для Министерства обороны РФ. За 20 лет в IT написал программы на более чем 30 языках программирования.

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

программированиеalgorithms
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!