Skip to main content
CF

Cats

10h 39m 36s
English
Paid

We Scala programmers love abstractions and Cats is one of the most popular libraries. At the same time, Cats is notorious for having a steep learning curve. Functors, Applicatives, Semigroupals, not to mention the M word. Few people make sense of them all. For the rest of us mortals, it's a brick wall. Certainly was for me when I started.

But it doesn't have to be. After lots of pain, I understood how this library can be fun to learn AND write with, IF - and that's a big if - you follow a clear structure and a smooth sequence. The bad news is that's tough to make. The good news is that I think (there's a good chance that) you have it in front of you.

You're looking at the only course on the web that doesn't cost an arm and a leg (and a real cat) and will get you through everything you need to know to be productive. Down to earth, hands-on, no psychobabble, and no F[_] bombs until you're ready.

This course is for Scala engineers at least at the level of the Advanced Scala course. By the end of this course, you'll be able to use any Cats feature without any problems.

About the Author: Rock the JVM

Rock the JVM thumbnail

Rock the JVM (rockthejvm.com) is a Romania-based JVM-focused training platform run by Daniel Ciocîrlan — focused entirely on Scala, the broader JVM ecosystem, and the data-engineering / streaming stack built on top of it (Spark, Flink, Kafka). The platform is one of the most authoritative independent sources on Scala and functional programming on the JVM.

The CourseFlix listing carries four Rock the JVM courses: Scala & Functional Programming for Beginners, Cats (the Scala functional-programming library), Spark Streaming with Scala, and Apache Flink. The teaching style is unusually rigorous about the functional-programming fundamentals underneath the framework material.

Material is paid and aimed at engineers picking up Scala or building data-streaming systems on the JVM. For broader content, see CourseFlix's Scala, Java, and Messaging & Streaming category pages.

Watch Online 33 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 33 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Welcome
All Course Lessons (33)
#Lesson TitleDurationAccess
1
Welcome Demo
08:16
2
How to Make the Best Out of This Cours
02:33
3
Scala Essentials Recap
31:59
4
Scala Implicits Recap
25:49
5
Type Classes
14:33
6
Introduction to Cats
18:27
7
Type Classes and Variance
22:04
8
Semigroups
00:00
9
Monoids
00:00
10
Functors
28:43
11
Monads, Part 1
00:00
12
Monads, Part 2
00:00
13
Using Monads
35:10
14
Custom Monads
36:04
15
Monad Transformers
33:45
16
Readers
28:57
17
Writers
25:59
18
Evaluation
28:37
19
State
31:56
20
Data Validation, Part 1
16:01
21
Data Validation, Part 2
20:50
22
Semigroupal
23:49
23
Applicative
20:00
24
Weaker Applicatives: Apply
15:47
25
Weaker Monads: FlatMap
13:12
26
Handling Errors
29:24
27
Folding
21:28
28
Traversing, Part 1
21:28
29
Traversing, Part 2
21:54
30
Kleisli
17:16
31
Contravariant
21:00
32
Invariant
24:04
33
You ROCK!
00:31
Unlock unlimited learning

Get instant access to all 32 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What prerequisites should I have before enrolling in this course?
Before enrolling in this course, you should have a solid understanding of Scala programming, as it includes a recap of Scala essentials and Scala implicits. Familiarity with type classes is also necessary as the course builds on these concepts to introduce and explore Cats.
What projects or exercises will I work on during this course?
The course includes practical exercises on various functional programming concepts using Cats. You will implement and work with Semigroups, Monoids, Functors, Monads, Monad Transformers, and various data validation techniques. These exercises aim to solidify your understanding of abstract concepts by applying them to real-world scenarios.
Who is the target audience for this course?
This course is aimed at Scala developers who are looking to deepen their understanding of functional programming abstractions using the Cats library. It's particularly suited for those who have encountered the steep learning curve of Cats and are seeking structured guidance to make sense of its concepts.
How does this course compare in depth to other Scala or Cats courses?
This course offers a detailed exploration of Cats, covering 33 lessons that dive into advanced topics like Monad Transformers, Applicatives, and Semigroupals. Compared to other courses, it provides a comprehensive examination of complex abstractions, which might not be as extensively covered elsewhere.
What specific tools or platforms will be used in this course?
The course focuses on the Cats library, a prominent functional programming library in Scala. You will learn to use it alongside Scala's built-in features, such as implicits and type classes, to implement various functional programming patterns and abstractions.
What topics are not covered in this course?
While the course covers many advanced concepts in Cats, it does not delve into machine learning, web development, or databases. The focus remains strictly on functional programming abstractions and their applications within the Scala ecosystem.
What is the expected time commitment for completing this course?
The course consists of 33 lessons. Although the total runtime is not specified, students should expect to spend additional time on exercises and reviewing materials to fully grasp the complex concepts presented, particularly if they are new to Cats.