как PRO за 5 месяцев

Курс для разработчиков, готовых выйти на новый уровень в карьере за короткий срок

формат
Онлайн
дата старта
скоро

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

Уровень Pro – продвинутый уровень
12 : 10 : 44 : 16
40%
скидка
дней
часов
минут
секунд
Алгоритмы и структуры данных
/
/
Инженерная школа с рейтингом
SkillFactory — узкоспециализированная школа:
мы учим Data Science, аналитике данных и программированию.
Многолетний фокус на инженерных специальностях помогает наращивать экспертизу и постоянно совершенствовать наши курсы.
4,7
по отзывам студентов
Почему студентам нравится учиться в SkillFactory?
Студенты и выпускники рекомендуют нашу школу:
Внимание и поддержка менторов. Их цель — помочь каждому студенту получить необходимые навыки и пройти весь путь до конца.
Крепкий фундамент технических знаний.
В среднем студенты оценивают качество наших учебных материалов на 8,82 балла.
Наши выпускники оценивают менторскую поддержку на 9,1 балла.
Чтобы студенты усваивали знания максимально эффективно, мы чередуем форматы обучения: тренажеры, тесты, видеоуроки, онлайн-митапы, хакатоны и сквозные проекты.
Гибкий формат обучения для тех, кто работает
Помогаем составить резюме. 81% студентов, которым мы дали ревью по резюме, получили приглашение на собеседование
Проводим онлайн-тренировки для прохождения технических собеседований
Включаем в каждый курс задачи и вопросы, взятые из реальных собеседований
Комплексная подготовка к собеседованиям:
Студенты отрабатывают навыки на практике и могут пообщаться с потенциальными работодателями.
Хакатоны SkillFactory и других компаний
Лучших студентов рекомендуем работодателям из нашей базы
Рекомендация
Командная работа и совместные проекты студентов из разных направлений помогают развивать soft skills
Стажировки в компаниях-партнерах, во время которых студенты получают реальный стаж и опыт
Стажировки в компаниях-партнерах
Командная работа
Во время обучения студенты решают настоящие практические задачи и тренируются на настоящих кейсах.
Задачи от реальных заказчиков
Опыт работы и погружение в практику
Занимайтесь без отрыва от работы и выделяйте на учебу столько времени, сколько у вас есть.
Наши курсы ориентированы на тех, кто работает и испытывает недостаток времени
Студентам помогают опытные менторы-практики из IT-индустрии. Они дают качественную обратную связь на домашние задания, отвечают на вопросы и помогают студентам достичь своих целей во время обучения.
Программы курсов создаются экспертами с опытом от 5 лет
Вся теория разбита на короткие блоки, после которых обязательно идет практическая часть.
Мы делаем упор на практику
Уверенно решать хитрые алгоритмические задачи на собеседованиях
Достоверно считать временную сложность алгоритма
Смело браться за сложные проекты и находить элегантные решения
01
02
03
Стек или список?
Как мне снизить затраты по памяти?
Какая здесь временная сложность?
Подойдёт ли тут бинарный поиск?
Как избежать коллизий в моем хешировании?
Можно ли здесь применить алгоритм Дейкстры?
Дерево отрезков или корневая декомпозиция?
Можно ли здесь применить алгоритм Дейкстры?
Дерево отрезков или корневая декомпозиция?
Стек или список?
Как мне снизить затраты по памяти?
Ориентированный граф или неориентированный граф?
Можно ли здесь применить алгоритм Дейкстры?
Дерево отрезков или корневая декомпозиция?
Ориентированный граф или неориентированный граф?
Какая здесь временная сложность?
Подойдёт ли тут бинарный поиск?
Как избежать коллизий в моем хешировании?
Какая здесь временная сложность?
Подойдёт ли тут бинарный поиск?
Как избежать коллизий в моем хешировании?
Посмотрите по-новому на знакомые алгоритмы и структуры данных, освежите знания
Научитесь воспроизводить
с нуля любой алгоритм
и писать собственные

Начнете уверенно себя чувствовать при прохождении технических собеседований в любые
IT-компании мира

После обучения на курсе вы:

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

Медианная зарплата разработчика на Python, Java, C++

