Scala резко стала популярной несколько лет назад. Несмотря на это, на рынке технология остается редкой: если сравнивать количество вакансий для Scala-разработчиков и, например, тех, кто пишет на Java или Python, становится ясно – у первых выбор не так велик. Но это говорит и о том, что хорошие Scala-разработчики – на вес золота.

В ЕРАМ таких специалистов пока немного, но потребность растет: у нас появляется больше Scala-проектов. Мы даже открыли лабораторию по Scala в Петербурге, где сами учим разработчиков почти с нуля. Как туда попасть, кто осваивает Scala в ЕРАМ и какие проекты мы делаем – под катом.



Как изучают Scala в ЕРАМ


Начинающие разработчики

Когда спрос на Scala-разработчиков в ЕРАМ стал расти, мы прямо в петербургском офисе открыли лабораторию, где обучают технологии. Туда могут попасть начинающие разработчики, которые прошли наши вечерние курсы по Core Java. Кто-то после них продолжает изучать Java, кто-то выбирает лабораторию по Scala.

Занятия в лаборатории проходят каждый рабочий день в течение 4 месяцев. Мы выпустили уже две группы Scala-разработчиков, большинство из них сейчас работают на проектах, где используют эту технологию.

На курсах мы делаем упор на Scala в enterprise-разработке. Студенты учатся работать в команде – выстраивать коммуникацию и поддерживать общий стиль кода. Преподаватели рассказывают о хорошо зарекомендовавшем себя инструментарии, библиотеках и устраивают Code Review, чтобы убедиться, что код будет легко поддерживаться.

Поскольку проектов, где используют технологию, становится больше, мы планируем с декабря сделать курсы не разовыми, а постоянными. Каждый месяц из лаборатории на Scala-проекты мы хотим отправлять по 2-3 человека.

Опытные разработчики

Необходимости в курсах по Scala для них в ЕРАМ нет: при желании можно освоить язык самостоятельно, а потом перейти на Scala-проект – туда часто требуются опытные разработчики. В основном Scala начинают осваивать джависты, которые пишут веб-приложения и работают или хотят работать с Big Data. Тем, кто знаком с Java8, Lombok, понимает, что такое лямбды и привык использовать иммутабельные структуры данных, Scala, скорее всего, покажется более удобным способом писать код.

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

Где мы используем Scala


Scala у нас используют в проектах, связанных с Big Data и биоинформатикой. Вот несколько примеров:

  • Разработка приложения для обучения систем искусственного интеллекта. В том числе систем, которые анализируют новостные сайты. Чтобы система искуственного интелекта научилась строить логические заключения и предоставлять персонифицированную информацию, нужно обучать систему на большом количестве тестовых данных. Тестовые данные группируются по области интересов, и системам ИИ требуются все больше и больше наборов тестовых данных. Тут помогает объединение с помощью метаинформации – так получается группировать и находить нужные наборы намного быстрее и с большей точностью. Система, которую разрабатывают в ЕРАМ, позволяет формировать блоки тестовых данных, добавляя в них метаинформацию, благодаря чему системы искусственного интелекта обучаются быстрее. Команда проекта уже разработала архитектуру решения и приступила к реализации.
  • Разработка Data Lake для эффективного хранения данных в области биомедицины. Чтобы изобретать лекарства, биомедицинским компаниям нужно анализировать большие объемы данных, которые получают во время исследований. Часто перед ними возникает проблема: извлечь данные нужного формата непросто, они хранятся в разных форматах и в разных местах. Решение, которое разрабатывают в ЕРАМ, сможет решить эту проблему для крупной биомедицинской компании. Сейчас разработка Data Lake находится на стадии прототипа. В проекте используют Scala и новейшую версию Spark.
  • Разработка решения для оформления результатов медицинских исследований. Приложение разрабатывают для крупной лаборатории, оно позволяет оформлять финальные результаты тест-репортов после исследований. Речь идет о генетических тестах на выявление онко-маркеров. Проект уже полгода успешно работает в продакшене, сейчас команда совершенствует инструменты управления репортами, шаблонами и не только.
  • Создание системы, которая оценивает риски развития или осложения заболеваний. Она интегрируется с различными EMR (electronic medical record) системами. Речь идет о рисках развития или осложнения различных заболеваний. Риски рассчитывают на основе клинических данных, которые находятся в EMR-системе крупнейшей фармацевтической компании. Чтобы поддерживать различные варианты установки (от крупного дата-центра до локального компьютера) и соответствовать требованиям конечных пользователей (приложение уже развернуто в нескольких странах), приложение сделали максимально конфигурируемым. Из Scala-инструментов на проекте используют Akka, Akka HTTP, Akka Streams и Akka FSM. Команда планирует совершенствовать архитектуру решения и добавлять новые фичи.
  • Разработка решения, которое аккумулирует данные из отчетов медицинских исследований. Приложение для компании, где проводят онкологические тесты, изучают наследственность, репродуктивность, цитологию и не только. Решение предоставляет статистические и графические инструменты, с помощью которых можно анализировать эффективность исследований и выявлять перспективные направления развития бизнеса. В проекте используют Scala, Akka, Riak, ElasticSearch, AngularJS, TypeScript, LESS и Highcharts.

Что читать и смотреть


Мы советуем несколько книг и курсов, которые помогут самостоятельно изучать Scala:


Если вы хотите хотите учиться и делать проекты на Scala, следите за информацией о наших курсах и вакансиях.

Комментарии (5)


  1. Optik
    30.11.2017 13:00

    Дабы разбавить «почти статью» хоть чем-то. Для новичков может быть неплохой отправной точкой по материалам изучения stackoverflow.com/tags/scala/info.


  1. maxzh83
    30.11.2017 14:12

    К сожалению, предложений по работе на Scala сильно меньше, чем на Java. Это либо столичные компании (Москва/Питер), либо удаленка. И это тоже тормозит погружение в увлекательный мир Scala, а тут еще и Котлин давит хайпом…


    1. senia
      30.11.2017 14:56

      Количество вакансий постепенно растет. В столицах несколько лет назад было не найти вакансию, сейчас же людей разбирают.
      Может и другие города подтянутся.


      1. maxzh83
        30.11.2017 15:17

        Я буду только рад такой тенденции. Просто пока может получиться замкнутый круг: в городе нет разработчиков — не открываются компании/направления, нет компаний — не появляются разработчики.


        1. senia
          30.11.2017 15:35

          Компании могут обучать, как это EPAM делает.
          У программиста 3 выхода: смена города, удаленка и внедрение скалы на текущем рабочем месте. У меня третий вариант в свое время не прошел (не нашел единомышленников), но я видел команды, стартовавшие новый проект на scala по инициативе разработчиков.