Introduction
Continuing my journey to learn category theory (pt. 1 here), I picked up Category Theory for Computing Science by Michael Barr and Charles Wells. My background being closer to computing science than to mathematics, I felt this would be a good choice. I had one main goal in going through this book: to understand the notion of adjoints. (And looking through the table of contents, I saw that Chapter 13 was titled Adjoints, so it looked promising.) This book also prefaces every chapter with a preamble stating which future chapters are dependent on which sections in the chapter. As a result, I was actually able to get to the Adjoints chapter without reading through the whole book, so I am basing this "review" off of Chapters 1, 2, 3, 4, 5, 6, 9, 12, 13.
Category Theory for Computing Science
Coming from Conceptual Mathematics: A First Introduction to Categories, the text feels a little dry, and the authors are quite concise in their presentation. However, I did appreciate the fact that answers to exercises are provided (which was my primary gripe with Conceptual Mathematics). If you're following the same path, you'll find that the first two chapters cover mostly the same material as was presented in Conceptual Mathematics, but with a couple of additional concepts. Even so, the alternate presentation of this material is still worth reading, in my opinion.
Category Theory for Computing Science then dives into functors and natural transformations, both of which I now realize are such key concepts that I am a little surprised that they were not covered in Conceptual Mathematics (that said, I am very grateful for the strong foundation provided that text - it certainly made studying functors much more manageable).
After reading the first six chapters, I found myself asking whether the "for Computing Science" part of the title was accurate. It felt more like a math text, with only a couple links to programming languages, and that doesn't really change even up to chapter 13 (although a skim of the last few chapters suggests that things might be different there). This is not a fault of the text... just somewhat contrary to my expectations.
Do I Actually Understand Adjoints?
To be honest, I think the answer is no. From my Google searches, adjoints are supposedly some beautiful relationship that occurs naturally between categories all over the place. It's difficult to search for information on adjunctions without running into Mac Lane's words "adjoint functors arise everywhere."
Now, do I understand the definition of adjoint functors and what it means for a category to be left or right adjoint to another? Yes - the text does a fine job of teaching that, in my opinion. However, do I feel that I can appreciate the supposed beauty of adjoints, to the point where I feel compelled to quote Mac Lane on the internet? Definitely not. For that, I suppose I will have to keep searching other sources.
My Next Steps
I would love to return to Category Theory for Computing Science one day to read the remaining chapters, but I think I need a change of pace. I've decided that change of pace will be Bartosz Milewski's Category Theory for Programmers. Stay tuned.
EDIT(04-28-2022): Here's pt. 3.