*данные взяты с сайта
доступно прямо сейчас*
9813 вакансий
120 000 ₽
Начинающим разработчикам, чтобы заложить фундамент для успешных технических собеседований в сильные компании
Разработчикам, которые стремятся на уровень выше - на позиции Middle и Senior. Получите выгодное преимущество на фоне других кандидатов

Кому подойдет курс

Тем, кто хочет браться
за сложные проекты
и работать в IT-гигантах,
и пройти многоступенчатый жесткий отбор
Разработчикам, которые хотят освежить знания, чтобы лучше решать текущие задачи
Учим алгоритмам не для галочки, а чтобы показать как можно улучшить код и уверенно проходить собеседования

Фундаментальная теоретическая база

Много практики и решения алгоритмических задач

Что вас ждет на курсе

Подготовка к техническому собеседованию

Прокачаетесь
в математике

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

Домашние задания и обратная связь

Будете самостоятельно решать задачи с установленным дедлайном и получать комментарии ментора. На онлайн-вебинарах сможете задавать вопросы преподавателю.

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

Глубокое знание алгоритмов и структур данных позволит вам создавать продукты будущего.

Топ-менеджеры крупных IT-компаний в свое время начинали с олимпиадного программирования.

Технологические компании ценят сотрудников с алгоритмическим мышлением.
Персонального координатора
Личные консультации
Помощь и поддержку
Дружное сообщество
который следит за вашим прогрессом и остается с вами на связи весь курс
с менторами и постоянная обратная связь по проделанной работе
по всем учебным вопросам в течение 1 часа в рабочее время
которое общается 24/7 в Slack и на вебинарах. Групповые проекты и работа в командах

Чтобы обучение было эффективным, мы обеспечиваем вам

Линейные структуры данных.
3 недели

Краткая программа курса

Введение в алгоритмы и структуры данных
Определение асимптотики, оценка времени работы программы, оценка затраченной памяти
Односвязные и двусвязные списки, работа с ними
01
Практика
Реализация игрушечного менеджера памяти при помощи LRU и LFU кэша

Рекурсия и комбинаторика.
1 неделя

Рекурсивные переборы, переборы всех комбинаторных объектов
Перестановки, разбиение на слагаемые, строки Фибоначчи
Перебор битовых масок
02
Практика
Упорядочивание данных во внешней памяти и поиск по ним. Программа для решения кроссвордов судоку

Сортировки и поиск.
2 недели

Сортировки, использование встроенной функции sort в языках
Алгоритм бинарного поиска. Бинарный поиск по ответу
03
Практика
Сортировка больших файлов с данными, потенциально не помещающихся в оперативную память

Хеширование.
3 недели

Принцип хеширования. Парадокс дней рождения. Известные алгоритмы хеширования.
Полиномиальное хеширование
Алгоритмы на строках
Хеш-таблица, встроенная реализация, собственная реализация
04
Практика
Генератор magnet-ссылок для файлов и папок

Графы.
2 недели

Графы. Представление графов и алгоритм DFS
Графы. Задача о поиске кратчайшего пути в графе, алгоритм BFS
Алгоритм Дейкстры
05
Практика
Travel planner - постройка кратчайшего маршрута для путешествия

Деревья.
5 недель

Графы. Представление деревьев. Алгоритмы на деревьях
Кучи
Бинарное дерево поиска, работа с ним
Красно-черное дерево, AVL-дерево
Деревья Хаффмана
06
Практика
Реализация алгоритма Liquid Resize

Карьерный блок.
2 недели

Фишки прохождения технических собеседований в крупные IT-компании
Mock-интервью «Собеседование в Amazon»

Получите подробную программу курса

Динамическое программирование.
3 недели

Задачи динамического программирования. Базовые применения. Префиксные суммы
Задачи динамического программирования. Сложные задачи. Задача о рюкзаке
Конечные автоматы. Регулярные выражения
07
Практика
Архиватор файлов
08
Эмуляция собеседования, используемого в учебных целях и максимально приближенное к реальному собеседованию

Вы будете учиться у топовых специалистов

