This is a case where the title is honest and almost summarise the content of the book. Category theory is a particular branch of mathematics that you might have used extensively every day without knowing its existence. If you are pretty good in SQL and databases, you already digested the set theory. Likewise, category theory can be applied in many parts of programming and computer science.

Functional programming is one of those and after you conquered the imperative and object-oriented paradigm, you might want to access to this new world.

It's better to have some good fundamentals and this book is all about teaching you category theory using Haskell, pretty illustrations and a very dirigible maths notation. Sometimes concepts are explained with code first and then formalised.

my cat and the book

I came across category theory while I was having fun with Apache Flink with the Scala API and I realised I was missing fundamental parts during the study. I stepped back and looked for articles about the basics of stream processing, I found the ones written by Tyler Akidau and also the excellent book that I might cover later (featured in a humble bundle a while ago).

Then I read some code made with cats that wasn't immediately easy to understand at the first glance, then I realised there is a substantial community around functional programming in Scala with nice web frameworks and utilities.

Intrigued by this I read about functional programming and category theory was mentioned everywhere, concepts borrowed from this branch of mathematics for implementing very neat solutions and I found this book.

Category theory for programmers started as a very well written series of blog posts by Bartosz Milewsk and now is also a printed book and a series of video lessons

The book is divided into three parts, the first is about the fundamentals, the second is the introduction to some very important aspect the and the most advanced and fun part is left for the final part of the book.

You need to review your basics in mathematics a bit before starting the read, but this book doesn't make you feel stupid, chapters are short and easy to digest. Sometimes you need to spend a bit of time on a few pages, but it's normal.

The book will introduce you to Haskell for the sake to make explanation simpler, you will see why when the author compares some implementations in pure C++. It's also surprising how category theory fits in many computer science scenarios.

You will also see differently you basics in mathematics after the read but I don't have to convince you, just watch the video above or grab a pdf from the repository. Also check Basic Category Theory by Tom Leinster if you need to read about the topic from another point of view.