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

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

24 апреля

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 в сравнении с Scala 2, основные изменения, обзор

Тема 4: Сats core, data types

Тема 5: Cats 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 для сложных запросов.

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

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

4 года в Otus
206 занятий
275 студентов

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

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

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

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

Deutsche Telekom IT GmbH

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

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

Более 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

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

Ближайшие мероприятия

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

Эффекты в Scala на примере ZIO
Алексей Воронец
Узнаем о предпосылках и истории возникновения ZIO. Сформируем представление, какие задачи решают так называемые "функциональные эффекты" в целом и ZIO в частности.
Попрактикуемся в создании и комбинировании ZIO-эффектов.

Занятие будет полезно Scala-разработчикам, которые пока не знакомы с концепцией функционального программирования эффектов в целом или с ZIO в качестве представителя этой концепции.
...
25 марта в 17:00
Открытый вебинар
Основы и особенности языка Scala
Алексей Воронец
Обсудим синтаксические особенности языка. Узнаем какие возможности языка позволяют комфортно использовать подходы функционального программирования. Попрактикуемся в написании функций и методов, создании иммутабельных конструкций, получим представление о возможностях композиции.

Занятие будет полезно тем, кто не знаком со Scala и только присматривается к переходу на Scala с других языков.
...
10 апреля в 17:00
Открытый вебинар
Простой Web-сервис на ZIO. zio-http + zio + quill
Алексей Воронец
22 апреля в 17:00
Открытый вебинар

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

Валентин Шилин
Открытый вебинар
Пишем акторы Akka на Scala
Алексей Воронец
Открытый вебинар
Type classes в Scala
Оставьте заявку, чтобы получить доступ ко всем записям прошедших мероприятий. Записи всех мероприятий появятся в этом блоке

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

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

Отзывы

Антон Лыткин

29.09.2023
Напишу свой отзыв здесь в целом по курсу. Итоговой опрос уже прошел, там все детали описал. Хотел бы выразить огромную блогадрность организаторам и преподавателям Алексею Воронцу и Валентину Шилину. Курс действительно мощный, охватывает много. От части это и его минус, потому что части тем оставили вопросы, но вектор есть, куда копать понятно, иначе весь курс занял бы год, а то и больше. В целом список тем актуальный, темы раскрыты, но с разной степенью качества, тоже надо признать. Остался очень доволен темой с zio, по-другому взглянул на concurenncy, поигрался со scala 3, до этого ее вообще не видел, систематизировал для себя эффекты, монады, функторы и прочую местную экзотику. Курс однозначно пошел на пользу, апгрейднул навыки и позволил выйти за пределы стандартной скалы. Все то, за чем я шел на курс, я получил.

Денис Сладковский

25.09.2023
Отличный курс! Не только помог привести текущие знания по scala в порядок но и освоить довольно сложную, для меня тему - функциональное программирование. Большое спасибо преподавателям за работу над этим курсом)

Павел

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

Максим Петров

09.12.2022
Обучение проходило хорошо. Курс по наполнению понравился. Но есть проблемы с подачей материала у Павкина и не много у Опольского. Павкин - мало структурности в подаче, перепрыгивает с мысли на мысль, видно что знаний много, но правильно поделиться не может. В этом отношении отличная подача материала происходит у Воронец Алексея. Но в общим знаний дали много, узнал новое и теперь собираюсь это применять в своём новом проекте.

Алексей Аносов

31.05.2022
Хороший курс с достаточно широким охватом технологий для начинающего скала разработчика. Все было неплохо, пока не дошли до акторов. Преподаватель явно вел свою первую группу, материал был еще не отработан, примеры кода не работали и большое количество времени тратилось на отлаживание, периодически сбивались с темы из-за чего очень сложно было уследить за ходом объяснения. Но главное это живое общение с преподавателем, озвучено было много библиотек и технологий, курс есть, а остальное непонятное можно уже догуглить или в документации дочитать.

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

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

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

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

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

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

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

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

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

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

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

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