Get Good at Scala

This is a 3-day course teaching Scala from first principles. It is a basic course designed to introduce the students to Scala rather than teach advanced topics.

Course Outline

Day 1

Day one focuses on getting started with Scala and introduces the core concepts which we build on in days 2 and 3. As Scala is a Functional programming language we take a brief look at what Functional programming is with practical examples and learn what it means to program in a Functional way.

After that we take a look at the core concepts in Scala: variables, immutability, functions, objects and how to abstract over objects using classes.

  • Introductions
  • What Is Scala
  • Getting Started
  • Objects
  • Classes

Day 2

Day 2 builds upon what we learnt about objects and classes in day 1. We look at how to abstract over classes using traits, case classes and pattern matching before taking a look at how to model data using Algebraic Data Types.

Finally we take a peek at implicits and how they can be used to add features to classes that already exist. A feature often referred to as Monkey Patching in other languages.

  • Case Classes
  • Pattern Matching
  • Traits
  • Algebraic Data Types
  • Monkeys & more!

Day 3

The final day introduces the students to Scala's more functional features.

We take a detailed look at functions and some of their advanced features; higher-order functions, multiple parameter lists and currying. We also look at how to abstract functions over types using generics.

We then take a look at Monads by starting with a deep dive into Scala's collection library before introducing other, commonly used Monads; Option, Future, Either, Try etc. Finally we take a detailed look at for-comprehensions.

  • Functions Everywhere
  • Collections & Tuples
  • For Comprehension
  • Monadic Types

If you would like to book this course then please contact me