Павел Труфанов
Преподаватель олимпиадного программирования, призер всероссийских олимпиад по программированию.
Преподаватель школ Летово и Фоксфорд, преподаватель выездных школ МФТИ
Дмитрий Никулин
Старший разработчик в команде беспилотных автомобилей Яндекса. Ассистент на онлайн-курсе по reinforcement learning от ВШЭ на Coursera. В прошлом разработчик-исследователь в Samsung AI Center
Арслан Акназаров
Ментор курса, призёр и участник множества олимпиад, в том числе заключительного этапа Всероссийской олимпиады школьников по информатике. Android-разработчик
Сейчас преподает алгоритмы и структуры данных на различных сборах.
Светлана Радченко
Обучалась в «Школе 21», сейчас учит подростков олимпиадному программированию в ЛКЛ (г. Пермь).
Также вела занятия по курсу алгоритмов и структур данных в ведущих школах г. Москвы. Преподает на двухгодичном курсе программирования на Python в Яндекс.Лицее
Сергей Цаплин
Бэкенд-разработчик VKontakte. Работал в Huawei RRI. Стажировался в World Quant и Google. Финалист студенческого чемпионата мира по программированию и VK Cup. Преподает алгоритмы и структуры данных старшим школьникам, руководит учебным направлением в пермском летнем компьютерном лагере.
Никита Мещеряков
3D Rendering Engineer в Huawei. Призер всесибирской олимпиады по программированию.
Умение программировать на 1 из языков: С++, Java, Python
Понимание принципов ООП
Базовые знания математики уровня старших классов
01
02
03

Требования к участникам курса

Почему так?
Чтобы выполнять домашние задания и создавать проекты
Оплата сразу со скидкой

Два варианта оплаты обучения

54 000
{{price_before_wo_installment}} ₽
Цена фиксированная при оплате онлайн одним платежом.
Оплата сразу после регистрации.
Осталось 5 мест
Оплата в рассрочку
4500 ₽/мес.
{{price_before}} ₽
При покупке в рассрочку на 12 месяцев от наших партнеров.
Оплата сразу после регистрации.
Осталось 5 мест
12 : 10 : 44 : 16
40%
скидка
дней
часов
минут
секунд
Записаться на курс c оплатой сразу
Записаться на курс c оплатой в рассрочку

Часто задаваемые вопросы

Почему на этом курсе нельзя учиться с нуля?
Курс по алгоритмам и структурам данных создан специально для разработчиков с опытом, чтобы прокачать имеющиеся знания. Усваивать материал и выполнять домашние задания без подготовки не получится.
В каких областях применяются алгоритмы и структуры данных?
Классические структуры данных есть везде. Любой, кто писал на C++, сталкивался с vector и unordered_map, предпочитающие Java знают ArrayList и HashMap как свои пять пальцев, а адепты Python не могут пройти мимо list и dict. Это базовые кирпичики, которые есть в любой программе. То же касается и алгоритмов: сортировка в представлении не нуждается, бинарный поиск незаменим всегда, когда в упорядоченном массиве данных нужно что-то найти, а графы появляются в областях от конвейерной обработки мультимедийных данных до менеджмента установленных пакетов. Понимание устройства алгоритмов и структур данных позволяет заглянуть под капот современных программ и понять, что у них внутри.
На каком языке программирования проходит обучение?
Теория — без привязки к языку программирования. Примеры реализации алгоритмов и практические задания — на C++, Java, Python (список дополняется).
Смогу ли я совмещать обучение с работой/учебой?
Да, обучение на курсе предполагает занятость 10-12 часов в неделю, что соответствует 1,5-2 часа в день. Большинство наших студентов совмещает обучение на курсе с основной занятостью и успешно доходят до конца.
Где будет проходить обучение и что мне нужно, чтобы учиться?
Курс по алгоритмам и структурам данных проходит в онлайн-формате на нашей обучающей платформе. Это значит, что каждую неделю вы изучаете материалы и выполняете домашние задания. Проверка заданий проходит в два этапа: автоматические тест-кейсы проверяют код на работоспособность и отсутствие багов, а ментор дает обратную связь по выполненным проектам.
Для обучения вам нужен ноутбук с доступом в Интернет.