Category Theory from the Universe Up
- 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!
Wouldn't it be nice if someone explained Category Theory using real world concepts?
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?
That's why I made this course
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.
I made this course, but I'd like an exchange
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
Category Theory from the Universe Up
1. Introduction and Monoids
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.
3. Applicative Functor
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.
5. Why is Category Theory so foreign?
If Category Theory really does underly a lot of what we do as programmers, then why is it so foreign?
6. Maybe Monad
Ah, the Maybe Monad! Such a nice introduction to how the structure of a monad gives it its unique characteristics.