Adding Up Numbers is Very Fun
So, Stevey used to be at Amazon, but now he\’s at Google. At Amazon, his blog was one of the high points, and it was a sad day when I learned he wouldn\’t be able to back me up in my battles anymore. Now his blog is public, and it seems to be catching on already. Not to be left out, I figured I\’d offer my own comments on his suggestions for learning math.
First, Steve\’s eloquence and conviction are things that I aspire to. It helps that I agree with him an awful lot. I too have been going through a period of math repair, although it sounds a bit less successful than Steve\’s. I\’ve been doing the math book thing, but I find it so easy to come back to the computer and start writing code again, putting my studies on the backburner, or at least picking up some lighter fare like The Man Who Loved Only Numbers and Another Fine Math You\’ve Got Me Into. I think Steve\’s approach can inform my own, though — I need to spend more time browsing sites like MathWorld and Wikipedia, picking up more names, notation and broad concepts.
As I\’ve been reading, I\’ve been keeping track about what is needed in other places, in order to hopefully arrive at some general ordering of subjects that can make other people\’s path easier. But, Steve\’s post made me rethink that. See, I definitely noticed the poor state of math curriculum in US schools, but my assumption was that it was a poor choice of subjects that caused it. I agreed with Steve that there was too much emphasis on \”memorize this formula\” and none on \”what does this represent?\” but I was wrong in thinking things like Abstract Algebra should replace those early subjects.
What should happen, as Steve points out is that the base should be widened. My approach of \”master this topic, then this one, then this one\” misses the point in the same way that the schools do. Math should be taught in such a way that notation is learned, and many topics and fields are introduced so that students can start to see which areas are interesting to them, and begin to decide where they want to delve more deeply, while still keeping an eye on what\’s happening elsewhere.
A few of the commenters, like this gem, seemed to miss Steve\’s point that school should be all about breadth:
This is the dumbest thing that I have read in a long time. This guy argues that he doesn\’t use several topics that are in the current curriculum, so therefore they shouldn\’t be there. He then argues for his own curriculum, which is meaningful only for computer programmers.
Apparently that guy read a different post than I did. The curriculum Steve advocates is all about not focusing on specific fields. Granted, he also talks about what math is useful to him as a programmer (and to a lot of us other programmers out there), but I think it\’s pretty clear that he\’s talking about two different things there. However, most of the comments are on target: suggestions of what books to look at, arguments on a particular point, etc. — generally very high quality, and worth the time of reading at least some of the longer ones.
Some of the commenters mentioned that the fields Steve thinks are important are only relevant to a particular subset of programmers and that other topics may be more useful for, say, 3D graphics. To continue in that vein, I think there\’s another field of math that is particularly important to programmers: Category Theory. Of course, I\’ve heard this, but I haven\’t verified it yet, because every time I try to read a page of Basic Category Theory for Computer Scientists I have to stop and read some other math book before I understand it. What I know thus far is that it\’s used as the basis of quality type systems (and even if you\’re using a dynamic language, don\’t doubt that the compiler or runtime you\’re using is doing some latent static typing to boost the performance a bit).
Anyway, I\’m glad to see Steve\’s got a blog up and that I can finally point it out to people rather than having to say, \”this guy at Amazon wrote this thing where….\”