Category theory is really cool. You should study it for fun (though not, directly, to be good at programming).

If you’re interested in studying it for fun, I recommend the following resources.

**Lawvere and Schanuel’s**is my favorite book for “getting the CT viewpoint”. It’s a weird book, written from the perspective of an observer of a series of (make believe) lectures where a small group is being taught category theory. This is nice, though, as it gives lots of space for the characters to explore the ideas and discuss how they ought to be thought of and used. The topics can be a little mathematical at times, but the onramp is slow. Even if you only read the first half or third of this book, I think it can be a key perspective missing elsewhere.*Conceptual Mathematics***Spivak and Fong’s**is an odd bird as far as category theory books go. It’s a book written as a companion to a class at MIT, distributed for free. It teaches CT a little non-traditionally as it focuses on*Seven Sketches in Compositionality**preorders*and*enriched categories*. The former is sort of a very simplified category and is a*great*tool for understanding the latter theory. The latter is a sort of*complexified*category… which they compellingly demonstrate as being very useful for finding “practical” applications. All in all, this is a really great book for learning CT and also can help a lot for grasping the “CT viewpoint”.**Bartosz Milewski’s**is a series of blog posts which pretty deeply explore category theory as it applies to programming. Milewski is a Haskell programmer and freely uses Haskell syntax and techniques to connect to CT concepts, so he draws some very direct and desirable comparisons. This can be a straightforward resource for learning about so-called “Haskell-egory theory”, though in service of that end you may be picking up a somewhat slim view of the study at large.*Category Theory for Programmers***Aluffi’s**is something I always recommend. Technically, this isn’t about CT at all but instead*Algebra: Chapter 0**abstract algebra*. That said, I believe abstract algebra to be a pretty useful prerequisite for understanding CT*and*Aluffi is*clearly*,*directly*writing this book as an onramp to learning CT directly. If you read this book and then after it read a more standard CT book, you’ll get the connections he was trying to make immediately.**Mac Lane**is the grand daddy of all CT books. Mac Lane and Eilenberg are credited with inventing CT and Mac Lane is an exhaustive, thorough, and unforgiving teacher of the subject… just about as completely as possible. You will not want to read this book without (a) some significant mathematical background, (b) some prior experience with CT ideas, and (c) lots of patience and scratch paper. That said, if you’re ever looking for the final answer on any basic category theoretic concept then this can be your bible.*Categories for the Working Mathematician***nLab**is like the Wikipedia for category theory. Or, rather, the Wikipedia for*higher*category theory, which is a*generalization*of category theory. So, when you wake up some morning and feel “wow, category theory is fun but it’s just*not abstract enough*” then you’ll know where to go. Actually, though, they’re a great fast resource for reading about all sorts of category theoretic concepts once you get your footing sufficiently to read between the lines a bit. You should probably refer to it regularly and practice this skill as it can eventually become a fantastic resource for you.**Cheng’s**is wholly unlike every other recommendation on this list as its a pop science book. That said, Eugenia Cheng is one of*How to Bake Pi: An Edible Exploration of the Mathematics of Mathematics***The Catsters**who made a series of YouTube videos on Category Theoretic topics as well as being a researcher and lecturer in pure mathematics and category theory. She’s good at writing about mathematics in a way that skips over hairy detail and gets close to the beating heart and*How to Bake Pi*is a perfect example. It’s a nice read on its own and great for handing to someone without a technical background to explain to them why you’ve been working your way through Mac Lane for the last 6 years.