Think higher level, write grounded code. Everything you need to know to write Scala with Cats.

What the F[_]?!

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.

This course is for you if:
  • you want to get started with the Typelevel ecosystem
  • you want to learn Cats but found it confusing, abstract or obscure
  • you want to learn the more general category theory while being pragmatic
  • you want some practice material on Cats
  • you want to hear the Rock the JVM tune again at the end of the videos
Here are the skills you'll get:
  • you'll write correct code quicker and more concisely
  • you'll be able to read the concise code of other people MUCH more easily
  • you'll be able to motivate WHY you chose a particular type class or approach
  • you'll start to think in general terms naturally, or get better at it
  • you'll deeply internalize how to use type classes well in Scala
  • you'll manipulate data in a purely functional way EVERYWHERE
  • you'll be VERY intimate with the M word (to not let your mind wander, that's monads)
  • you'll instantly get more experience with Cats in 10 hours here than most Cats programmers in their first few months
  • you'll understand and use abstract math with purely pragmatic goals like calling an endpoint or sending an email
Here's how you'll get them:
  • we'll have structure and logical progression, instead of you being thrown in the pool
  • we'll write code 98% of the time - we have 2k LOC on camera
  • we'll practice the S[_] out of everything - we have dozens of exercises and examples
  • we'll see/speak no boring abstract math
  • we'll deconstruct things that otherwise seem really obscure
  • we'll talk everything on Slack if there's anything confusing
  • we'll share all the code, slides and cheat sheets

After this course, you'll be able to read and write any code, however complex, that has Scala with Cats in it.

Your Instructor

Daniel Ciocîrlan
Daniel Ciocîrlan

I'm a software engineer and the founder of Rock the JVM. I started the Rock the JVM project out of love for Scala and the technologies it powers - they are all amazing tools and I want to share as much of my experience with them as I can.

As of February 2024, I've taught Java, Scala, Kotlin and related tech (e.g. Cats, ZIO, Spark) to 100000+ students at various levels and I've held live training sessions for some of the best companies in the industry, including Adobe and Apple. I've also taught university students who now work at Google and Facebook (among others), I've held Hour of Code for 7-year-olds and I've taught more than 35000 kids to code.

I have a Master's Degree in Computer Science and I wrote my Bachelor and Master theses on Quantum Computation. Before starting to learn programming, I won medals at international Physics competitions.

Get started now!

Risk-free: 100% money back guarantee.

If you're not happy with this course, I want you to have your money back. If that happens, email me at [email protected] with a copy of your welcome email and I will refund you the course.

Less than 0.3% of students refunded a course on the entire site, and every payment was returned in less than 72 hours.

Frequently Asked Questions

How long is the course? Will I have time for it?
The course is a big 12 hours in length, with lessons 20-30 minutes each, and we write 2000+ lines of code. For a complex topic as Cats, I don't believe in 5-minute lectures or in fill-in-the-blanks quizzes. For best effectiveness, I recommend chunks of 1 hour of learning at a time. Note that 12 hours is just the total video time. If you put in the effort to do the exercises yourself (which I warmly recommend), the total time spent here can go to 20h+. Even so, it's 10x less than you would need if you learned by yourself.
What does a typical lesson contain?
Code is king, and we write from scratch. In a typical lesson I'll explain some concepts in short, then I'll dive right into the code. We write code most of the time, while explaining WHY each thing happens.
Can I expense this at my company?
Of course! After you enrol, you'll automatically get an invoice which you can use to reimburse this course with your employer.
Is this hard?
This, meaning Cats? Yes. This course? Not if you follow it closely and doing all the exercises. I've designed this as a smooth learning curve.
What if I'm not happy with the course?
If you're not 100% happy with the course, I want you to have your money back. It's a risk-free investment.
Daniel, I can't afford the course. What do I do?
I used to offer discounts, but I'm not anymore because almost nobody who took a discount actually completed a course, and I'd rather not have your money if you're not committed. The cheapest option for you would be to get the membership (which gives you access to all the other courses here) and then cancel when you're done.
I'm just getting started with Scala. Can I take this course?
Short answer: probably not. Longer answer: we have some Scala starter code at the beginning of the course, but that's really not a replacement for the kind of experience we need in this course. We really need you to be comfortable with advanced language constructs - Cats is difficult enough as it is.

* Banner image is a modified version of this animal vector created by agnessz_arts at Used under a free license with attribution.