4 ms·
I'm deeply devoted to mathematics, and even I admit that you don't need any math beyond boolean logic and arithmetic to have a successful career as a programmer
by j2kun 11y ago
I'm deeply devoted to mathematics, and even I admit that you don't need any math beyond boolean logic and arithmetic to have a successful career as a programmer.
The rest of this comment is a pitch.
All that being said, I have found that a little bit of math makes programming way more fun. I've been writing a blog called "Math Intersect Programming" [1] for four years now, and it's turned into a little catalogue of cool things you can do with math. While linear algebra suffices for a lot of these applications, the rabbit hole goes pretty deep past calculus and basic statistics. The central skill I've found useful is simply learning to read mathematics in a productive way (it's not like any other kind of reading you've ever done before, though if pressed I'd say it's closest to reading dense software documentation).
In image processing, you can cleverly manipulate graphics [2], make "hybrid images" [3] and digital watermarks [4], and do procedural content generation [5].
While we all know graphs are ubiquitous in algorithms (searching, ranking, data structures, etc), you can also do fun things like finding communities [6] and turning "hard" computational problems into neat games [7] (or vice versa).
You can do cryptography and cryptanalysis [8], hunt serial killers [9], share secrets [10], compute cheap and healthy diets [11], design markets [12], detect and recognize faces [13], and all sorts of other things (my blog just has examples I happen to think are fun, ignoring many examples that are actually lucrative).
More generally by studying math you learn to tell what problems should be attacked with what tools. You learn that any time anything exhibits symmetry it should be studied with groups [13]. Or that with some elbow grease you can solve lots of problems (like register allocation) by doing graph coloring [14] or linear programming [11] or some basic Fourier analysis [15]. The more you learn the more you get to think about, like "the shape of data" [16].
And before you know it you're like me and you think algorithms with elegant mathematical analyses are beautiful and worth studying for their own sake. You give up your overpaid software career, get a PhD in math, and wonder if you'll ever have enough time to learn everything you want to know.
[1]: http://jeremykun.com/ http://jeremykun.com/
[2]: http://jeremykun.com/2013/03/04/seam-carving-for-content-aware-image-scaling/ http://jeremykun.com/2013/03/04/seam-carving-for-content-awa...
[3]: http://jeremykun.com/2014/09/29/hybrid-images/ http://jeremykun.com/2014/09/29/hybrid-images/
[4]: http://jeremykun.com/2013/12/30/the-two-dimensional-fourier-transform-and-digital-watermarking/ http://jeremykun.com/2013/12/30/the-two-dimensional-fourier-...
[5]: http://en.wikipedia.org/wiki/Perlin_noise http://en.wikipedia.org/wiki/Perlin_noise
[6]: http://jeremykun.com/2014/05/19/community-detection-in-graphs-a-casual-tour/ http://jeremykun.com/2014/05/19/community-detection-in-graph...
[7]: http://jeremykun.com/2014/03/17/want-to-make-a-great-puzzle-game-get-inspired-by-theoretical-computer-science/ http://jeremykun.com/2014/03/17/want-to-make-a-great-puzzle-...
[8]: http://jeremykun.wordpress.com/2012/02/03/cryptanalysis-with-n-grams/ http://jeremykun.wordpress.com/2012/02/03/cryptanalysis-with...
[9]: http://jeremykun.com/2011/07/20/serial-killers/ http://jeremykun.com/2011/07/20/serial-killers/
[10]: http://jeremykun.com/2014/06/23/the-mathematics-of-secret-sharing/ http://jeremykun.com/2014/06/23/the-mathematics-of-secret-sh...
[11]: http://jeremykun.com/2014/06/02/linear-programming-and-the-most-affordable-healthy-diet-part-1/ http://jeremykun.com/2014/06/02/linear-programming-and-the-m...
[12]: http://jeremykun.com/2014/04/02/stable-marriages-and-designing-markets/ http://jeremykun.com/2014/04/02/stable-marriages-and-designi...
[13]: http://jeremykun.wordpress.com/2012/12/08/groups-a-primer/ http://jeremykun.wordpress.com/2012/12/08/groups-a-primer/
[14]: http://jeremykun.com/2011/07/14/graph-coloring-or-proof-by-crayon/ http://jeremykun.com/2011/07/14/graph-coloring-or-proof-by-c...
[15]: http://jeremykun.com/2012/05/27/the-fourier-transform-a-primer/ http://jeremykun.com/2012/05/27/the-fourier-transform-a-prim...
[16]: http://www.ams.org/notices/201101/rtx110100036p.pdf http://www.ams.org/notices/201101/rtx110100036p.pdf
- 1_player 11y agoThose are really interesting articles! Thanks, hope to see more from you.