
I won't pretend I absorbed all (or even most) of it, but I at least understand the "Standard Haskell Joke" now (which is a funny misquote from his book)[1][2]. I also understand much more clearly why Haskell is so associated with Category Theory.
[1]: "A monad is just a monoid in the category of endofunctors, what's the problem?"
[2]: What MacLane actually wrote is:
All told, a monad in X is just a monoid in the category of endofunctors of X, with product × replaced by composition of endofunctors and unit set by the identity endofunctor.
It is certainly "for the Working Mathematician", so don't make bones about that, but to not include it in a reading list is criminal. If nothing else, buy it and keep rereading it from the beginning as a barometer for how much you're learning. As you penetrate it more and more you can judge that as meteoric increase in understanding.
Mac Lane (Categories for the Working Mathematician) also has exercises and I think the ones from the first few chapters aren't so hard.
The Little Schemer/Typer could be used as a preparatory text to gear one up for HoTT.
It also has the advantage of being a bit more applicable to functional programming languages, maybe even more so than Mac Lane’s Categories for the Working Mathematician (which I sometimes see suggested to mathematically-inclined Haskell novices).
FWIW, I am very against this recommendation. That book is needlessly opaque. I don’t know a good recommendation for category theory, but that isn’t it.