Since I don’t have enough on my plate already, I have decided that I should try and learn a bit of category theory. There seem to be plenty of resources online, so maybe I manage to dig through some of them and learn something interesting.
Why would I be interested on category theory of all things? First I heard it mentioned in relation to Haskell, monads and types in general. One article lead to another and I quickly realized that it’s pretty impossible to understand this thing without actually trying to really study it. So I’m hoping to study it on my own and write down what I think I have learned (because writing things down and trying to explain them often clarifies things).
The book I’m slowly working through is Category Theory for Scientists by David I. Spivak. I’m not a scientist by any measure, but introduction seemed to be easy enough to read. I’m also trying to watch videos by The Catsters, but I probably lack enough of basics that I can’t really understand them yet. They’re short though, so maybe I’ll be getting back to them over and over again, until I learn something (sort of what happened with SICP).
But what is category theory about? Spivak explains that different branches of mathematics can be formalized into categories and these categories can be connected with something called functors (no clue yet what those really are). They allow facts and proven theorems transferred from one category to another. Spivak continues to explain that scientific understanding can be build by developing models and category theory is study of the basic blocks used to build these models. Certain structures show up again and again in different categories. I guess one could say that category theory is study of patterns in mathematics (does this sound like a certain programming language that is about discovering patterns in programs, abstracting them out and giving them names? Is this part that captured my interested?).