The Categorical Imperative — The Little Joys of Big Abstractions (Dr. Katya Steiner)
# The Categorical Imperative — A Joyful Manifesto
You know that guilty, teenage thrill when you finally get a joke three people have been laughing about for weeks? Learning a neat bit of category theory feels exactly like that — except the joke is a diagram and you can drop it in a seminar and sound dangerously plausible. I call that buzz the categorical imperative: do the small tidy thing that makes the diagram sing.
Below is a practical, mildly opinionated guide to enjoying category theory without mistaking aesthetic pleasure for novelty. Expect anecdotes, a dash of topology and logic, and a slightly nerdy observation about why a monad multiplication mu sometimes looks like a projection after a bit of linear algebra wizardry.
## Celebrate the mini-epiphanies
Those tiny wins matter more than we admit. Rewriting a proof in your shorthand, redrawing a commutative square so it actually communicates, or noticing how a monad’s multiplication composes like a projection — each is a deposit in your mathematical confidence account.
Tactic: keep a stolen-moments notebook or a private repo. For each note: one-line claim, one diagram, one tiny example. When impostor syndrome hits (it will), this ledger reminds you that you did, in fact, understand something once.
## Make a living reading list, not an altar
We want curated authority, but books are tools, not relics. Build a list with three tiers:
– Essentials: Mac Lane, Awodey, some crisp course notes. What they teach and prerequisites in 2 lines.
– Deep dives: monographs, theses, narrow surveys. When to read and when to skip.
– Weird gold: obscure papers and folklore notes — often where the real tricks live.
Write short, opinionated blurbs. Tell newcomers whether a text is “essential” or “use sparingly unless you enjoy pain.” Pleasingly blunt guidance saves weeks.
## Ground abstractions in examples (cross-discipline style)
Abstraction without examples is groupthink with nicer diagrams. Different branches of math give different foothills:
– Topology: ultrafilters and the Stone–Cech compactification are surreal but instructive. Start with finite spaces (principal ultrafilters) then climb to beta-N for the weird stuff.
– Algebra: idempotents and Karoubi envelopes make splitting concrete. If something is algebraically idempotent, draw the projection.
– Logic and topos theory: think sheaves, models, and how semantics live over sites. Toy examples in Sets or posets keep intuitions grounded.
– CS: monads as state, nondeterminism, or effects. The programmer’s intuition often matches the categorical one — a sanity check.
Each perspective offers heuristics. When an idea appears in several guises, it usually deserves respect.
## Move from diagrams to instances — practical tools
Ologs and diagrams look great until you need to test them with data. Practical strategies that keep abstractions honest:
– Prototype with CSV or JSON instances tied to nodes. It forces you to spell out what arrows mean.
– Build tiny tools if you do this often — a small web app that binds schema nodes to examples is worth the initial fuss.
– For quick work, attach example datasets in a shared doc. It’s ugly but revealing.
– For scale, map to RDF/OWL or typed schemas and run consistency checks.
The point: if your instances don’t line up, the arrow is lying.
## When mu behaves like a projection — why it’s satisfying
Here is the little technical delight: sometimes the monad multiplication mu, after applying a linearization functor (say, to vector spaces) and passing to the Karoubi envelope, becomes an honest idempotent that splits into a projection and inclusion. Intuitively, a state-like monad has maps that ‘drop’ and ‘duplicate’ state; their composite remembers only the relevant subspace. In linear terms that composite is idempotent, so it splits.
Why is this neat? Two reasons:
1. It connects categorical algebra to familiar linear algebra imagery. You can visualize and compute.
2. It suggests design patterns: if mu looks like a projection, maybe there’s a more explicit ‘forgetful’ interface hiding in your structure.
This observation crops up in algebra, representation theory, and even in semantics for programming languages. Is it deep? Sometimes yes, sometimes folklore. Which brings us to the next point.
## Don’t scream “novelty” too loudly — hunt for references
If you think you’ve rediscovered a pattern, pause. Is this folklore? A 1970s thesis may have beaten you to it. Use LLMs to draft searches, but humans still win at literature hunts. Share clean notes and ask: “Has anyone seen this written down?” The community will either cheer or hand you the 1974 citation with grace.
## Balanced cautions: the upside and the trap
Abstraction is powerful: it unifies, simplifies, and reveals. But it can also seduce. Two sides to keep in view:
– Upside: categorical formulations let you port intuition across fields. A diagram that works in topology might teach you about types in programming.
– Trap: beautiful formalisms can obscure what you actually compute. If you can’t produce an example or instance, the theory may be performative rather than productive.
Being rigorous about both theorems and examples keeps you honest.
## A short checklist for being usefully clever
– Keep discoveries bite-sized: sentence + diagram + example.
– Maintain a living reading list with blunt notes.
– Ground theory in finite/countable/compact toy cases.
– Prototype with simple instances; automate if you repeat the pattern.
– Formalize cautiously and always solicit references before claiming discovery.
## Takeaway and a question
Category theory rewards patience and a taste for abstraction, but it also rewards hunger for the particular. Oscillate: delight in the clean diagram, test it against messy data, read the old papers, and be generous asking for pointers. Do that, and you get both the smug joy of insight and something you can actually show at a job interview — or at least a humble GitHub repo proving you weren’t hallucinating.
Which tiny categorical moment changed the way you think, and how did you test it with a real example?