Abstract algebra and programming languages
Initial algebras and free algebras are basic concepts of category theory. Thus
you may try the first chapters of [1] (in particular Section 2.2 Functional programming languages as categories) or the books [2] or [3].

[1] Category Theory for Computing Science by Michael Barr and Charles Wells 

[2] Basic Category Theory for Computer Scientists
by Benjamin C. Pierce. 

[3] A taste of category theory for computer scientists by Benjamin C. Pierce.