It’s likely that AI will write all of our code for us in the next few years, if not sooner. If you’re a software engineer, what does that mean? How can you take your abstract reasoning and apply it in this strange new world? Being really good at specifying exactly what you want the machine to build is going to be a valuable skill, and it’s possible that abstract math—category theory and its cousins—will provide the right tools for the job.
Planned topics
Foundations: What is a category? (objects, morphisms, composition, identity) — Functors (structure-preserving maps, List and Option as examples) — Natural transformations (maps between functors, completing the “category of categories” intuition)
Core abstractions: Products and coproducts (tuples and sum types as universal constructions) — Initial and terminal objects — Exponentials and Cartesian closed categories (why function types are “exponentials”)
Monoids to monads: Monoids in Set — Adjunctions (free/forgetful pairs, currying) — Monads (unpacking “a monoid in the category of endofunctors”) — Comonads (streams, UI rendering, cofree comonads)
Advanced/applied: Limits and colimits (database joins as limits, schema migration as colimits) — The Yoneda lemma (“every object is determined by its relationships”) — Kan extensions (“all concepts are Kan extensions,” with map/fold/filter as examples)