Hacker News new | past | comments | ask | show | jobs | submit login

"This assumes you are familiar with Haskell typeclasses and basic category theory."

Where do I learn basic category theory? Anything better than just perusing wikipedia?

There was a UReddit course several months back, those videos might still be up. Where to go really depends on what you want to learn. If you just want to get a general feel for it, Wikipedia's probably the best place. If you want to actually learn the subject, it's going to take some studying. If you don't have any abstract algebra you'll almost certainly benefit from learning some first. I found Dummit & Foote and Artin to both be useful texts for abstract algebra, and Awodey to be useful for category theory.

Try the free online textbook Category Theory for Computing Science by Michael Barr and Charles Wells [1]. It's a true textbook with exercises and lots of content.

[1]: http://www.math.mcgill.ca/triples/Barr-Wells-ctcs.pdf

If you have time, Steve Awodey's book "Category Theory" is both beginner-friendly and helpful. You can get a PDF of an early pre-print online. He covers monads towards the end. If you are an experienced Haskell programmer, I've seen a few "Category Theory for Haskell programmers" tutorials around. That all said, I don't think that knowledge of Category Theory is a prerequisite to effective programming in Haskell (or any other language that features monads).

This one is good, but more Haskell than category theory.

It first clicked for me when reading Barr and Wells' Category Theory for Computing Science [0], but I don't know about your mathematical background. Category theory is algebra, so it's probably advisable to study basic group theory before tackling category theory. (I have a hard time seeing how functors make sense until you've understood the general concept of a homomorphism, which is perhaps easiest to do in the context of groups).

[0]: http://www.case.edu/artsci/math/wells/pub/ctcs.html

"Sets for Mathematics" by Lawvere/Rosebrugh. Learning category theory via the category of sets.

Only requires some comfort in proof writing, at least what would be covered in a first course in discrete math.

Having some Linear Algebra, Groups, Rings, Topology, provide some concrete structures to help contextualize the material but it is not required.

There was a good thread on /r/haskell posted recently that should help: http://www.reddit.com/r/haskell/comments/1ht4mf/books_on_cat...

A college CS or pure math course should cover it.

Hrm, not sure about that. I know of no college CS course that requires category theory, let alone having the expectation that a decent CS degree will give you exposure to it.

As an example, the University of Chicago, my alma mater, doesn't expose CS students to Category Theory. Of all the places it might be where you's expect it the most. It has a notoriously "theoretical" computer science department tied closely to the mathematics department and is where Category Theory was invented.

Even in a math degree, one wouldn't typically touch on Category Theory in a classroom setting until one studied Algebraic Topology. Before that students might come across it as a neat sideshow, but nothing they'd be interested in using to solve an actual mathematical problem. There are plenty of students who get a BS in mathematics without ever making a serious go at it.

It's also not really that useful as a first-order field of mathematics. It's mostly useful as a way of organizing other mathematical things and as I kind of general vernacular. Even mathematicians sometimes lovingly call it "abstract nonsense".

I see CT as a kind of mathematical interstate system. If you want to go back and forth between Chicago to LA it's fantastic, but most of your work is being done in Chicago or LA itself. The interstate system itself isn't that interesting most of the time.

Yes, I agree: you can easily do a bachelor's degree in either mathematics or computer science without ever being taught category theory (though the chances are you'd hear it mentioned a few times).

More specific evidence to go with jfarmer's: I read mathematics at the University of Cambridge -- like UChicago, an absolutely first-rate institution and not one that gives its students an easy ride -- and there category theory is not part of the undergraduate curriculum. It is one of the courses you can take in "Part III", which is a one-year taught master's degree[1].

[1] Until very recently, the best way to describe it was "a one-year taught master's degree that inexplicably isn't actually a master's degree". But they've fixed that now.

Perhaps should but didn't (CS).

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact