Recommendations for getting started on Category Theory, from emilypi, in NE Scala Slack (#category-theory), 3/14/20:
Right, so let's just go through the branches and name the suggestions:
- Categories in Context by Riehl (Mid-Advanced): this book is concise, formal, and modern. It has a slight bias towards categorical homotopy theory, but has the most correct and relatively complete approach to understanding universal properties that I've seen in any book. This approach is the key to understanding most of the theory. The exercises in this book are π
- Category Theory by Awodey (Beginner-Mid): This one was mentioned. It is a straightforward, classical approach to category theory with a bias towards categorical logic. Exercises are π
- Categories for the Working Mathematician by MacLane (Mid-Advanced): the standard. Read this to complete your understanding. I would recommend this book for understanding Limits + Colimits and CCC's before Riehl if its your first rigorous intro, but I would recommend Riehl for other parts like Yoneda, Adjunctions, and Kan extensions. Exercises are π
- Conceptual Mathematics by Lawvere & Schanuel (Beginner): A great book that is a bit of a slog. It reinvents your mathematical universe from first principles loosely following Lawvere's Elementary Theory of the Category of Sets (ETCS) and all details needed to understand it. By the end, you sit somewhere in the middle of any of the books, but you have the full range of nuance. Exercises are π
- 7 Sketches in Compositionality by Spievak (Beginner-Mid) This book is good as a series of introductory vignettes to the subject of applied category theory. More beginner than others, but still formal. Great exercises π
- Category theory for Computing Sciences by Barr & Wells (Mid-Advanced): Barr and Wells are excellent category theorists, and this book gives you an introduction to computability theory from a formal categorical perspective. Exercises are π , great as a reference.
- Category Theory for Programmers by Milewski (Beginner-Mid): Milewski's somewhat informal introduction to category theory through Scala and Haskell. It becomes rigorous as it goes along, and serves as a good ramp-up to studying the formal theory.
- Higher Categorical Logic by Lambek (Advanced): I'm doing this on right now. Its pretty π. For learning the categorical perspective regarding type theory, lambda calculi, combinatory algebras, and the general theory of CCC's, this is the one! Exercises are π but the content is π (edited)
- Concrete and Abstract Categories: The Joy of Cats by Adamek (Mid-Advanced): My first book! Also a good one. Skews topological, and exercises are π .
My personal favorite for pure theory is Riehl's book. I think in terms of "concepts that shattered my brain and reassembled it into a force for good", Riehl's book has some incredible perspective. However, it is dense, and it requires sacrifice. I am in the process of typesetting most if not all of the answers to every exercise as a personal kata.
The "easiest" (heavy quotations) is Lawvere + Schanuel. However there is a caveat: the difficulty is an exponential distribution. You will believe it to be too simple for about 100 pages, then it will start increasing in difficulty slowly, and finally get difficult by the end. The sheer number of concepts can often be frazzling for beginners, but it is the simplest in terms of the progression and pace.
Unfortunately the answer to the book question is not simple: there is no single book that can get you what you need. However, I can suggest the combination of books that worked best for me, which is CTiC + Conceptual Mathematics. I prefer a rigorous challenge, and Riehl gets me that. However, pragmatically, I am 30 years old, and some of my foundations are fading, for which I like to defer to Lawvere to help remind me. Additionally, Lambek is helping to keep programming interesting, since I get to touch alot of the concepts in my work. I imagine for you @Ross Baker, the answer will be some combination as well. I would suggest finding some friends to go through Lawvere as a group, and I would suggest MacLane or Awodey as a first introduction to the formal subject if you feel ready. Otherwise, I would recommend Milweskis great book as a primer, then Lawvere + Riehl. I also wholeheartedly suggest you do these things as a group! Math is a social sport. (edited)
Also: caveat upon caveat - no one reads the full books, so don't worry about being completionist! If you find yourself stumped by a particular topic, it is often just that author's presentation of the subject that's stumping you. Feel free to jump around from book to book to find which author suits your learning style. This is a trick not many people are aware of when it comes to reading math: sometimes authors just don't jive with your brain, and it's not your fault! And last point: the exercises drive the topics, and vice versa. You need to do at last a few exercises to solidify your understanding for every section. Book reading in this area is not passive. (edited)