Scala-разработчик

Best Practice по Scala, подходам функционального программирования в Scala и самым мощным Scala-библиотекам

27 сентября

5 месяцев

Онлайн

Пн/Ср 20:00 Мск

Для кого этот курс?

Курс рассчитан на Java-разработчиков с опытом работы от 1 года либо для программистов с опытом работы на другом языке от трёх лет, знакомых с синтаксисом веб-приложений.

Необходимые знания

  • опыт разработки на Java от года и опыт разработки на других языках от 3 лет;
  • опыт работы с БД (SQL или NoSQL).

Будет плюсом

  • умение работать с CompletableFuture/Promise, Optional/Maybe, библиотекой коллекций: для Java — Stream API, для C# — LINQ, для Rust — коллекции в Rust, для любого другого ЯП необходимо понимание, что такое flatMap (или аналогичная операция в соответствующем ЯП);
  • опыт работы с REST и json.
При поддержке
логотип партнера

Что вам даст этот курс?

Углубленный курс по Scala, в котором вы получите практические знания в популярных технологиях Scala, подходах функционального программирования и познакомитесь с самыми мощными Scala-библиотеками. 

Вы научитесь:

  • Использовать Scala-стек технологий для создания веб-сервисов
  • Применять приемы функционального программирования в SOLID-приложениях
  • Создавать приложения на основе функционального подхода на примере ZIO
  • Проектировать микросервисы с использованием CQRS/ES на основе Akka
  • Создавать модульные тесты на основе инвариантов свойств (property-based tests)

Почему стоит учиться на курсе:

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

Процесс обучения

Все обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в слаке курса, сдача домашних работ и получение обратной связи от преподавателя. Вебинары идут дважды в неделю по 2 ак. часа и сохраняются и в записи в вашем личном кабинете. Домашнее задание выдается в среднем раз в 2 недели, а его выполнение занимает 3-5 часов. Возникающие вопросы по материалам лекций, домашним заданиям и по выпускному проекту вы сможете задавать преподавателю в слаке или во время вебинаров. Курс длится 4 месяца, а финальный отводится для выполнения проектной работы, досдачи домашних заданий и вопросов преподавателям.

Трудоустройство

  • Карьерные мероприятия в сообществе
    Публичный разбор резюме
    Публичное прохождение собеседования и воркшопы
  • Разместите свое резюме в базе OTUS и сможете получать приглашения на собеседования от партнеров

Работодатели курса

Формат обучения

Интерактивные вебинары


2 занятия по 2 ак. часа в неделю. Доступ к записям и материалам остается у вас навсегда

Практика


Домашние задания + проектная работа, которая усилит ваше портфолио

Активное комьюнити


Общайтесь с преподавателями голосом на вебинарах и в Telegram-чате

Программа

Cинтаксические конструкции Scala, асинхронность

В данном модуле будут рассмотрены следующие темы: - Введение в Scala - Основные языковые конструкции, синтаксис - Знакомство с функциональными особенностями языка Scala - Библиотека коллекций - Асинхронность силами стандартной библиотеки (Scala Future)

Тема 1: Обзор языковых конструкций. Интерфейсы, классы, методы

Тема 2: Обзор языковых конструкций. Интерфейсы, классы, методы. Часть 2

Тема 3: Функциональные конструкции языка scala

Тема 4: Алгебраические типы данных и сопоставление с образцом

Тема 5: Библиотека коллекций

Тема 6: Библиотека коллекций. Часть 2

Тема 7: Асинхронные операции, обработка исключений, неявные параметры

Тема 8: Асинхронные операции, обработка исключений, неявные параметры. Часть 2

Advanced Scala concepts, знакомство с концепциями функционального программирования

В данном модуле будут рассмотрены следующие темы: - Продвинутые возможности языка 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

Тема 4: Абстрагирования контекстной информации в Scala 3

Тема 5: Сats core, data types and type classes

Функциональное программирование и эффекты в Scala. Подробное знакомство с ZIO и Cats effect

В данном модуле будут рассмотрены следующие темы: - Функциональное программирование на Scala с «эффектами» - Введем понятие функционального эффекта - Познакомимся с принципами функционального дизайна для некой предметной области - Рассмотрим такие библиотеки, как ZIO и Cats effect.

