I have a disclaimer. I'm not an expert in category theory at all. However, my primary background is in mathematics and I've "looked over the basics" as they say.
If you'll allow me to dodge the question just a little bit, I'd recommend that you dive in and see what it feels like to start learning it. The way I think that could proceed is to a) go find a book, lecture, video, or other resource you'd like to engage with, and b) start devouring it. If you run into conceptual difficulties, start looking online for ways to explain that difficult concept to yourself so that you can proceed.
Hopefully that isn't flippant, but I've found myself in similar situations and I wish I'd just gone and started in this direction.
To try to answer the core question, I think if you have a high school background in logic and the ability to think abstractly, that's the only real prerequisite for learning category theory. Many of the advanced concepts in category theory are really explanations for how concepts in algebra, analysis, etc (<- sub-fields of mathematics) are grounded in category theory. In this sense, I find that folks gain a better understanding of category theory because they'll start to see similar patterns in their respective parts of mathematics. So, what makes studying it difficult is that many of the examples of "what a category is" are from various parts of math. This can be a big hurdle, but the works of Spivak are very good about presenting just the necessary category theory as well as giving you examples that aren't purely mathematical. Check out "Category theory for scientists (Old version)"[1] or "Seven Sketches in Compositionality: An Invitation to Applied Category Theory"[2]. They're books that I've studied and I really like how much effort the author has put in to make it accessible to non-mathematicians.
Some parting thoughts.
- You can understand Haskell & friends without understanding category theory
- This StackExchange answer[3] has some other useful information
If you'll allow me to dodge the question just a little bit, I'd recommend that you dive in and see what it feels like to start learning it. The way I think that could proceed is to a) go find a book, lecture, video, or other resource you'd like to engage with, and b) start devouring it. If you run into conceptual difficulties, start looking online for ways to explain that difficult concept to yourself so that you can proceed.
Hopefully that isn't flippant, but I've found myself in similar situations and I wish I'd just gone and started in this direction.
To try to answer the core question, I think if you have a high school background in logic and the ability to think abstractly, that's the only real prerequisite for learning category theory. Many of the advanced concepts in category theory are really explanations for how concepts in algebra, analysis, etc (<- sub-fields of mathematics) are grounded in category theory. In this sense, I find that folks gain a better understanding of category theory because they'll start to see similar patterns in their respective parts of mathematics. So, what makes studying it difficult is that many of the examples of "what a category is" are from various parts of math. This can be a big hurdle, but the works of Spivak are very good about presenting just the necessary category theory as well as giving you examples that aren't purely mathematical. Check out "Category theory for scientists (Old version)"[1] or "Seven Sketches in Compositionality: An Invitation to Applied Category Theory"[2]. They're books that I've studied and I really like how much effort the author has put in to make it accessible to non-mathematicians.
Some parting thoughts.
- You can understand Haskell & friends without understanding category theory
- This StackExchange answer[3] has some other useful information
[1] https://arxiv.org/abs/1302.6946
[2] https://arxiv.org/abs/1803.05316
[3] https://math.stackexchange.com/questions/21128/when-to-learn...