Курс обновлен
Best Practice по Scala, подходам функционального программирования и самым мощным Scala-библиотекам
29 апреля
4 месяца
Онлайн
Пн/Ср 20:00 Мск
Scala создали на базе Java, но, в отличие от своего «родителя», Scala получился лаконичным языком программирования. Языки не взаимоисключают друг друга: если вы пишете на Scala, можете использовать части кода на Java. На Scala разрабатывают микросервисы, инструменты для бизнес-аналитики, машинного обучения, обработки данных, а ещё — социальные сети.


Вы изучите популярные технологии Scala, освоите подходы функционального программирования, а также познакомитесь с мощными библиотеками.
Мы составили программу курса «Scala-разработчик» с учётом требований работодателей. Модули курса помогут вам погрузиться в реальные задачи enterprise-разработки
У нас нет предзаписанных уроков.
Занятия в OTUS – это онлайн-вебинары. Преподаватели-практики помогут погрузиться в теорию, обучат на реальных примерах, расскажут о необходимых в работе инструментах. Вы всегда сможете задать вопрос и получить обратную связь.
И самое главное — сможете практиковаться!
Scala постепенно набирает популярность: язык уже внедрили Twitter и Coursera
Перенимайте опыт руководителей отделов разработки и старших программистов из крупных компаний
Защитите собственный проект и используйте, как преимущество на собеседовании
2 онлайн-занятия по 2 академических часа в неделю, вечный доступ к обучающим материалам
Итоговая проектная работа усилит знания, а её успешная защита — откроет новые карьерные возможности
Общайтесь с преподавателями на вебинарах, в закрытом телеграм-чате, при проверке домашних заданий
В данном модуле будут рассмотрены следующие темы: - Введение в Scala - Основные языковые конструкции, синтаксис - Знакомство с функциональными особенностями языка Scala - Библиотека коллекций - Асинхронность силами стандартной библиотеки (Scala Future)
Тема 1: Обзор языковых конструкций. Интерфейсы, классы, методы
Тема 2: Обзор языковых конструкций. Интерфейсы, классы, методы. Часть 2
Тема 3: Функциональные конструкции языка scala
Тема 4: Алгебраические типы данных и сопоставление с образцом
Тема 5: Библиотека коллекций
Тема 6: Библиотека коллекций. Часть 2
Тема 7: Асинхронные операции, обработка исключений, неявные параметры
Тема 8: Асинхронные операции, обработка исключений, неявные параметры. Часть 2
В данном модуле будут рассмотрены следующие темы: - Продвинутые возможности языка Scala - Типы высшего порядка - Scala implicits и type class паттерн - Начинаем знакомство с FP экосистемой Scala на примере библиотеки cats - Рассматрим основные структуры данных и type classes
Тема 1: Higher kind types, implicits, type classes. Часть 1
Тема 2: Higher kind types, implicits, type classes. Часть 2
Тема 3: Scala 3 в сравнении с Scala 2, основные изменения, обзор
Тема 4: Сats core, data types
Тема 5: Cats type classes
В данном модуле будут рассмотрены следующие темы: - Функциональное программирование на Scala с «эффектами» - Введем понятие функционального эффекта - Познакомимся с принципами функционального дизайна для некой предметной области - Рассмотрим такие библиотеки, как ZIO и Cats effect.
Тема 1: Введение в функциональные эффекты
Тема 2: ZIO эффект, конструкторы, базовые операции
Тема 3: ZIO модель ошибок
Тема 4: ZIO асинхронность и паралеллизм
Тема 5: ZIO работа с ресурсами
Тема 6: ZIO Environment и его место в DI
Тема 7: ZIO ZLayer, ZIO сервис паттерн
Тема 8: ZIO тестирование и дополнительные структуры данных
Тема 9: Cats effects: ведение, основные типы данных
Тема 10: Cats effects: работа с ресурсами
Тема 11: Cats effects: конкурентность
В данном модуле будут рассмотрены следующие темы: - Популярные библиотеки из FP экосистемы Scala - Web + Доступ к БД - Функциональные стримы на примере FS2 - Работа с http с помощью http4s - Реализация взаимодействия с БД JDBC, Scalike, Slick
Тема 1: Функциональные стримы на примере fs2
Тема 2: Введение в http4s + DSL
Тема 3: http4s middleware + аутентификация
Тема 4: http4s стриминг + работа с JSON
Тема 5: Доступ к БД
В данном модуле будут рассмотрены следующие темы: - Модель акторов и ее реализация на Scala - Библиотека Akka - Событийные архитектуры - Паттерн с разделения команд и запросов (CQRS)
Тема 1: Акка
Тема 2: Обработка потоков данных
Тема 3: Событие как основной тип данных в системе
Тема 4: Разделение команд и запросов
Тема 5: Query часть CQRS
Тема 6: ES в кластере
Заключительный месяц курса посвящен проектной работе. Свой проект — это то, что интересно писать слушателю. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.
Тема 1: Выбор темы и организация проектной работы
Тема 2: Защита проектных работ
Попробуйте себя в роли разработчика на Scala. Создайте отказоустойчивый, масштабируемый веб-сервис: REST API + backend + базы данных.
Первый этап: классическое SOLID-приложение в пять классов и с хранением данных в памяти.
Второй этап: приложение с FP-подходом (ZIO), расширенной функциональностью, простой схемой в SQL-базе данных.
Третий этап: микросервисы с отказоустойчивостью, ES на основе Akka Persistence, CQRS для сложных запросов
Naumen
Руководитель разработки департамента проектных решений и поисковых систем
Руководитель разработки департамента проектных решений и поисковых систем в компании Naumen. Опыт профессиональной разработки 14 лет. Последние 9 лет — это Scala. До этого были Java, JavaScript, когда-то знал PHP. Работал в разных странах и в разных командах. География: Беларусь, Франция, Россия Имеет опыт проектной и продуктовой разработки в B2B и B2C сегментах. Участвовал в проектировании, разработке и запуске различных проектов для Минобрнауки, Сколково, Росатома, крупных федеральных вузов. Проектировал, разрабатывал и запускал платформу RUSSIA.STUDY Сфера интересов: Scala, функциональное программирование, архитектура приложений.
Deutsche Telekom IT GmbH
Старший программист/аналитик данных
Более 15 лет программирования на С++, С#, JavaScript, Python, Scala, Java. Эксперт в обработке больших данных с помощью Scala/Spark и Hadoop Cloudera. Проекты: - автоматизация документооборота для скандинавских стран в составе команды Aditro (10-15 человек); - автоматизация метеорадарной станции (программно-аппаратный комплекс управления метеорадаром MRL5) для активного воздействия на погоду (Болгария- Аргентина) (20 человек); - различные проекты от стартапов до крупных химических предприятий (Eurofins) в Германии с составом команды от 3 до 50 человек. Текущий проект: обработка сверхбольших данных DSL-метрик и прогнозирование потенциальных проблем на линиях связи в Deutsche Telekom. Образование: Прикладная математика и физика, СПбГУ ПM-ПУ Otus Certified Educator
Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания
Бесплатный открытый вебинар – онлайн-занятие с преподавателем курса. На открытом вебинаре можно посмотреть, как проходит обучение, а ещё – узнать что-то ценное по интересующей теме. На занятии слушатели могут задавать ведущему вопросы
OTUS осуществляет лицензированную образовательную деятельность. В конце обучения вы получите сертификат OTUS о прохождении курса, а при выполнении проектной работы – удостоверение о повышении квалификации
Стоимость в рассрочку