Тема 1: Введение в функциональные эффекты

Тема 2: ZIO эффект, конструкторы, базовые операции

Тема 3: ZIO модель ошибок

Тема 4: ZIO асинхронность и паралеллизм

Тема 5: ZIO работа с ресурсами

Тема 6: ZIO Environment и его место в DI

Тема 7: ZIO ZLayer, ZIO сервисы, тестирование ZIO программ

Тема 8: ZIO дополнительные типы данных

Тема 9: Cats effects: ведение, основные типы данных

Тема 10: Cats effects: работа с ресурсами

Тема 11: Cats effects: конкурентность

Scala библиотеки fs2 и http4s. Работа с БД

В данном модуле будут рассмотрены следующие темы: - Популярные библиотеки из FP экосистемы Scala - Web + Доступ к БД - Функциональные стримы на примере FS2 - Работа с http с помощью http4s - Реализация взаимодействия с БД JDBC, Scalike, Slick

Тема 1: Функциональные стримы на примере fs2

Тема 2: Введение в http4s + DSL

Тема 3: http4s middleware + аутентификация

Тема 4: http4s стриминг + работа с JSON

Тема 5: Доступ к БД

Akka и CQRS/ES с использованием Akka

В данном модуле будут рассмотрены следующие темы: - Модель акторов и ее реализация на Scala - Библиотека Akka - Событийные архитектуры - Паттерн с разделения команд и запросов (CQRS)

Тема 1: Акка

Тема 2: Akka акторы

Тема 3: Обработка потоков данных

Тема 4: Событие как основной тип данных в системе

Тема 5: Разделение команд и запросов

Тема 6: Query часть CQRS

Тема 7: ES в кластере

Проектная работа

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

Тема 1: Выбор темы и организация проектной работы

Тема 2: Защита проектных работ

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

Выпускной проект


За время обучения вы разработаете отказоустойчивый, масштабируемый веб-сервис на Scala: REST API + Back End + базы данных.

На первом этапе — классическое SOLID-приложение в 5 классов и хранением данных в памяти.
Средний уровень — приложение с FP-подходом (ZIO), расширенной функциональностью, простой схемой в SQL-базе данных.
Итоговая версия — микросервисы с отказоустойчивостью, ES на основе Akka Persistence, CQRS для сложных запросов.

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

Руководитель курса

Алексей Воронец

3 года в Otus
150 занятий
229 студентов

Руководитель разработки в направлении "Решения в образовании" в компании NAUMEN. Опыт профессиональной разработки 14 лет. Последние 9 лет — это Scala. До этого были Java, JavaScript, когда-то знал PHP. Работал в разных странах и в разных командах. География: Беларусь, Франция, Россия Имеет опыт проектной и продуктовой разработки в B2B и B2C сегментах. Участвовал в проектировании, разработке и запуске различных проектов для Минобрнауки, Сколково, Росатома, крупных федеральных вузов. Проектировал, разрабатывал и запускал платформу RUSSIA.STUDY Сфера интересов: Scala, функциональное программирование, архитектура приложений.

Преподает на курсах

  • Scala-разработчик
  • Scala Developer для СЦР

Валентин Шилин

Deutsche Telekom IT GmbH

Старший программист/аналитик данных

2 года в Otus
52 занятия
294 студента

Более 15 лет программирования на С++, С#, JavaScript, Python, Scala, Java. Эксперт в обработке больших данных с помощью Scala/Spark и Hadoop Cloudera. Проекты: - автоматизация документооборота для скандинавских стран в составе команды Aditro (10-15 человек); - автоматизация метеорадарной станции (программно-аппаратный комплекс управления метеорадаром MRL5) для активного воздействия на погоду (Болгария- Аргентина) (20 человек); - различные проекты от стартапов до крупных химических предприятий (Eurofins) в Германии с составом команды от 3 до 50 человек. Текущий проект: обработка сверхбольших данных DSL-метрик и прогнозирование потенциальных проблем на линиях связи в Deutsche Telekom. Образование: Прикладная математика и физика, СПбГУ ПM-ПУ Otus Certified Educator

Преподает на курсах

  • Scala-разработчик
  • Spark Developer
  • Apache Kafka

Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания

Прошедшие
мероприятия

