Functional Programming with Scala Cats

A journey into the world of typeclasses, the Cats library, and the functional way of doing things in Scala

4.60 (260 reviews)
Udemy
platform
English
language
Programming Languages
category
instructor
Functional Programming with Scala Cats
1,698
students
13 hours
content
Dec 2022
last update
$74.99
regular price

What you will learn

Create own typeclasses

Write and use lawful instances of well-known typeclasses such as Functors, Applicatives, Monads, etc.

Perform common programming tasks (validation, dependency injection, state management, etc.) in a functional way.

Why take this course?

When we start our journey as a Scala developer, our first impression of the language may be that of 'a better Java'. We learn about classes, traits, pattern matching and some other constructs that make our life easier. At some point we come across the amazing higher-order methods such as map, filter and fold. These serve as a great first taste of functional programming.

But what if I told you that there is much more than that? In this course I will show you how standard functional programming practices can help you write code that is more generic, robust and testable.

This course is divided into 3 main sections.

In the first section, we will learn about typeclasses. We will use as a driving example the problem of encoding and decoding objects into and from bytes. By the end of this section you will be able to create your own typeclasses and use the typeclass pattern to write polymorphic code.

In the second section, we will take a look at some of the most common typeclasses in functional programming, including Monads, Applicatives, Functors and many more. We will use the famous Cats library to provide us with their implementations, and we will use Discipline along with ScalaCheck and ScalaTest to test their laws. By the end of this section, you will be able to write lawful instances of these typeclasses for any of your types, and test their validity in an automated manner.

In the third and final section, we will learn to perform many common programming tasks with functional structures. These tasks include:
- Validations via the Validated datatype

- Dependency injection with the Reader monad

- Tracking data in our computations with the Writer monad

- Managing state with the State monad

- Writing stack safe computations with Trampolines

- Making computations lazy with the Eval monad

- Composing monad stacks via monad transformers such as ReaderT and OptionT

- Suspending effects with a simple but useful implementation of the IO monad

I'm a big believer of learning by doing so I've included a lot of in-video exercises, along with quizzes and assignments at the end of each section. I hope you enjoy doing them as much as I enjoyed putting them together!

Without further ado, I want to give you a big welcome to the course and the thrilling world of functional programming!

Reviews

Nikita
May 18, 2023
The structure of the code is poor. The usage of sheets could be convenient for a lector, but it becomes hell for a student, especially after some time when you decide to come back to the material to refresh your knowledge. Examples of the code are sometimes not good as well. Part of the presented code does not compiles until some changes are done implicitly in the following lecture. Some themes, like testing with laws are explained poorly. It's unclear why I need to use it, but not the plain FlatSpec or smth similar.
Ujjal
March 31, 2023
The tutorial was overall good. The concepts were explained with examples and hands-on. However, the final project was a disappointment. The author could have followed the code-with-me style rather than this fill-in-the-blanks. This could have made the tutorial a bit longer, but who cares. The current approach didn't work.
PADMANABAN
February 27, 2023
Comprehensive course on FP with Scala Cats. Learned a lot on how to utilize many of Pure FP patterns.
Doruk
January 10, 2023
I feel like there isn't much "setting the stage" happening in this course. The instructor dives straight into topics without enough background explanation about the why of these topics.
Paweł
November 15, 2022
I spent about 12 hours listening to the lectures of this course and additional few hours of cats-effect course and I do not regret it! Leandro`s courses allows you to get know cats in many details in very pleasure way.
Joop
September 10, 2022
Thorough. Exercises doable. Explanation after exercises sometimes too short. Explanation sometimes needs more information to follow the thought proces.
Ignacio
August 11, 2022
The course covers a lot of topics in detail, and well explained by Leandro. Be patient and finish it because it will help you a lot in understanding and practicing with monads, applicatives, monoids, and their APIs in the Cats library.
Dmitry
July 5, 2022
The author has done a great job creating this course. Although it is not a complete course about the Cats library, it's still a good introduction, especially while there are not so many courses on this topic. The author answers questions quickly enough and gives good explanations. The course was hard for me but it's really useful.
Gustavo
June 28, 2022
Too simplistic, doesn't dig in important type classes like Functor, Monoid, Monad, etc. Some examples are soooo dummy, doesn't help to understand at all. Also there are some errors for example initializing variables using Some (...) instead of Option (remember that Some(null) would be Some(null) instead of None), so the code could crash when trying to access the value. Cats is a tough library and this is not a good course. After I got disappointed I tried the same course from Rock The JVM in it's way better!!!
Rajagopal
May 6, 2022
The whole course was wonderful with lot of good examples. Also the clarity in explaining each and every items were great.
Imran
May 3, 2022
I really like the course, organised in great way and explained with code that make the picture more clear. Great Job !!!
Somsubhra
March 11, 2022
It's hard to find good video courses on this subject matter. This is perhaps the best I have come across
Erle
March 11, 2022
Great explanation of various topics (like higher kinded types); Lots of good exercises - which imo at my level are super important.
William
August 7, 2021
This course presents the coolest ideas in programming! These methods and techniques are the reason Scala is my favorite language.

Charts

Price

Functional Programming with Scala Cats - Price chart

Rating

Functional Programming with Scala Cats - Ratings chart

Enrollment distribution

Functional Programming with Scala Cats - Distribution chart
3619312
udemy ID
11/6/2020
course created date
2/17/2022
course indexed date
Bot
course submited by