Fork me on GitHub

I just saw this: and I’ve also been wanting to gain some math knowledge. Anyone have any feedback on how well it synergizes with software development? Also differences of pure math route vs math + statistics?

Daniel Hines14:01:58

Wow, thanks for sharing this!


Dependes on the type of software that you are doing. Very broadly: Statistics -> Machine Learning Geometry + Linear algebra -> Graphics Calculus + numerical methods -> Physics simulations Type theory -> Programming languages Group theory -> ???? Category theory -> Haskell and friends very big etc


Also, CS curriculums generally have a discrete mathematics course which applies directly to the design and analysis of algorithms


Graph theory -> compilation Analysis + linear algebra -> optimization Logic + boolean algebra -> query engines


Leaving aside these 'scientific / algorithmic' areas of computer science, for the kind of application development / data plumbing I do with Clojure, I don't find that there's too much synergy. About as much synergy as there is between rock climbing and trail running: sometimes when running a trail, your will encounter an obstacle that your climbing skills will help you overcome; and trail running will put you in a rather good shape for climbing, but that is not sufficient to be a good climber.


I think the most significant benefits of mathematics in this area is bringing powerful metaphors. Notions like orthogonality, independence, local optima, duality etc. can be very useful insights.


As someone who studies maths on the side, I also find they're good sharpening your brain in general. When you regularly tackle tricky problems and ingest big abstractions, dealing with day-to-day programming problems doesn't seem too daunting from a conceptual standpoint.


Finally, I find that practicing mathematics can help with writing clear code and documentation. Writing a mathematical proof is an activity of taking an intricate reasoning (computation) and laying it out in an evident form.


Great feedback, I never really felt like I was lacking anything when delivering projects, but it’s also one of those cases of not knowing what I don’t know.