Books/lecture notes/videos on category theory for programmer I want to learn category theory. I tried different books and had several problems with them:


*

*Books are for mathematicians and they use a lot of examples with which I am not comfortable, like algebraic topology, advanced algebra, etc. 

*Book which simplify things too much and doesn't contain any useful theorems.


I want a book which would give me a deep understanding of category theory and at the same time provide examples from the area which I am familiar with, i.e. computer science, type theory, logic, etc.
I tried the following books so far:


*

*Basic Category Theory for Computer Scientists (Foundations of Computing). I was able to understand well 60% of the book but I didn't get intuition of category theory, the book contains too few examples.

*Categories and Computer Science. The book is too basic for me. 

 A: I asked the same question about a week ago at the chat and someone pointed me to a book called The Joy of Cats. It's free so you should definitely take a look at it. I think its kind of hard but you don't lose anything by trying it.
A: Read "Category Theory" by Steve Awodey. It is a rigorous introduction to category theory (goes as far as adjoints, some monads, Yoneda, ... ) which intentionally does NOT include examples that only a maths major can understand. Instead, its examples are drawn from logic, lambda calculus, etc.
A: If you want to understand the fundamental use of category theory in the semantic analysis of computation, I would recommend:


*

*Semantics of Programming Languages (by Carl Gunter)

*Axiomatic Domain Theory in Categories of Partial Maps (by Marcelo Fiore)


If, on the other hand, you are looking to understand the connection between type theory and the Curry-Howard isomorphism, nothing beats Lectures on the Curry-Howard Isomorphism which is book 149 in Elsevier's Studies in Logic and the Foundations of Mathematics.
Also, once you have a fair grasp of these complementary looks at semantic theory in computer science, then it becomes very useful to study up on categorial methods of proof theory, as you should have at that point a clearer idea of the relationship between proofs and program execution.
A: Another possible choice may be
Michael Barr, Charles Wells: Category Theory for Computing Science
A description is here:
http://www.cwru.edu/artsci/math/wells/pub/ctcs.html
EDIT: Now the authors have kindly made a pdf version of their book available.
The link is:
ftp://ftp.math.mcgill.ca/barr/pdffiles/ctcs.pdf
A: TheCatsters on Youtube has a video series. Edsko de Vries has an outline of the videos here and here.

Edit: There are references at the end of the "Abstract Nonsense for Functional Programmers" slides link. Also, an accessible intro to category theory for programmers can be found in Haskell books and tutorials, e.g. here, here, here and may be you can dig here: here.
A: Here are some lectures from Steve Awodey himself given at the Oregon Programming Languages Summer School 2012:


*

*Category Theory Foundations Lecture 1

*Category Theory Foundations Lecture 2

*Category Theory Foundations Lecture 3

*Category Theory Foundations Lecture 4
There is an Introduction to Category Theory course on Reddit University. While not aimed at programmers specifically, it looks to be a reasonable introduction.
A: Leinster recently came out with a fantastic book
Basic Category Theory, Tom Leinster, 2014
It is shallow in terms of proofs and direct applications to programming but it is deep with examples from all realm of mathematical concepts. This really will help you understand category theory from whichever mathematics you may already know best.
Specific to programming, this is the only one in my collection not previously mentioned:
Category Theory Lecture Notes by Daniele Turi
Good luck, keep asking questions, and welcome to the categorical club!!!
A: Maybe try Category Theory for Scientists by David Spivak?
A: For programmers who wish to learn Category Theory the best videos are those by Bartosz Milewski: 


*

*Category Theory for Programmers I & II videos in 19 lessons (38 videos)
https://www.youtube.com/playlist?list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_
list=PLbgaMIhjbmElia1eCEZNvsVscFef9m0dm

*The Blog/Book in 29 lessons that (roughly) parallel the videos:
https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/
As a follow-up, Introduction to Category Theory 1-6 by Steven Roman is a very clear 6 part YouTube video series and quite good (but I can't put in more than two links yet).  
The Catsters are ok, but the video production values are lacking, and the organization and coverage is definitely not competitive with Milewski's video series.
Generally the simplest book with 'REAL MATH' (e.g. for non-mathematicians)  is:**
Milewski's blog/book is excellent and Steven Roman also has a very clear books (about $25 from his web site).
Quite good in my opinion: Elements Of Basic Category Theory 1996 Martini & Nunes www.inf.pucrs.br alfio TReports catti.pdf
Categories, Types, & Structures: An Introduction to Category Theory for the Working Computer Scientist Asperti & Longo 1991
For intuition, this paper and the quote following give some interesting ideas
J. Baez, Categorification, available on the ArXiv: math.QA/980202

If one studies categorification one soon discovers an amazing fact: many
  deep-sounding results in mathematics are just categorifications of facts we
  learned in high school! 
There is a good reason for this. All along, we have been unwittingly ‘decategorifying’ mathematics by pretending that categories are just sets. We ‘decategorify’ a category by forgetting about the morphisms and pretending that isomorphic objects are equal. We are left with a mere set: the set of isomorphism classes of objects.
To understand this, the following parable may be useful. 
Long ago, when shepherds wanted to see if two herds of sheep were isomorphic, they would look for an explicit isomorphism. In other words, they would line up both herds and try to match each sheep in one herd with a sheep in the other. But one day, along came a shepherd who invented decategorification. 
She realized one could take each herd and ‘count’ it, setting up an isomorphism between it and some set of ‘numbers’, which were nonsense words like ‘one, two, three, . . . ’ specially designed for this purpose. 
By comparing the resulting numbers, she could show that two herds were isomorphic without explicitly establishing an isomorphism!  
In short, by decategorifying the category of finite sets, the set of natural numbers was invented.
According to this parable, decategorification started out as a stroke of mathematical genius.  Only later did it become a matter of dumb habit, which we are now struggling to overcome by means of categorification.

Many people will overlook: Sets for Mathematics, F. WILLIAM LAWVERE & ROBERT ROSEBRUGH but this book discusses the "Category of Sets" and not just classical set theory.0 You will recognize the first author (Lawvere) from Conceptual Mathematics which is often recommended as a good start to Category Theory.
A: Although not for beginners, the YouTube user Mathproofsable https://m.youtube.com/user/MathProofsable has a bunch of videos on category theory. The pace is pretty fast, but he goes pretty deep and is rigorous. It offers a nice supplement for someone who self-studies.
