4 ms·
This comes up every so often and people argue over the merits of learning category theory or not or how useful or abstract it is. The answer is it is very abstr
by dkarapetyan 10y ago
This comes up every so often and people argue over the merits of learning category theory or not or how useful or abstract it is. The answer is it is very abstract and you shouldn't learn it expecting great dividends in your day to day work. Like with most mathematics you should learn it because it will change the way you think and solve problems. I definitely don't use calculus in my day to day work but the idea of infinitesimal quantities, continuity, and linear approximations have more than once helped me come up with an approximation to a problem that has made the solution tractable.
If you are expecting to apply something immediately to your work then combinatorics and probability theory are way more relevant and practical for day to day programming work.
- gclaramunt 10y agoBut category theory has direct application to programming: (ignoring non-termination), types and functions form a category and most of the concepts are directly applicable. Functors/map are of everyday use and other CT results are commonly used. Even JavaScript is getting functional, so CT is getting more relevant and practical everyday
- dkarapetyan 10y agoThen you should learn type theory proper. Although type theory can be expressed in terms of categories that is mostly because type theory and category theory, alongside set theory, higher-order logic, etc. are foundational theories. So even though it is applicable, concepts from type theory are much more relevant, with or without the categorial phrasing.
- johncolanduoni 10y agoI love category theory, but I feel that its penetration of JavaScript or most other languages doesn't (and likely won't) get much farther than monads and functors. Many people who use functional languages don't even know about applicatives, even though monads can be viewed as a specialization them. If you're thinking about new programming paradigms I think the theory behind CT versions is worth knowing, but if most of your monads are maybes or lists it'll be of little practical value.
- conistonwater 10y ago> but if most of your monads are maybes or lists it'll be of little practical value. I think even this is maybe too much: if all you use are monads and functors, then it's easy enough to learn monads and functors on their own, without any "real" category theory.
- deleted 10y ago[deleted]
- tjl 10y agoI know a friend of mine used category theory heavily in his Ph.D. thesis which was related to GIS and optimization. I keep meaning to learn more category theory so I can have a chance of understanding his thesis.
- groovy2shoes 10y agoIn my line of work, I've been well-served by first-order logic, graph theory, and automata theory. But what to learn depends as much on what you know as it does on what you do. For example, if you don't know set theory, you should probably start there because practically every other branch of discrete mathematics rests on a foundation of set theory. If you do know set theory, you can pretty much take your pick among the branches of discrete math. Of course, there's more to math than just the discrete variety, and although I feel as though discrete math has served me the most in my programming career, it would never hurt to study numeric analysis/methods, the infinitesimal calculus, etc. Abstract algebra has also been a fun subject for me, but hasn't really affected my programming as much as I'd anticipated. I suppose by the time I learned about abstract algebra, I'd already been well-versed in ADTs (both kinds - abstract and algebraic data types) and object-oriented design, and, apart from some new terminology, the underlying concepts didn't feel particularly new or profound to me.