Валентин Шилин
Открытый вебинар
Пишем REST API на Scala и http4s
Алексей Воронец
Открытый вебинар
Эффекты в Scala
Для доступа ко всем прошедшим мероприятиям необходимо пройти входное тестирование
Возможность пройти вступительное тестирование повторно появится только через 2 недели
Результаты тестирования будут отправлены вам на email, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!

Корпоративное обучение для ваших сотрудников

Отус помогает развивать высокотехнологичные Команды. Почему нам удаётся это делать успешно:
  • Курсы OTUS верифицированы крупными игроками ИТ-рынка и предлагают инструменты и практики, актуальные на данный момент
  • Студенты работают в группах, могут получить консультации не только преподавателей, но и профессионального сообщества
  • OTUS проверяет знания студентов перед стартом обучения и после его завершения
  • Простой и удобный личный кабинет компании, в котором можно видеть статистику по обучению сотрудников
  • Сертификат нашего выпускника за 5 лет стал гарантом качества знаний в обществе
  • OTUS создал в IT более 120 курсов по 7 направлениям, линейка которых расширяется по 40-50 курсов в год

Отзывы

Константин -OP

03.02.2021
Цель обучения была систематизировать и углубить знания по Scala для трудоустройства. До этого пытался сам изучать язык но слишком много новых концепций взрывали мозг и прогресс стопорился. Нашёл курсы по Scala от профессиональных разработчиков, что конечно же подкупило. Кроме того, понравилась ширина охвата тем и материала. По итогу, ожидания оправдались: - опытный преподаватель Семен с большим опытом разработки, бодро отвечал на все вопросы и жег большим количеством и темпом подачи материала, давал много дополнительных ссылок для изучения. - с другой стороны, для мозга не привыкшего к ФП, большое обилие функциональных концепций может быть тяжеловато, но тут каждый сам решает что ему важно. Добавить хотелось бы : большей структурированности подачи + более интересные домашки и финальный проект. Чтобы было интересно делать. Что дало обучение: усвоил базовые концепции Scala и сложил в голове более сложные темы, типа Akka и немного функциональных вещей из ZIO, cats. Отзыв писал по первому запуску курса, сейчас может уже все не так: курс переработали и сделали более продолжительным чтобы лучше уложилось в голове новые концепции. В любом случае спасибо команде Отуса и замечательным преподавателям которые очень стараются за продвижение крутых технологий, хотя, иногда ДЗ можно проверять и поживее;).

Александр Грачев

29.09.2021
Курс в целом понравился лекции по ZIO, Cats - огонь. Akka Typed + CQRS также заинтересовала после лекций преподавателя. К сожалению, темы рассмотренные на курсе слишком обширны, для полного охвата. По каждой можно составить отдельный курс. Что бы я посоветовал, прошлому себе :-) , перед началом курса - сосредоточится на одной теме, слушать лекции, читать по ней статьи, прорабатывать неясные моменты и чаще спрашивать преподавателя.

Александр Степанянц

25.12.2021
Отличный курс. Особенно понравились модули, посвященные функциональному программированию. Очень рекомендую.

Павел

15.12.2022
Курс понравился, ожидания оправдались. Информация подаётся в систематизированном виде. По итогу можно сказать, что прошёл основной roadmap по миру Scala, получил базис, теперь на этом базисе можно продолжать самостоятельное изучение. Преподавательский состав понравился, особенно запоминались занятия Алексея из-за чёткости и структурированности изложения материала и хорошей камеры :)

Сертификат о прохождении курса

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

После обучения:

  • заберете с собой полный комплект обучающих материалов: видеозаписи всех вебинаров, презентации к занятиям, а также решение задач и проектов в виде кода на GitHub и другие дополнительные материалы;
  • приобретете опыт enterprise-разработки на Scala;
  • получите сертификат о прохождении курса.

Частые вопросы

Что, если в середине курса я не смогу продолжать обучение?
У вас есть право одного бесплатного трансфера в другую группу.
Обязательно ли защищать выпускной проект?
Для получения сертификата OTUS необходимо сдать проект. Кроме того, проект необязательно защищать перед аудиторией, а можно сдать в чате с преподавателем.
Я могу вернуть деньги?
Да, вы можете сделать возврат средств пропорционально оставшимся месяцам обучения.