# What does HackerNews think of milewski-ctfp-pdf?

Bartosz Milewski's 'Category Theory for Programmers' unofficial PDF and LaTeX source

https://bartoszmilewski.com/2014/10/28/category-theory-for-p...

Category theory for programmers (free book):

That said, if I had to guess at what would be effective at getting up to speed without spending 25 years, would be to checkout https://github.com/hmemcpy/milewski-ctfp-pdf Category Theory for Programmers. Milewski was one of those people who were like "Oh, it's simply Yoneda this and Yoneda that", and he figured it out all himself in parallel without seeing my proof.

But I doubt it will be like, knowing Category Theory will enable you to have super powers for abstraction design. Rather it will be a matter of having enough mathematical tools at your disposal plus the right inspiration at the right time to realize that ones of those tools can happen to solve your abstraction programming problem you happen to be facing at some moment, in a way that is not obvious, if you are lucky. In fact, you likely have to first guess at what the right abstraction is and then fall back on Category Theory to verify the sanity of your guess.

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

lectures -> https://www.youtube.com/user/DrBartosz

[1] https://github.com/hmemcpy/milewski-ctfp-pdf/

[2] https://github.com/hmemcpy/milewski-ctfp-pdf/releases/tag/v1...

[3] https://github.com/hmemcpy/milewski-ctfp-pdf/issues/169#issu...

*Category Theory for Programmers*https://github.com/hmemcpy/milewski-ctfp-pdf

Folks please read https://github.com/hmemcpy/milewski-ctfp-pdf

Re: learning Haskell

Best way is to do it https://github.com/data61/fp-course and https://m.youtube.com/playlist?list=PLly9WMAVMrayYo2c-1E_rIR...

The pdf generated from his blog is also interesting :

https://github.com/hmemcpy/milewski-ctfp-pdf

These are the best resources I found about the subject.

Autodidact is a pedagogical implementation of AD: https://github.com/mattjj/autodidact

A nice literature review from JMLR: http://www.jmlr.org/papers/volume18/17-468/17-468.pdf

This paper reinterprets AD through the lens of category theory, an abstraction for modeling a wide class of problems in math and CS. It provides a language to describe these problems in a simple and powerful way, and is the foundation for a lot of work in functional programming (if you're interested in that kind of stuff). There was a thread on HN recently that discusses why category theory is useful: https://news.ycombinator.com/item?id=18267536

"Category Theory for the Working Hacker" by Philip Wadler is a great talk if you're interested in learning more: https://www.youtube.com/watch?v=gui_SE8rJUM

Also recommend checking out Bartosz Milewski's "Category Theory for Programmers": https://github.com/hmemcpy/milewski-ctfp-pdf

related HN discussion: https://news.ycombinator.com/item?id=15372856

Yes. Very much so. Especially if you're programming functionally. It will explain why all this is the way it is. Why sum types and product types are what they are, the big picture on functors, monads, etc, etc.

I like Bartosz Milewski's introduction [1][2] where he states (paraphrasing) that he started programming back in the day with assembly, and as programs got more difficult we needed higher level abstractions, so he moved to procedural languages, and then after that another higher abstraction was OO, but he realised that OO has a fundamental problem: objects don't compose, and so he found himself functional programming with Haskell... each time looking for better abstractions.

Category Theory is the ultimate abstraction and although you can't write code with it, you can step outside of the detail of complex solutions and think about the bigger picture and then use that bigger picture to help you build your detail. And that's why I think it's valuable.

I particularly like his journey too, as it exactly reflects my own.

[1] Category Theory for Programmers - https://github.com/hmemcpy/milewski-ctfp-pdf