Learning to Think Categorically Up to this point in my education, I have had very little exposure to the language and machinery of category theory, and I would like to rectify this. My goal is to become conversant with some of the standard categorical ideas; I want to be able to think categorically. What are some suggestions people have for the best way to go about this? Would it be better to take things head on, and read something like MacLane's Categories for the Working Mathematician? Or would it be better to study category theory via its application to a body of ideas that I'm already familiar with, such as representation theory? How have you learned to think categorically?
---EDIT---
Thank you all for the responses. To clarify, my interest in category theory is more of a means than an end - I want to be fluent in understanding and crafting categorical arguments in other contexts. Although I'd love to be persuaded otherwise at the moment I'm not necessarily interested in studying category theory in its own right; somewhat analogously to how one should be well versed in the language of set theory, even if they do not intend to study sets in and of themselves. Thanks to your responses, I have plenty of material to look at.
 A: I would absolutely not start out by learning category theory abstractly -- in my experience, that's a guaranteed way to learn to hate it. I'd learn the approach by reading a category-focused treatment of something you already understand from a different perspective, be it abstract algebra, topology, representation theory, or whatever. Do the exercises! You won't learn to think in any way without doing some thinking. After that, you can read Mac Lane or "The Joy of Cats," and if you're so inclined, read back issues of John Baez's This Week's Finds for a different (and IMHO incredibly awesome) perspective on categorical ideas.
A: First, WHY do you want to learn categories?
Not that I don't think it's a good idea - only your approach vector will influence, strongly, what a good approach will consist of. I approached categories first from Homological Algebra; and found Charles Weibel's book on homological algebra - especially the introductory chapters, where several diagram chases are done in deep detail - to be very enlightening.
You may come at it with a view towards logic, or type theory, or Computer Science. In that case, I'm fond of Awodey and of Barr & Wells: Category Theory for the Computing Sciences. Especially Barr & Wells is replete with informative and illustrative examples.
There are more reasons to learn CT - but these are the ones I've felt myself; if you tell us more about where you're coming from, we'll have an easier time giving good answers.
A: My own personal exposure to category theory mostly consists of reading the following blog entries:


*

*The entire beginning of The Unapologetic Mathematician,

*Todd Trimble's series on basic category theory,

*Random weeks of John Baez's This Week's Finds (unfortunately it is somewhat hard to search these).


