- Ever been completely baffled by Wikipedia articles on Monads and Functors?
- Are you curious about what everybody is raving about, but can't find any good ways to learn it?
- Do you want to see how category can up your programming game?
- Lost in the sea of jargon?
- Tired of dumb metaphors like burritos?

The problem with all of the other ways of teaching is that they describe the things accurately for people who already understand them. They don't use the real world for examples of the concepts they are teaching. They go straight to the obtuse mathematical language!

It turns out that many of the ideas of category theory come almost directly from the real world. Wouldn't you like to understand how those concepts relate to the real world? Imagine hearing someone talk about Monads and Applicative Functors and knowing what they were talking about. And also be able to relate it to your life? And use the good ideas in your programs? How amazing would that be?

I've put together a course on Category Theory. It's just the basics, but it does a decent job of introducing the major concepts *from the ground up*. That means using common, everyday objects that happen to be "instances of these categories" everyone is talking about.

These lessons will show you:

- How a pile of rocks
*is*a**Monoid**. - How a list of notecards
*is*a**Functor**. - How a bag of candy
*is*a**Monad**. - And more.

I'm not talking about metaphors here. This is not your typical Monad tutorial where someone stretches a metaphor a little too far. Metaphors are good for some kinds of learning, but demonstrably terrible for abstract math. No, this is different.

In these lessons, I start from real world phenomena and uncover properties of them. I abstract that into familiar mathematical concepts. Then I abstract those concepts again. And again! To arrive at categories. So it's all derived, albeit in a very informal way. At each step, however, the derivation is clear.

This course is almost **2 hours of video** in seven bite-sized chunks. It goes deeper as it progresses, so you can stop at any time.

The first lesson is free and available to everyone. Please enjoy.

The rest of the lessons are also free, but I ask that you sign up for a free account to watch them. This will also subscribe you to my newsletter and I hope to send you other stuff about functional programming that you'll find valuable. You can unsubscribe any time.

I would also appreciate all of the shares, tweets, blogs, up votes, +1s, likes, favorites, hearts, retweets, reblogs, pins, thumbs ups, shout outs, pingbacks, links, reshares, subtweets, forum posts, and link drops you can muster.

If you don't understand anything about category theory after watching these lessons, email me and I'll make that straight. I'll answer any questions you have. You'll learn a little category theory and I'll learn how to be a better teacher.

Total time: 1h55m

$499

- HD Download
- Watch Online
- Lifetime Access
- For your company

$75

- HD Download
- Watch Online
- Lifetime Access
- For an individual

$49/mo

- HD Downloads
- Watch Online
- Full access
- All Content
- For an individual

If you don't learn as much from this course as you thought, just ask for a refund within 30 days and I'll give you your money back.

Video time: 01h54m

Many people are intimidated by Category Theory and I was one of them. But I braved the waters and found some pretty cool stuff there. I'd like to share some of it with you.

Functors are another cool idea that you see everywhere in the universe. I use a couple of examples: a list of notecards, an ice cube tray, some boxes, ice cream cones (!!?), and a car factory.

Applicative functor is the topic of this video. It is a type of Functor that is extended to let you apply a functor of functions to a functor of its arguments.

We tackle the dreaded Monad armed with nothing but a bag of candy and some todo lists.

If Category Theory really does underly a lot of what we do as programmers, then why is it so foreign?

Ah, the Maybe Monad! Such a nice introduction to how the structure of a monad gives it its unique characteristics.

The List Monad! Let's see how we can implement that in Haskelly syntax, and see how we can use that to make "list comprehensions".