I've recently been studying category theory, mostly from Riehl's book, a few years after finishing my undergraduate math degree at a well-regarded school. I can't help but feel a little cheated that not one of my professors thought it was important to show us a little category theory.

Learning category theory has brought clarity that I never felt as a student. I always had this strange feeling that many of my courses wasted time proving "the same" facts over and over again. From group theory, to linear algebra, to topology, to measure theory. We'd spend most of the semester proving some trivial facts about morphisms and functors, just specialized to an unfamiliar category, and by the time we were done, we only had time to prove one or two interesting theorems before the semester ended.

Back then, I had stumbled upon some Wikipedia pages about category theory, but all the jargon seemed impenetrable at the time. Now, I really wish it had part of the curriculum from the very beginning. Simply giving students in an abstract algebra class the simple definitions for category, functor, and natural transformation would go a long way. Math programs should probably also start teaching Haskell or Coq in the first or second year.

Are there any introductions to category theory you would recommend in particular?

A cursory glance gives me this: http://www.cs.nott.ac.uk/~pszgmh/cat.html

Which seems to avoid being very "mathy" right out of the gate, though I can't tell its quality.

MIT's 18.S097: Programming with Categories with Brendan Fong, Bartosz Milewski and David Spivak is great: http://brendanfong.com/programmingcats.html

All lectures from the course are in this playlist: https://www.youtube.com/playlist?list=PLhgq-BqyZ7i7MTGhUROZy...

Milewski's free book Category Theory for Programmers is a "classic" as well https://github.com/hmemcpy/milewski-ctfp-pdf

In general you can find videos on youtube of talks given at various industry functional programming conferences that often help since they start from the industry programmer point of view rather than the pure maths one.

E.g. A practical introduction to Category Theory (for Scala devs) https://www.youtube.com/watch?v=GNG3Gk9KsoI