About the course
Scala is a sophisticated language that seamlessly integrates Object-Oriented and Functional programming on the Java Virtual Machine (JVM). This 4-day intensive course provides a deep dive into Scala's powerful type system and concise syntax, designed to build robust, concurrent, and highly scalable applications.
We move from the fundamental syntax and the "Scala way" of thinking to advanced concepts like pattern matching, higher-order functions, and implicits. Participants will learn how to leverage Scala’s strong static typing to catch errors early, while utilizing its functional capabilities to write cleaner, more maintainable code. Through extensive hands-on labs, we explore the modern ecosystem - including Scala 3 features - to ensure your team is equipped for real-world enterprise development.
Instructor-led online and in-house face-to-face options are available - as part of a wider customised training programme, or as a standalone workshop, on-site at your offices or at one of many flexible meeting spaces in the UK and around the World.
-
- Think Functionally: Apply pure functions, immutability, and higher-order functions to solve complex problems.
- Master the Type System: Utilize traits, case classes, and generics for type-safe application design.
- Implement Pattern Matching: Use Scala’s advanced pattern matching to deconstruct data structures elegantly.
- Handle Concurrency: Write safe, multi-threaded code using Futures and modern concurrency patterns.
- Interoperate with Java: Seamlessly integrate Scala code with existing Java libraries and frameworks.
- Modernize with Scala 3: Understand the key improvements and syntax changes in the latest version of the language.
-
This 4-day intensive hands-on training course is designed for developers who want to learn the Scala programming language for building modern, scalable, and concurrent applications. It is ideal for:
Java Developers: Looking to evolve their skills with a more concise and powerful JVM language.
Data Engineers: Working with Big Data frameworks like Apache Spark where Scala is the primary language.
Backend Engineers: Designing high-concurrency systems and microservices.
-
Participants should have:
Object-Oriented Foundation: Solid experience in an OO language (Java is preferred, but C# or C++ is acceptable).
JVM Basics: Understanding of how the Java Virtual Machine operates is helpful.
Tools: Basic familiarity with the command line and an IDE (IntelliJ IDEA with the Scala plugin is recommended).
We can customise the training to match your team's experience and needs - with more time and coverage of fundamentals for newer developers, for instance.
-
This Scala course is available for private / custom delivery for your team - as an in-house face-to-face workshop at your location of choice, or as online instructor-led training via MS Teams (or your own preferred platform).
Get in touch to find out how we can deliver tailored training which focuses on your project requirements and learning goals.
-
Scala Fundamentals
The Scala Philosophy: Multi-paradigm design and the JVM advantage.
Basics & Syntax: Expressions, values (val), variables (var), and basic types.
Methods & Functions: Defining logic and understanding the "everything is an expression" rule.
The REPL & Build Tools: Working with sbt (Scala Build Tool).
Object-Oriented Scala
Classes & Objects: Constructors, fields, and singleton objects.
Traits: Scala’s powerful alternative to interfaces (Mixins).
Case Classes: Modeling data concisely with built-in equality and serialization.
Packages & Imports: Organizing code effectively in a Scala project.
Functional Programming Essentials
Functions as First-Class Citizens: Higher-order functions and anonymous functions (lambdas).
Immutability: Why it matters and how to work with immutable collections.
Collections API: Mastering map, filter, fold, and flatmap.
Error Handling: Moving beyond exceptions with Option, Try, and Either.
Advanced Pattern Matching & Types
Pattern Matching: Deconstructing case classes, guards, and nested patterns.
Generics: Understanding Type Parameters and Bounds.
Contextual Abstractions: Introduction to "Implicits" (and the new given/using syntax in Scala 3).
Type Aliases & Enums: Modern data modeling techniques.
Concurrency & Performance
Asynchronous Programming: Working with Futures and Promises.
Execution Contexts: Managing thread pools for non-blocking I/O.
Parallel Collections: Easily distributing workloads across CPU cores.
JVM Performance Tuning: Best practices for Scala on the JVM.
The Modern Ecosystem & Scala 3
Scala 3 Highlights: Significant syntax improvements and the new "Quiet" syntax.
Java Interoperability: Calling Java from Scala and vice versa.
Testing: Using ScalaTest for unit and integration testing.
Deployment: Packaging applications for production.
-
Scala-Lang.org: The official website for the Scala programming language, offering documentation, news, and downloads.
The Scala Book: An official, freely available online book that provides a comprehensive introduction to Scala.
Scala Documentation: The main hub for all Scala documentation, including the API reference.
SBT (Scala Build Tool): The primary build tool for Scala projects. Documentation is essential for managing dependencies and building code.
Akka Documentation: If covering Akka Actors, this is the official documentation.
Scala Standard Library API: Documentation for the built-in types and collections, including Futures and Promises.
ScalaTest Documentation: Documentation for the ScalaTest testing framework.
Awesome Scala: A curated list of Scala frameworks, libraries, software, and resources.
Trusted by