
This video provides an overview of the entire course.
Get set up with ammonite REPL and understand the basics of interacting with Scala there.
Set up a basic sbt project with some source files and understand basic sbt commands.
Set up dependencies to third-party libraries and publishing to a repository using sbt.
Set up a project that contains and depends on multiple subprojects with functionality that can be reused.
Import an existing sbt project from 1.4 into IntelliJ IDEA and interact with it, seeing some of the similarities and differences.
Understand what it means for everything to be an expression in the Scala language.
Understand the basic functionality of strings and numbers in Scala and compare to Java.
Understand how to define functions and how match statements interact with function definitions.
Understand what it means to avoid null and how the option type allows one to avoid nulls wherever possible.
Explore the basics of collections, including Scala’s idioms for iteration and per-element actions.
Gain an acquaintance with the for comprehension and how it simplifies and streamlines the operations discussed in section 2.5.
Explore the operations that collapse collections into single values of a different type and their variations.
Map basic object-oriented concepts to their Scala equivalents/implementations.
Understand more complex trait use cases and how they allow for multiple inheritance.
Explore Scala’s first-class support for singletons and some of their use cases.
This video provides an overview of the entire course.
In this video, we will review and understand the basics of pattern matching, including nested matches and alternates.
In this video, we will learn about the ways that pattern matching interacts with Seq, List, and varargs
This video will help us understand case classes and how they interact with pattern matches.
In this video, we will learn how try/catch statements leverage pattern matching in Scala.
In this video, we will understand how PartialFunctions leverage pattern matching to declare functions that don’t respond over their whole input range, and how to combine functions like this together.
In this video, we will learn to create custom matchers for use inside pattern matches.
This video will help us understand the basics of behavior-driven development and implementing it using specs2.
In this video, we will learn various spec assertion matchers available in specs2.
In this video, we will understand how to use mocks in specs2 via its integration with Mockito, and how to use mock matchers to assert on cross-object interactions.
In this video, we will understand the basics of generative testing and how this can be applied with specs2’s scalacheck integration.
In this video, we will learn to deal with test setup, teardown, and marking a spec as pending until a future fix makes it pass.
In this video, we will understand additional types of Scala collections.
In this video, we will learn the usefulness of builders for constructing immutable collections.
In this video, we will experiment with additional collection methods.
In this video, we will understand various sorting options for Scala collections.
In this video, we will perform side effects and pattern matches for comprehensions.
In this video, we will create traits that can be stacked to provide interlocking functionality.
In this video, we will implement functions with default arguments and pass-by-name arguments.
Scala is a powerful multi-purpose programming language with a simple object-oriented, functional style. Scala enables you to deconstruct data in intuitive and readable ways, letting you write safely in a few lines of code what other languages can take tens of buggy lines to get across. This 2-in-1 comprehensive course will help you master various concepts in Scala programming. Save time and trouble by using Scala to build object-oriented, functional, reactive, and concurrent applications.
Contents and Overview
This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Scala Beginner Programming Recipes, shows core language principles covering topics such as strings, classes, types, methods, and arrays. From there, you'll learn about functional programming techniques and how to handle files and processes. You'll go on to master concurrency in Scala by making use of the Akka framework. You'll learn about working with databases, and then about Reactive programming in Scala and how to use it to build robust microservices and distributed systems. You'll also use the Scala REPL to achieve a better feedback mechanism.
The second course, Scala Intermediate Recipes, you’ll get a quick tour into testing will introduce the specs2 library and how to use it to do behavior-driven development in Scala. Then we'll dig into Scala's collections some more; Scala's collections library is vast, and holds many powerful tools for dealing with data. Finally, we'll go through a few tricks that let you get readable and type-safe frameworks in place to describe your domain.
By the end of this training program, you will be well versed with the concepts of Scala and will be able to build highly scalable and distributed, microservice based applications.
About the Authors
Antonio Salazar Cardozo is a developer who has led small teams from his classes at Georgia Tech and
through each company he has contributed to. He is a software pragmatist and perfectionist who values
great software that is written for humans first, and loves to help teams find the development and interaction styles that make them deliver the best software to solve the problems they are solving. Between startups and larger companies, he has worked on most aspects of web and non-web systems, and loves to see how each piece of software is received and how it can improve. When he's not leaving honest, extensive code review, he's been known to travel and enjoys visiting both new and old places far from home.