It’s interesting that you use the “a monad is a monoid in the category of endofunctors” example. That kind of statement is definitely hard to parse when you’re trying to learn concepts.
However, the more I’ve learned about category theory, the more I’ve understood it as a way of defining what things are and what properties follow from those definitions.
Like, a monad really doesn’t have meaning beyond “monoid in the category of endofunctors”. The same is true for monoids and endofunctors: it’s all about the properties of those objects.
In the context of programming, we can impose all kinds of meaning, but the definitions and laws are really what makes it all work when you piece it together.
I guess my approach is to suffer through it until some understanding is gleaned, which admittedly isn’t very satisfying or easy haha.
However, the more I’ve learned about category theory, the more I’ve understood it as a way of defining what things are and what properties follow from those definitions.
Like, a monad really doesn’t have meaning beyond “monoid in the category of endofunctors”. The same is true for monoids and endofunctors: it’s all about the properties of those objects.
In the context of programming, we can impose all kinds of meaning, but the definitions and laws are really what makes it all work when you piece it together.
I guess my approach is to suffer through it until some understanding is gleaned, which admittedly isn’t very satisfying or easy haha.