Category Theory by Tom LaGatta
youtube.com
youtube.com
NB I'd say my maths knowledge doesn't extend very far beyond GCSE level, and yet this talk was very understandable, everything described made a lot of sense. Very highly recommended.
[1] and I think will ever so slightly mitigate the pain/incredulity of finding x library has, in lieu of documentation, only a category-theory-related paper...only ever so slightly though.
Great speaker, though!
http://ncatlab.org/nlab/show/category+theory
where you will actually find a concise definition of what category theory is, and what distinguishes it from more familiar mathematical constructs like set theory.
(i.e. if you have two functions that compose, mapping the composition is the same as mapping each one and compose the results)
In functional programming, a lot of concepts are from CT, specially because of the focus on composition that both have. By using CT results they can do pretty crazy things with code and have the math to back it up :)
To be fair, I just recently started learning the subject, but I think it has a lot to offer.
If you were to ask what categories are like the category of sets and you were very smart you would arrive at the notion of Topos.
The Eilenberg-Zilber theorem states, that two functors between chain complexes are adjunctions to each other.
The initial result of Galois theory can also be formulated as an adjunction between two lattices.
Just recently the so called "tilting lemma" established an equivalence of categories between certain categories of "perfectoid algebras" over different fields.
In programming languages whenever you see something resembling a dataflow diagram, there is a monoidal category lurking in the background. The same is true for reaction diffusion networks and all the digital circuit diagrams ever drawn.
Typed lambda calculus is the "internal language" of cartesian closed categories.
Similarly linear logic (where resource tracking in Rust comes from) can be seen as the internal logic of some kind of bimonoidal category.
There are countless other examples along those lines, the point is that in modern mathematics all the things you consider can be made into a category in one way or another, establishing functors between them gives you a way of studying one thing in terms of the other. Most of the time category theory itself helps very little in doing so. It is just a language for formulating results. Actual research in category theory is done by comparatively few people and is nowadays probably mostly in the area of "higher category theory".
[0] http://www.haskellforall.com/2012/09/the-functor-design-patt...
[1] http://wlu.ca/faculty-profiles/arts/steven-a.-roberts.html