Фундамент отличает серьезного разработчика от слабого. Фундамент долго создается, но потом позволяет быстро расти.
У Junior и даже Middle разработчиков фундаментальные знания часто отсутствуют — не многие понимают и чувствуют алгоритмику, на которой строится весь аппарат программирования.
Практика показала, что на поверхностных навыках войти в профессию легко, но сделать второй шаг уже мучительно трудно — настолько выросли требования к специалистам и конкуренция в среде.
Поэтому мы создали увлекательный практический курс по алгоритмике для программистов, который даст основу тем, кто начинает, и поможет закрыть пробелы тем, кто уже в клубе. На курсе вам придется хорошенько поломать голову, выполнить массу креативных задач — легко не будет точно.
Как всегда, мы не обещаем прибыльную работу, быстрый успех и легкий старт. Но гарантируем трудную и интересную учебу, практику и (если приложите усилия) серьезные знания на выходе, которые заметно увеличат вашу конкурентоспособность.
● 7000 грн/мес. Оплачивайте курс помесячно или целиком (со скидкой 5%)
● 27 занятий. Все занятия проходят в формате вебинаров 2 раза в неделю: по вторникам в 19:30 и воскресеньям в 11:00
● Набор до 10 июня. Заявки принимаем до 10 июня, а занятия начнутся 16 июня
● 30 мест. Мы уделяем внимание каждому студенту, поэтому количество мест в группе ограничено
— Программистам с небольшим опытом в алгоритмах (или почти без него).
— Работающим программистам, которые хотят укрепить фундамент и заполнить пробелы, мешающие росту (в том числе — карьерному).
— Студентам первых курсов технических вузов для углубления знаний в сфере алгоритмики и программирования.
Senior Software Engineer/Machine Learning Engineer в компании Ring Ukraine. 5 лет опыта разработки высоконагруженных систем и алгоритмов для компании Dell. Курировал курс «Алгоритмы и структуры данных» в компании Softheme.
Акцент на практическом инструментарии, необходимый минимум теории. Постоянный фидбек. Масса практических заданий по работе с реальными задачами. Выпускной проект.
Введение. Математические основы анализа алгоритмов
Как, не запуская код, понять время его выполнения.
Модели вычислений. Работа с процессором и кэшом
Низкоуровневые оптимизации на примере библиотек Facebook/Twitter.
Задача поиска. Инвариант цикла
Бинарный поиск в продакшн: Git, Elasticsearch.
Корневая идея. Задача сортировки
Как были придуманы быстрые сортировки и как эти идеи помогают для решения других задач.
Куча. Сортировка кучей
Напишем простой event-loop и поговорим про реализацию key-value store с ttl.
Рекурсия. Хвостовая рекурсия
Использование tail recursion для уменьшения потребляемой памяти.
Амортизационный анализ. Связный список. Стек. Очередь
Поговорим о стратегиях реалокации данных и как в списке искать за log.
Переборные алгоритмы. Комбинаторные подсчеты
Задача о
Жадные алгоритмы
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.