Алгоритмика. Основы

Фундамент, необходимый каждому разработчику для решения задач растущей сложности. 3 месяца, 2 раза в неделю.

О курсе

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

У Junior и даже Middle разработчиков фундаментальные знания часто отсутствуют — не многие понимают и чувствуют алгоритмику, на которой строится весь аппарат программирования.

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

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

На курсе вам придется хорошенько поломать голову, выполнить массу креативных задач — легко не будет точно.

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

Добро пожаловать в настоящее программирование.
8 000 грн/мес.

Оплачивайте курс помесячно или целиком (со скидкой 5%), возможна оплата в рассрочку

27 занятий

2 раза в неделю по вторникам с 19:30 до 21:30 и воскресеньям с 11:00 до 14:00

21 января

Новая группа стартует 21 января 2020

20 мест

Мы уделяем внимание каждому студенту курса. Поэтому количество мест ограничено


Иван Петрушенко

Senior Software Engineer/Machine Learning Engineer в компании Ring Ukraine. 5 лет опыта разработки высоконагруженных систем и алгоритмов для компании Dell. Курировал курс «Алгоритмы и структуры данных» в компании Softheme.

Facebook

Кому будет полезно

— Начинающим программистам с небольшим опытом (или почти без него), но с уверенными знаниями самого программирования;

— Работающим программистам, которые хотят укрепить фундамент и заполнить пробелы, мешающие росту (в том числе — карьерному);

— Студентам первых курсов технических вузов для углубления знаний в сфере алгоритмики и программирования;

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

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

Модели вычислений. Работа с процессором и кэшом
Низкоуровневые оптимизации на примере библиотек Facebook/Twitter.

Задача поиска. Инвариант цикла
Бинарный поиск в продакшн: Git, Elasticsearch.

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

Куча. Сортировка кучей
Напишем простой event-loop и поговорим про реализацию key-value store с ttl.

Рекурсия. Хвостовая рекурсия
Использование tail recursion для уменьшения потребляемой памяти.

Амортизационный анализ. Связный список. Стек. Очередь
Поговорим о стратегиях реалокации данных и как в списке искать за log.

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

Жадные алгоритмы
LRU cache. Huffman coding. Interval scheduling.

Динамическое программирование
Diff utility, spelling correction, db query optimisation, "Did you mean ... ?" feature, routing algorithms in Maps и много других задач.

Графы и их представление. Поиск в глубину и ширину
Как хранить в памяти весь Twitter и написать Garbage collector.

Алгоритмы решения задачи о кратчайших путях на графе
Научимся находить кратчайшее расстояние до казино и обыгрывать его в blackjack.

Хеш-таблицы и хеш-функции. Фильтр Блума
Напишем свою хеш-таблицу и посмотрим как это сделал Google.

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

Деревья поиска
Включая MST, Trie, Treap и Rope.

Место проведения

Киев, Projector (ул. Кожемяцкая 10). Школа, коворкинг и лекторий для дизайнеров, разработчиков и творческих людей всех направлений и специализаций.

[email protected]
097 015-92-72

Регистрация

Сейчас идет набор в группу, которая стартует 21 января 2020. Чтобы поступить на курс, пожалуйста, оформите заявку на обучение. Сразу после этого на вашу почту придет письмо с подробными условиями поступления.