3 ms·
So. Just to clear up which math is good for a programmer to learn. All computer science is divided into Theory A (algorithms and complexity) and Theory B (logi
by cousin_it 10y ago
So. Just to clear up which math is good for a programmer to learn.
All computer science is divided into Theory A (algorithms and complexity) and Theory B (logic and programming language design). Applications of category theory are part of Theory B. If you're a programmer who wants to have real world impact, you should study tons of Theory A and completely ignore Theory B.
That sounds inflammatory, but it is unfortunately 100% true. All of Theory B combined has less impact than a single hacker using Theory A to write Git or BitTorrent.
- zepolud 10y agoSadly, Turing wasn't aware of this at the time -- think of the real world impact he could have had.
- cousin_it 10y agoTuring's work was in algorithms, models of computation, and cryptanalysis. All that is considered part of Theory A, see e.g. http://blog.computationalcomplexity.org/2003/03/theory-and-theory-b.html http://blog.computationalcomplexity.org/2003/03/theory-and-t....
- zepolud 10y agoTake a minute and reflect on the fact that you're arguing Turing had nothing to do with mathematical logic. His doctoral advisor was Church, his work based on Gödel, his thesis named Systems of Logic Based on Ordinals. Comments like these show the perils of treating mathematics like a cookbook. It's a very limiting mindset.
- cousin_it 10y agoI'm arguing that Turing's impact on computing (most importantly, defining the Turing machine) didn't have much to do with logic. His work on logic is also important, but I don't think it's useful for a programmer.
- soberhoff 10y agoOn the other hand the fact that you're reaching all the way to Turing to exhibit a clear impact on practice suggests that for the programmer without such grand aspirations there isn't much to be gained.
- valw 10y agoI wonder how the Theory A hackers would impacting the world without the programming languages, databases and concepts the Theory B guys made for them. And this progress is still happening today. Technologies like Golang, Apache Kafka or React are changing the face of the industry because they bring new programming models, not just algorithms.
- cousin_it 10y agoGolang came from the systems programming world, not the Theory B world. In this regard it's similar to C or Java. If you want a language that came from the Theory B world, try Haskell.
- theoh 10y agoIt has been noted that the relative poverty of Europe in the post-war period led to emphasis on what you call Theory B in those countries. Hardware or allocated processor time was not necessary to make theoretical progress. The wealthy US was doing much more in the way of computations on real hardware and algorithms and complexity (Theory A) became a crucial focus for equally pragmatic reasons. You still design the new theoretical object on paper, of course... I think I've mentioned this theory before, and I'd love some corroboration or counterexamples.
- alimw 10y agoThis does surprise me (I never studied computer science). Isn't Theory A mostly about efficiency of implementation? In the real world, surely the ability to model a problem domain well and to map it into code neatly (Theory B) is going to be more valuable than the ability to make some particular implementation super-efficient?