Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I completely agree about the power of math, and why programmers should learn it. There are two problems with math:

(1) Math is IMHO the worst taught of all academic subjects.

It's taught as if it were not a language. Math profs and books on mathematics never explain what the symbols mean. They just throw symbols at you and then do tricks with them and expect you to figure out that this symbol means "derivative" in this context. I have literally seen math texts that never explain the language itself, introducing reams of new math with no definitions for mathematical notation used.

I've looked for a good "dictionary of math" -- a book that explains every mathematical notation in existence and what it means conceptually -- and have never found such a thing. It's like some medieval guild craft that is passed down only by direct lineage among mathematicians.

Concepts are often never explained either. I remember struggling in calculus. The professor showed us how to do a derivative, so I mechanically followed but had no idea why I was doing what I was doing. I called up my father and he said one single sentence to me: "A derivative is a rate of change."

A derivative is a rate of change.

I completed his thought: so an integral is its inverse. Bingo. From then on I understood calculus. The professor never explained this, and the textbook did in such an unclear and oblique way that the concept was never adequately communicated. It's one g'damn sentence! The whole of calculus! Just f'ing say it! "A derivative is a rate of change!"

(2) The notation is horrible.

If math were a programming language it would be C++, maybe even Perl. There are many symbols to do the same thing. Every sub-discipline or application-area of mathematics seems to have its own quirky style of notation and sometimes these styles even conflict with each other.

Yet baroque languages like C++ and Perl at least document their syntax. If you read an intro to C++ book it begins its chapter on templates by explaining both what templates are for and the fact that type<int> means "type is templated on int."

Math doesn't do this. It doesn't explain its syntax. See point #1 above.



I agree wholeheartedly with how frustrating it is. I think part of the problem is that really great mathematicians are encouraged to stay as far away from teaching (and improving their teaching) as possible, and great teachers are often discouraged from pursuing more mathematics for a variety of reasons. And when I personally teach calculus I make sure to explain derivatives in the way you want in the very first day (before describing limits or anything else).

As to your second point, I think notation is a big problem, but it's a bit of a straw man. With very few exceptions that I doubt you would ever find yourself in, I have never met a professor or mathematician that would not explain notation if you asked (gladly stopping in the middle of a lecture or talk to clarify). There is still a lot of it, but every mathematician who is presenting the mathematics can explain the notation to any degree of precision you could ever want, and I have very few colleagues who have never stopped someone for this reason.

I think the bigger problem is trying to read mathematics by yourself, without the ability to ask questions. And even after understanding the notation, I feel programmers have bigger problems, which I've expanded more on in this post [1], the main difference between learning programming being there are simply more free and open resources for learning programming. This is probably because programmers invented the internet and filled it with their favorite content first.

But one point I make is that mathematical notation is inherently ad-hoc, and the only kinds of notation that stick around are the kinds that get used ad-hoc enough times to become standard. And even then people will make up their own notation for no other reason than that it's their favorite (Physicists are really good at this, and perhaps ironically it drives mathematicians crazy). Because of that (and because notation is introduced often to be rigorous, not to explain a concept) you're unlikely to ever find such a dictionary. Sorry :(

[1]: http://jeremykun.com/2013/02/08/why-there-is-no-hitchhikers-...


The problem is really very simple.

First you teach the basics of the language. Then you teach how to express concepts in that language and what those concepts mean. Finally, you teach how to manipulate those concepts to build new higher-order forms.

Mathematics is taught like this:

First, students are shown how to manipulate symbols they do not understand. During this process, sometimes (if you're lucky) these symbols are explained in a piecemeal and oblique way. Sometimes conceptual meaning is discussed at the end to wrap things up (oh by the way this is what you'd use this for, now let's move on), but this is rare. Mostly you just get elaborate dances of symbols thrown at you with no explanation to tie what you're doing to any problem, reality, or conceptual meaning. In the end most students end up memorizing these meaningless opaque incantations and never understand why anyone would be interested in math.


I don't think just doing everything from first principles is reasonable. Building up the natural numbers from set theory etc. would just be frustrating for kids.

Like trying to teach them their native language by grammar diagrams etc. instead of immersion

http://en.wikipedia.org/wiki/Language_immersion

Math is not exactly the same as natural language, but there are tradeoffs to doing it one way or the other and there needs to be balance.


This may have been how you were taught, and that's unfortunate.

It is not, however, "how mathematics is taught".


Ah, well I wasn't speaking about mathematics education (in, say, high school). Because there are a whole lot of problems with that beside the notation.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: