В ЕРАМ таких специалистов пока немного, но потребность растет: у нас появляется больше 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 с нуля, мы рекомендуем посмотреть курсы от создателя языка Мартина Одерски на Coursera: Functional Programming Principles in Scala и Functional Program Design in Scala.
- Книга Мартина Одерски «Programming in Scala». Сейчас вышло уже третье издание, бесплатно доступно только первое.
- Книга «Scala for the Impatient».
- Книга «Scala in Depth».
- Инструкции и справочные материалы можно найти на официальном сайте Scala.
Если вы хотите хотите учиться и делать проекты на Scala, следите за информацией о наших курсах и вакансиях.
Комментарии (5)
maxzh83
30.11.2017 14:12К сожалению, предложений по работе на Scala сильно меньше, чем на Java. Это либо столичные компании (Москва/Питер), либо удаленка. И это тоже тормозит погружение в увлекательный мир Scala, а тут еще и Котлин давит хайпом…
senia
30.11.2017 14:56Количество вакансий постепенно растет. В столицах несколько лет назад было не найти вакансию, сейчас же людей разбирают.
Может и другие города подтянутся.maxzh83
30.11.2017 15:17Я буду только рад такой тенденции. Просто пока может получиться замкнутый круг: в городе нет разработчиков — не открываются компании/направления, нет компаний — не появляются разработчики.
senia
30.11.2017 15:35Компании могут обучать, как это EPAM делает.
У программиста 3 выхода: смена города, удаленка и внедрение скалы на текущем рабочем месте. У меня третий вариант в свое время не прошел (не нашел единомышленников), но я видел команды, стартовавшие новый проект на scala по инициативе разработчиков.
Optik
Дабы разбавить «почти статью» хоть чем-то. Для новичков может быть неплохой отправной точкой по материалам изучения stackoverflow.com/tags/scala/info.