Functional Scala Fundamentals

Gain knowledge and skills for writing quality functional Scala, with more productivity and confidence than ever before.

Book a Training


Most Scala developers come from an object-oriented background, so although they understand classes, methods, and inheritance, the functional side of Scala remains a mystery. Yet thoroughly understanding functional Scala is the key to unlocking Scala’s potential for writing robust and powerful code that is testable and maintainable.

In this course, developers will learn the foundations of functional Scala, including language features that are unique to functional Scala, core concepts in functional programming, and proven techniques for developing robust and powerful applications in functional Scala. Developers will leave the course with new knowledge and hands-on skills for writing quality functional Scala, with more productivity and confidence than ever before.

Are you interested in attending a private training course?

Register for Private Training

Are you interested in attending a public training course?

Register for Public Training

Who Should Attend

Scala developers who use Scala as a better object-oriented programming language, but who have not yet explored the functional potential of the programming language.


Basic knowledge of the Scala programming language, including classes, traits, and methods.


  • Immutable data
  • Pattern matching and destructuring assignment
  • Higher-order functions, including those in Scala collections
  • Using Option instead of nulls for greater type-safety
  • Using Either/Try instead of exceptions for greater type-precision
  • Basic functional data modeling with algebraic data types
  • Using recursion for data processing and transformation
  • Pushing side-effects out of business logic for greater testability
  • For comprehensions & flatMap for Either/Try/Future
  • Favoring composition over inheritance
Last year, we started using ZIO, as a superior alternative to tagless-final and Monad transformers. ZIO is a powerful effect monad with a lot of combinators, interop with important libraries, and new integrations with OpenTracing and logging. ZIO lets us focus on our business logic, making it easier to understand and test, and there is no doubt ZIO will be one of the significant parts of Scala infrastructure over the coming years!
Jan de Groot
DHL Parcel Netherlands - Head of Development

Related Courses

Functional Data Modeling

Learn how to use functional Scala to construct simple, precise, and flexible models of any business domain.

# fp
24 hours

A Crash Course in Functional Scala

Learn how functional Scala enables you to write better code, with high productivity and testability.

# fp
24 hours

Functional Design

Learn how to benefit from functional programming techniques across your application, in a way that’s highly accessible to the whole team and new hires.

# fp
24 hours

Book a Training