|
|
|
|
|
by icc97
3153 days ago
|
|
> The world and your career are unpredictable, so you are better off learning subjects of permanent value. I've been looking for a way to express this idea for years. Doing a core subject at University like Mathematics or Physics can be used in a million different careers. In a similar way I'd recommend learning say Functional Programming over React or Scala. Plus I guess learning Category Theory over functional programming too, although I'm not quite sure how true that is. |
|
There is a level of abstraction which for most people is the wrong end of the stick to start from. Category theory is one of them. (and I'm a big fan of category theory and Haskell).
Category theory may occasionally lead to elegant, orthogonal and consistent solutions, especially if you are building new abstract tooling (LINQ in C# is a good example). It gives you tools to reason about structure.
However in most situations, it doesn't give you anything you can directly use. Most of them time it serves to clarify and enlighten rather than generate. Categorical thinking [0] may be more useful than the actual theory.
If you seek to apply category theory without first getting your hands dirty with conventional "inefficient" programming, you will end up with abstruse solutions that are potentially overly complicated and unmaintainable. Applying theory without the requisite real-world experience (to temper the tendency toward heavy abstraction) is a problem of youth. The world is not full of highly-intelligent people who can work with highly abstract code. One needs to learn to work with the inelegance in the real world and with other people in the system. A larger coherent system, though weak in parts, may produce a better result than a few bright people.
[0] https://www.johndcook.com/blog/applied-category-theory/