Training | Advanced Functional Programming with Scala and Cats

Training about how to explore advanced techniques in functional programming using Scala and Cats.

16 hours


This course is the continuation of the “Functional Programming Fundamentals with Scala and Cats” course and explores more advanced techniques in functional programming using Scala and Cats.


Over a year of experience in Scala or any other functional programming language.

What you'll learn

The first section of this course covers the core concepts of Functional Programming:

  • Typeclasses
  • Higher-Order Functions
  • Currying and partial application
  • Referential Transparency
  • Lazy Evaluation
  • Recursion

We’ll review main type classes from the Cats library:

  • Monoid
  • Semigroup
  • Functor
  • Applicative
  • Monad

Then, we’ll learn some advanced topics in regards to cats and cats-effect like:

  • Optics
  • Free Algebras
  • Effects and some of the related data types and typeclasses like IO, SyncIO, Fiber, Resource, Clock ContextShift, Timer, Bracket, Effect, ConcurrentEffect, etc.
  • Concurrency and Parallelism: Deferred, MVar, Ref, Semaphore.

Finally, we’ll apply all of the concepts covered above in real domains, like:

  • Asynchronous computations
  • Database persistence
  • HTTP communications.
  • Streaming

Are you interested in scheduling this training for your company?

Contact us

Are you interested in attending a public training course?

Contact us

Alexandru Simonescu

“I’ve been developing software for more than ten years, and I think that learning functional programming through this training opened my mind and gave me more tools to solve my daily tasks in a more efficient way.”

Ilia Berlana

“This training was amazing. It gave me a new point of view about programming. I’ve been programming in Java for ten years in the backend on Android, and my next challenge is Kotlin, and this training helped me a lot.”

Juan Carlos García

“I’m very happy because I learned a lot, and I got some new tools I can use in my work day-to-day.”