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

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

24 апреля

5 месяцев

Онлайн

Пн/Ср 20:00 Мск

Где применяется Scala?

Scala создали на базе Java, но, в отличие от своего «родителя», Scala получился лаконичным языком программирования. Языки не взаимоисключают друг друга: если вы пишите на Scala, можете использовать части кода на Java. На Scala разрабатывают микросервисы, инструменты для бизнес-аналитики, машинного обучения, обработки данных, а ещё – социальные сети.

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

  • Для java-разработчиков с опытом от 1 года
  • Для разработчиков на других языках с опытом от 3 лет

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

  • опыт разработки на Java или других языках
  • опыт работы с БД (SQL или NoSQL)
  • знакомство с синтаксисом веб-приложений

Будет плюсом

  • умение работать с CompletableFuture/Promise
  • умение работать с Optional/Maybe
  • умение работать с библиотекой коллекций: для Java –Stream API; для C# – LINQ; для Rust – коллекции в Rust; для любого другого языка программирования – понимать, что такое flatMap или аналогичная операция в соответствующем языке
  • опыт работы с REST и json
При поддержке
логотип партнера
«Оцените свой уровень знаний для обучения на этом курсе» и кнопка «Пройти тест»

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

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

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

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

Авторская программа

Мы составили программу с учётом требований работодателей. Модули курса помогут вам погрузиться в реальные задачи enterprise-разработки

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

У нас нет предзаписанных уроков!


Занятия в OTUS – это онлайн-вебинары. Преподаватели-практики помогут погрузиться в теорию, обучат на реальных примерах, расскажут о необходимых в работе инструментах. Вы всегда сможете задать вопрос и получить обратную связь.
И самое главное – сможете практиковаться!

Будьте вне конкуренции


Scala постепенно набирает популярность. Например, язык уже внедрили Twitter и Coursera

Учитесь у экспертов


Перенимайте опыт руководителей отделов разработки и старших программистов из крупных компаний

Дополните портфолио


Защитите собственный проект и используйте, как преимущество на собеседовании

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

Многие студенты еще во время прохождения первой части программы находят или меняют работу, а к концу обучения могут претендовать на повышение в должности
  • Разместите резюме в базе OTUS: так наши партнёры смогут пригласить вас на интервью
  • Участвуйте в карьерных мероприятиях: там мы разбираемся, как составить резюме
  • Проявите себя на занятиях и получите возможность пройти собеседование у партнёров 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: Обработка потоков данных

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

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

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

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

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

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

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

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

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

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


Вам предстоит создать отказоустойчивый, масштабируемый веб-сервис на Scala: REST API + backend + базы данных.

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

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

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

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

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

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

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

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

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

Deutsche Telekom IT GmbH

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

3 года в Otus
88 занятий
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
Алексей Воронец
Обсудим синтаксические особенности языка. Узнаем какие возможности языка позволяют комфортно использовать подходы функционального программирования. Попрактикуемся в написании функций и методов, создании иммутабельных конструкций, получим представление о возможностях композиции.

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

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

Алексей Воронец
Открытый вебинар
Эффекты в Scala на примере ZIO
Валентин Шилин
Открытый вебинар
Пишем акторы Akka на 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 сдавать проект необязательно (в сертификате будет отражено кол-во выполненных домашних работ). Для получения Удостоверения о повышении квалификации необходимо выполнить итоговый проект. Кроме того, проект необязательно защищать перед аудиторией, а можно сдать в чате с преподавателем.
Я могу вернуть деньги?
Да, мы можем вернуть деньги за то время, которое вы ещё не успели отучиться. Например, если курс длится пять месяцев, а вы отучились один, мы вернём деньги за оставшиеся четыре месяца.
Обязательно ли выполнять домашние задания? Кто проверяет домашние задания и итоговый проект?
Да, если вы действительно хотите повысить свои навыки программирования на Scala. На все задания развернутую обратную связь дают наши преподаватели и наставники. При желании вы можете защитить свой итоговый проект перед руководителем и преподавателями курса.
Можно ли задавать вопросы?
Да, даже нужно! Вы можете задавать преподавателю вопросы по содержанию во время онлайн-вебинара, в закрытом Telegram-чате или в чате по ДЗ. На организационные вопросы вам всегда поможет ответить коммьюнити-менеджер курса.
Насколько сложно учиться?
Курс подходит для всех, кто имеет опыт разработки на Java, Scala или других языках программирования. Для успешного прохождения обучения необходимо приложить усилия и старания, в т.ч. и при самостоятельном изучении материалов. Будьте готовы тратить на обучение и выполнение домашних заданий от 6 до 12 часов в неделю.
Какой объем практики предусмотрен на курсе?
Больше 80%. Также во время обучения вам будут доступны дополнительные источники информации, богатый список литературы и референсов для ознакомления и углубления знаний, видеозаписи всех вебинаров занятий. А наши преподаватели всегда готовы поделиться с вами самыми актуальными материалами.