First off, why would you be interested in categories? I think it’s the formalization of the idea that ‘things look or behave similar in different contexts’. If you work as a sales person you re-use the same processes and way of thinking across different industries and companies. There is some categorical structure describing this. If you study human histology and looks at environmental flows you might discover analogies and similarities. This feeling that structures have on a higher level the same behavior is captured by category theory.

What does it add to your expertise? It adds what any analogy adds to your thinking: re-use of solutions across different domains. The only thing category theory does is formalize it more strictly. There is however not something like an ‘almost category’ for things that are ‘almost similar’. One might invent it but it ain’t there now.

Why is it not more popular? Well, it is popular in some domains where it works very well. Theoretical computer science and the general theory of programming languages in particular. Whatever sits close to mathematics benefits most from category theory. On the other hand, the way abstract thinking you learn can be applied anywhere. Consider it as a thinking-style much like any artistic style can influence one’s own personal (creative) style.

In summary:

  • categories helps you organize your thoughts about a collection of related things
  • it identifies patterns that recur over and over
  • it suggests new interesting ways of looking at them
  • it does not necessarily help understand the things being studied and sometimes the high-level gets in the way. It all depends what you’re after.

The ingredients:

  • you have stuff, called objects
  • the objects can be related via things called functions or arrows
  • you can compose arrows.

You need to admit that such a set of ingredients can embrace anything and everything and that’s the reason why categories are everywhere.

Mathematically speaking one adds something called an identity and impose associativity. It’s the most basic assumptions one can add and it applies to well-known structures:

  • take any programming language and consider the data types defined within the language, this can be defined as a category
  • consider database schema’s and table structures, you can see it as categories
  • of course, things like matrices and vectors are categories as well.

So, the cool thing once you have started to assemble some concrete example is that you can draw analogies between these different ‘worlds’:

  • can one find similarities between database schema’s and cryptographically systems?
  • can one see customer conversion (in a marketing context) as an automaton?
  • are cooking recipes a category?

You won’t discover the next gastronomical hype but you can comprehend cooking in a different way. It gives you a vantage point.