Categories from scratch by Rapahel ‘kena’ Poss.
From the post:
Prologue
The concept of category from mathematics happens to be useful to computer programmers in many ways. Unfortunately, all “good” explanations of categories so far have been designed by mathematicians, or at least theoreticians with a strong background in mathematics, and this makes categories especially inscrutable to external audiences.
More specifically, the common explanatory route to approach categories is usually: “here is a formal specification of what a category is; then look at these known things from maths and theoretical computer science, and admire how they can be described using the notions of category theory.” This approach is only successful if the audience can fully understand a conceptual object using only its formal specification.
In practice, quite a few people only adopt conceptual objects by abstracting from two or more contexts where the concepts are applicable, instead. This is the road taken below: reconstruct the abstractions from category theory using scratches of understanding from various fields of computer engineering.
Overview
The rest of this document is structured as follows:
- introduction of example Topics of study: unix process pipelines, program statement sequences and signal processing circuits;
- Recollections of some previous knowledge about each example; highlight of interesting analogies between the examples;
- Identification of the analogies with existing concepts from category theory;
- a quick preview of Goodies from category theory;
- references to Further reading.
If you don’t already grok category theory, perhaps this will be the approach that tips the balance in your favor!