I won't claim that this is at all a systematic or comprehensive way to learn category theory, but I do think there's some genuinely good writing here and that it's gotten me comfortable with category-theoretic language, even if I wouldn't actually say that I "know" category theory (whatever that means).
Edit:  Also, though I've only read the beginning, Lawvere and Schanuel's Conceptual Mathematics is probably the simplest introduction to category theory I've ever seen.  I think it was written for an undergraduate course.  To get an idea of the level of this text relative to some of the others mentioned here, adjoint functors are never explicitly defined.
A: I agree that reading MacLane is probably not the first thing you should do to understand category theory. In the beginning it's probably better to look at concrete examples of categorical concepts. When I encounter a new categorical concept, say coproducts, I try to figure out what it looks like in as many categories as possible (and whether it exists). The easiest category to start with is usually the category of sets, but after that I think it depends on what your background is. So what do a disjoint union, a direct sum, an intersection and a greatest common divisor all have in common? Well they're all coproducts in some category. Given a category it's also worthwile to figure out whether it makes sense to talk about an object with the desired properties. In the category of finite abelian groups you can't take an infinite direct sum  of non-trivial groups, so you don't have all coproducts in this category. As in the rest of mathematics non-examples can be just as enlightening as examples (many much more so than the above non-example).
If you know some algebra I think working with the category of modules over a (commutative) ring can be very helpful, it certainly was for me. There are plenty of functors to look at; Hom, tensor, localization, derived functors etc.. You have limits and colimits, free objects, adjunctions (tensor-hom, free-forgetful). Thinking categorically about modules also prepares you for working with general abelian categories and homological algebra.
A: Though most people seem to advise against reading Mac Lane's "Categories for the working mathematician", and neither did I read it from start to finish, looking at it, I find that it is highly worth trying to read some parts because it's extremely very well written: to the best of my knowledge this book is second to none in his field (of course, nowadays you have also Borceux's book, but its scope is something different). So if your mathematical interests force you to use categories, you'll have to consult Mac Lane's again and again. Starting to read it directly is a way to get an idea of where to find things when you need them.
Ok, there is a problem because, for instance, it begins with "metacategories" (chapter I, section 1), so when you arrive to real categories (section 2) you may be already completely lost. Hence, I asked myself: what parts of Mac Lane did I really have used in my own work and find them useful, worth reading or consulting, or are unavoidable in the language of categories? The following is my own selection of some chapters and sections of Mac Lane's book, based only on my personal tastes and biases (the selection is from the first edition, but, if I'm not wrong, the only difference is that the second one has an extra chapter on monoidal and braided categories and functors near the end):
Chapter I: 2, 3, 4, 5, 8.
Chapter II: 2, 3.
Chapter III: 1, 2, 3, 4, 5
Chapter IV: 1, 2, 4.
Chapter V: 1, 4, 5.
Chapter VI: 1, 2.
Chapter VII: 1, 3, 4, 5, 6.
Chapter VIII: 1, 2, 3, 4.
Chapter IX: 1, 2.
In general, I've tried to avoid both too abstract issues, logical foundations and too specific or specialized matters.
This kind of reading, of course, raises the problem of encountering terms you haven't seen defined before, or results you haven't studied. But in this cases, I think there's no harm in going to the index and find where the term is defined, or taking the result you haven't seen before on faith. Trying to do some exercises is of course necessary and the historical notes at the end of the chapters are interesting too.
A: My thoughts are similar to what's been said above, but I'd like to emphasise one suggestion which perhaps is only implicit in other people's answers (or which they might disagree with).
For me, learning category theory was done only after I'd learned a little bit about several different things, or at least struggled through courses on such. Thus for me its main attractions are twofold:
1) It often provides a unifying perspective on constructions which live in different subject areas but which seem awfully similar: e.g. the first isomorphism theorem for groups, rings, Banach spaces (suitably interpreted), and so on. Pushouts and pullbacks crop up all over the place too, once you get accustomed to the abstract picture. And Galois connections are somehow the "right" way to think about several condition-laden duality theorems, in both analysis and algebra. (Since you mentioned representation theory, at a very basic level there's the example of a group as a 1-object category - in which case representations are just functors from this category to Vect, intertwining maps between representations are natural transformations between these functors, and the restriction-induction duality is an adjunction between appropriate categories.)
2) Sometimes, if one wants to prove an identity or construct a map (homomorphism, continuous map, whatever), one direction or part turns out to follow "just from formal reasoning" or "just by abstract nonsense". So having some category-theoretic language at one's fingertips can be a good way to quickly work out which bits of a problem depend on the particular structures at hand. Again, various arguments about reflexivity and (weak) complementation for general Banach spaces can IMHO be clarified by knowing that the embedding of a Banach space in its bidual is a special case of the unit of an adjunction.
Thus, while I generally agree that it's better to learn category theory in the context of your particular discipline, I would say that it's also a good excuse to learn about parts of other disciplines; and conversely, the more examples you have from different parts of mathematics, the easier it'll be to understand the category-theoretic notions they exemplify.
Oh, and I quite like CWM, but I had to read it in conjunction with some course notes. So I'm not sure what it's like as a stand-alone source.
A: One of the best places I've found for the stuff (and it does tend to apply to the applications of categories to logic, but there's enough other stuff that it's worthwhile) is Lawvere and Rosebrugh 's "Sets for Mathematics." It does assume that you're ok with sets, and then does lots of categorical constructions with sets, and attempts to study the category of sets itself, where you have some intuition and know how to construct things (like products, coproducts, equalizers, etc).  Now, it is intending to get to topoi, though most of the book is fine for just getting the categorical language, and applying it to sets.
A: Read the first chapter (not more, since then the book gets a special bias) of Barr/Wells. This leads you in a very short and straightforward way through all basic concepts. The exercises are many, easy and illustrative - do a lot of them, and always try to see what the notions mean in other settings you know.
Contrary to many suggestions this would mean to start by studying pure category theory. But not for a long time, since the text is reasonably short. I found it good to go through the first few basic concepts at once, since together they make more sense than individually. Some examples are provided in the exercises, but after this try to find more sophisticated examples in fields you know...
A: I suggest reading Barry Mazur's introductory article "When is one thing equal to another thing?", found here http://www.math.harvard.edu/~mazur/preprints/when_is_one.pdf
A: Category theory on its own can appear very sterile and for good reason. Many of its concepts subsume and unify quite a few constructions in many other settings so a single definition "means" more in category theory than the same definition properly interpreted in some other theory. The others have already mentioned this but the best way to learn category theory is to pursue its development in a setting you are comfortable with. The current trend in graduate algebra books is to introduce categories quite early and use it as a guiding principle and unifying language for the development of the various algebraic theories. A favorite of mine is Paolo Aluffi's "Algebra: Chapter 0". My initial attempts at learning category theory failed miserably because I just stared at the diagrams hoping they would start to mean something so don't do what I did. Whenever you come across a definition or a diagram try to see what it means for sets and maybe one other algebraic category like rings or abelian groups, in fact the more you develop your set of examples the more you will appreciate the unifying language.
A: It seems the approach to learning category theory depends heavily on taste.
I just wanted to say something to contrast "that's a guaranteed way to learn to hate it":
I learned category theory from reading Mac Lane linearly (but over a long time, and later I put in some abelian categories from various other sources). First, because I needed to know what a functor and a transformation are. Then I discovered how good it is at unifying stuff and tried to make up examples as I read along.
I enjoyed this "abstract" approach to category theory, but I don't want to "do" category theory. I guess you just have to learn a few abstract concepts, see if this kind of learning pleases you and then decide which way to choose (the good references for the different ways are given here).
To give an example, you could try to understand what a limit, in the sense of category theory, is.
