
Scala - это язык программирования общего назначения, предназначенный для поддержки функционального программирования. Исходный код Scala предназначен для компиляции в байт-код Java, и он был разработан, чтобы преодолеть некоторые критические замечания в адрес Java. Scala обеспечивает языковую совместимость с Java, что означает, что на библиотеки на обоих языках можно ссылаться как в Scala, так и в Java.
Как изучить Scala?
Scala заслужила свою долю славы, поскольку преуспела там, где Java и многие другие потерпели неудачу. Совместимость с Java и возможность взаимодействия делают его процветающим языком. Несмотря на то, что в Интернете доступно огромное количество ресурсов для изучения программирования на Scala, мы предлагаем вам 10 лучших руководств по Scala, рекомендованных сообществом программирования Hackr. Вы можете глубже изучить эти и другие руководства по Scala в списке Scala Tutorials Hackr. Там вы можете узнать, сколько голосов за каждое руководство было получено от сообщества, или какие конкретные фильтры, такие как бесплатное учебное пособие, платное руководство, книга, видеоурок для начинающих или продвинутые разработчики.
1. Принципы функционального программирования в Scala
В очень популярном курсе Coursera будут обсуждаться основные элементы функционального программирования и то, как функциональное программирование становится основным выбором отраслей по всему миру. Курс направлен на то, чтобы помочь вам развить прочную основу для рассуждений в области функционального программирования.
Курс был составлен Исследовательским институтом Федеральной политехнической школы Лозанны в Швейцарии и преподается профессором Мартином Одерски. Курс рассчитан на шесть недель и не требует серьезных обязательств. Он состоит из шести модулей, которые охватывают такие концепции, как функции, оценка, данные и абстракция, типы и сопоставление с образцом и списки среди других.
2. Программирование на Scala

Книга «Программирование на Scala» Мартина Одерски, Лекса Спуна и Билла Веннерса - людей, непосредственно участвовавших в разработке Scala.
Книга познакомит вас с программированием на Scala и обсудит его основные концепции. Целевая аудитория книги - новички, желающие больше узнать о Scala. Эта книга не станет отправной точкой для программирования, но будет обсуждать концепции и особенности языка.
3. Скала на примере
«Scala by Example» - это бесплатная онлайн-книга, созданная Лабораторией методов программирования, EPF, Швейцария, чтобы помочь как новичкам, так и экспертам понять Scala и ее концепции. Документ состоит из 17 глав, в которых описан пошаговый процесс обучения, который поможет вам извлечь из него максимум пользы.
Ниже приведены несколько примеров, которые помогут вам понять концепции, начиная с введения Scala. Некоторые концепции, описанные в онлайн-документе, включают выражения, функции, классы, объекты, сопоставление с образцом, классы регистра, изменяемое состояние и параллелизм. Материал доступен для скачивания в формате PDF.
4. Scala School.
«Школа Scala» началась как серия лекций в Твиттере, чтобы помочь опытным инженерам изучить Scala и стать квалифицированными программистами на Scala. По мере того, как лекции продолжались и аудитория собиралась, лекции были сопоставлены и объединены в один эпицентральный документ, который поможет вам освежить свои знания в области программирования и стать опытным программистом на Scala.
В этом руководстве основное внимание уделяется удобству сопровождения, ясности выражения и использованию системы типов. Уроки охватывают такие понятия, как
значения, функции, классы, списки, карты, частичные функции и многое другое.
5. Scala: учимся на примере

