Introduction to Categories and Categorical Logic by Samson Abramsky and Nikos Tzevelekos.
Category theory is important for theoretical CS and I suspect should skilled explanations come along, CS practice as well.
From the preface:
The aim of these notes is to provide a succinct, accessible introduction to some of the basic ideas of category theory and categorical logic. The notes are based on a lecture course given at Oxford over the past few years. They contain numerous exercises, and hopefully will prove useful for self-study by those seeking a first introduction to the subject, with fairly minimal prerequisites. The coverage is by no means comprehensive, but should provide a good basis for further study; a guide to further reading is included.
The main prerequisite is a basic familiarity with the elements of discrete mathematics: sets, relations and functions. An Appendix contains a summary of what we will need, and it may be useful to review this first. In addition, some prior exposure to abstract algebra—vector spaces and linear maps, or groups and group homomorphisms—would be helpful.
Under further reading, F. Lawvere and S. Schanuel, Conceptual Mathematics: A First Introduction to Categories, Cambridge University Press, 1997, is described by the authors as “idiosyncratic.” Perhaps so but I found it to be a useful introduction.