Learn Scala (Best Scala Tutorials for Beginners)

Image source

Scala is a general-purpose programming language designed to provide support for functional programming. Scala source code is aimed to be compiled to Java bytecode, and it was designed to overcome some criticisms of Java. Scala furnishes language interoperability with Java, which means libraries in both languages can be referenced in both Scala or Java

How to learn Scala?

Scala has seen its fair share of fame as it has succeeded where Java and many others have failed. The compatibility with Java and interoperability make it a thriving language. While there are a huge number of resources available online to learn Scala programming, we bring to you the top 10 Scala tutorials recommended by the Hackr programming community. You can dig deeper into these, and more, Scala tutorials on Hackr Scala Tutorials List. There you can find how many upvotes does each tutorial got from the community or what are the specific filters like free tutorial, paid, book, video-based tutorial, for beginners or advanced developers.

1. Functional Programming Principles in Scala

The very popular course by Coursera will discuss the essential elements of functional programming and how functional programming is becoming the primary choice for industries around the world. The course aims to help you develop a solid foundation in reasoning in functional programming.

The course has been put together by the École Polytechnique Fédérale de Lausanne Research Institute in Switzerland and is taught by Professor Martin Odersky. The course is six weeks long and does not require a high-end commitment to complete. It consists of six modules, which cover concepts such as Functions, Evaluation, Data and Abstraction, Types and Pattern Matching and Lists among others.

2. Programming in Scala

The book ‘Programming in Scala’ by Martin Odersky, Lex Spoon, and Bill Venners —people involved directly in the development of Scala.

The book will introduce you to Scala programming and discuss the basic concepts of the same. The target audience for the book are beginners who wish to learn more about Scala. This book will not act as a stepping stone for programming but will discuss the concepts and features of the language.

3. Scala By Example

‘Scala by Example’ is a free to read online book created by Programming Methods Laboratory, EPF, Switzerland to help beginners and experts alike understand Scala and its concepts. The document consists of 17 chapters which follow a step-by-step learning process to help you make the most of it.

Beginning with the introduction of Scala, what follows are few examples to help you grasp the concepts. Some concepts covered in the online document are Expressions, Functions, Classes, Objects, Pattern Matching, Case Classes, Mutable State and Concurrency. The material is available for download in PDF format.

4. Scala School

‘Scala School’ began as a Twitter lecture series to help experienced engineers learn Scala and become skilled Scala programmers. As the lectures continued and a fair bit of audience was amassed, the lectures were collated and created into one epicentral document, which will help you brush up your knowledge of programming and become a proficient Scala programmer.

This tutorial focuses on the maintainability, clarity of expression, and leveraging the type system. The lessons cover concepts such as
Values, Functions, Classes, Lists, Maps, Partial Functions and much more.

5. Scala: Learn by Example

‘Scala: Learn by Example’ course by Udemy is perfect for programmers who have basic knowledge of programming, especially Java and wish to learn more about functional programming and Scala. It covers concepts such as Expressions, Statements, Functions, Collections, Classes, and Objects.

The course, true to its name, offers 65 examples to help you learn as you go and get practical knowledge while you are gathering the theoretical knowledge. The course includes 72 lectures included in nearly 7 hours of video, along with 127 downloadable resources and access on mobile and TV. A few topics that are included in the course:

  • The Big Ideas: Before we get to the how we better understand the why — this course will help clarify why we even need Scala when Java serves us so well
  • The Little Details That Matter: Pattern Matching, If Expressions, For Loops & Yield: Java has if-statements, while Scala has if-expressions. Differences like these matter, this course will cover them.
  • First Class Functions are perhaps the most dramatic new feature of Scala — the foundation of functional programming support.
  • Collections — Lists, Options, the Details of fold/reduce/shift in Scala are yet another bit of the language that differs significantly from other traditional object-oriented languages. We will spend a lot of time on these topics too.
  • Classes, Companion Objects, Traits, Self Types, and Dependency Injection are Scala’s way of providing Object Oriented support. Some of these concepts are similar to Java — those we will skim over. Others are quite different — we will be sure to cover these in detail.

6. Scala Exercises

‘Scala Exercises’ is an online open-source project which aims to assist people to learn different technologies based in Scala. The project includes resources to:

· STD LIB: Scala fuses object-oriented and functional programming in a statically typed programming language.

· CATS: CATS library provides abstractions for functional programming in Scala

· Shapeless: Shapeless is a type-class and dependent-type based programming library for Scala.

· Doobie: Doobie is a pure functional JDBC layer for Scala.

· ScalaCheck: ScalaCheck is used as a tool for testing Scala and Java programs.

· Fetch: Fetch is a library used to simplify access to data

7. Scalable Programming with Scala and Spark

This course by Udemy will help you learn the concepts of Scala and Spark for data analytics, machine learning and data science. While Scala is a general-purpose programming language for functional programming, Spark will help you explore and play with large amounts of data through a single engine.

The course will be helpful for programmers who have beginner to intermediate experience of any objected-oriented programming (OOP) language, such as Java or C++. With 9 hours of video spreading over 55 lectures, the course will help you learn with the basic and core concepts of both technologies. A few topics from the tutorial:

Scala Programming Constructs: Classes, Traits, First Class Functions, Closures, Currying, Case Classes

  • Music Recommendations using Alternating Least Squares and the Audioscrobbler dataset
  • Dataframes and Spark SQL to work with Twitter data
  • Using the PageRank algorithm with Google web graph dataset
  • Using Spark Streaming for stream processing
  • Working with graph data using the Marvel Social network dataset

Spark basic and advanced features:

  • Resilient Distributed Datasets, Transformations (map, filter, flatMap), Actions (reduce, aggregate)
  • Pair RDDs , reduceByKey, combineByKey
  • Broadcast and Accumulator variables
  • Spark for MapReduce
  • The Java API for Spark
  • Spark SQL, Spark Streaming, MLlib and GraphX

8. Effective Scala

‘Effective Scala’ discusses the ‘best practices’in Scala programming. Therefore, it will be excellent for programmers who have a familiarity with the language and are not complete beginners. The resources are well-written in clear language and will discuss how to take advantage of simple language features which can prove to be useful in the long run. The platform discusses concepts such as Formatting, Types and Generics, Collections, Concurrency, Control structures, Object Oriented Programming and Java compatibility.

9. Introduction to Programming and Problem-Solving Using Scala

10. Atomic Scala

The book ‘Atomic Scala’ by Bruce Eckel and Dianne Marsh will help introduce Scala programming to both beginners in programming and those who have some programming experience. Featuring over 80 sections which cover nearly all significant concepts of Scala, the book is a comprehensive document for Scala programming. Some of the concepts covered by the book are Scripting, Classes & Objects, Imports & Packages, Constructors, Comprehensions, Inheritance and Lists & Recursion.

Information Source:

--

--

Hackr.io
Hackr.io: Find the best online programming courses & tutorials

Best online programming courses and tutorials recommended by the programming community