Курс «Scala: Learn by Example» от Udemy идеально подходит для программистов, которые имеют базовые знания программирования, особенно Java, и хотят больше узнать о функциональном программировании и Scala. Он охватывает такие концепции, как выражения, утверждения, функции, коллекции, классы и объекты.
Курс, соответствующий своему названию, предлагает 65 примеров, которые помогут вам учиться на ходу и получать практические знания, пока вы собираете теоретические знания. Курс включает 72 лекции, включенные в почти 7 часов видео, а также 127 загружаемых ресурсов и доступ на мобильном телефоне и телевидении. Несколько тем, которые включены в курс:
- Основные идеи: прежде чем мы перейдем к тому, как лучше понять, почему - этот курс поможет прояснить, зачем нам вообще нужен Scala, когда Java так хорошо нам служит.
- Важные мелкие детали: сопоставление с образцом, выражения if, циклы для циклов и выход: в Java есть операторы if, а в Scala - выражения if. Подобные различия имеют значение, этот курс их рассмотрит.
- Функции первого класса - это, пожалуй, самая впечатляющая новая функция Scala - основа поддержки функционального программирования.
- Коллекции - списки, параметры, детали сворачивания / уменьшения / сдвига в Scala - это еще одна часть языка, которая значительно отличается от других традиционных объектно-ориентированных языков. Мы тоже уделим этим темам много времени.
- Классы, сопутствующие объекты, черты, самотипы и внедрение зависимостей - это способ Scala для обеспечения объектно-ориентированной поддержки. Некоторые из этих концепций похожи на Java - их мы рассмотрим. Остальные совсем другие - мы обязательно рассмотрим их подробно.
6. Упражнения Scala

Scala Exercises - это онлайн-проект с открытым исходным кодом, цель которого - помочь людям изучить различные технологии, основанные на Scala. Проект включает ресурсы для:
· STD LIB: Scala объединяет объектно-ориентированное и функциональное программирование в статически типизированном языке программирования.
· CATS: библиотека CATS предоставляет абстракции для функционального программирования на Scala.
· Shapeless: Shapeless - это библиотека программирования на основе классов и зависимых типов для Scala.
· Doobie: Doobie - это чисто функциональный уровень JDBC для Scala.
· ScalaCheck: ScalaCheck используется как инструмент для тестирования программ Scala и Java.
· Fetch: Fetch - это библиотека, используемая для упрощения доступа к данным.
7. Масштабируемое программирование с помощью Scala и Spark
Этот курс Udemy поможет вам изучить концепции Scala и Spark для анализа данных, машинного обучения и науки о данных. Хотя Scala - это язык программирования общего назначения для функционального программирования, Spark поможет вам исследовать большие объемы данных и работать с ними с помощью единого движка.
Курс будет полезен программистам, имеющим опыт работы с любым языком объектно-ориентированного программирования (ООП) от уровня новичка до среднего, например Java или C ++. Этот курс состоит из 9 часов видео и 55 лекций, которые помогут вам изучить базовые и основные концепции обеих технологий. Несколько тем из учебника:
Программные конструкции Scala: классы, свойства, функции первого класса, замыкания, каррирование, классы case
- Музыкальные рекомендации с использованием чередующихся наименьших квадратов и набора данных Audioscrobbler
- Dataframes и Spark SQL для работы с данными Twitter
- Использование алгоритма PageRank с набором данных Google Web Graph
- Использование Spark Streaming для потоковой обработки
- Работа с данными графиков с использованием набора данных социальной сети Marvel
Базовые и расширенные функции Spark:
- Устойчивые распределенные наборы данных, преобразования (карта, фильтр, плоская карта), действия (сокращение, агрегирование)
- Сопряжение RDD, reduceByKey ,commonByKey
- Переменные Broadcast и Accumulator
- Spark для MapReduce
- API Java для Spark
- Spark SQL, Spark Streaming, MLlib и GraphX
8. Эффективная Скала
«Эффективный Scala» обсуждает «передовой опыт» в программировании на Scala. Поэтому он отлично подойдет программистам, которые знакомы с языком, но не совсем новички. Ресурсы хорошо написаны понятным языком и обсуждают, как воспользоваться преимуществами простых языковых функций, которые могут оказаться полезными в долгосрочной перспективе. Платформа обсуждает такие концепции, как форматирование, типы и обобщения, коллекции, параллелизм, управляющие структуры, объектно-ориентированное программирование и совместимость с Java.
9. Введение в программирование и решение проблем с использованием Scala
10. Атомная Скала

Книга Брюса Экеля и Дайан Марш «Atomic Scala» поможет познакомить с программированием на Scala как новичкам в программировании, так и тем, кто имеет некоторый опыт программирования. Книга содержит более 80 разделов, охватывающих почти все важные концепции Scala, и представляет собой исчерпывающий документ по программированию на Scala. Некоторые из концепций, охватываемых книгой, - это сценарии, классы и объекты, импорт и пакеты, конструкторы, понимания, наследование и списки и рекурсия.
Источник информации: