Live data from Hacker News

Math For Programmers

steve-yegge.blogspot.com

31–40 of 51 posts

Re: Math For Programmers

#31
post #4

I think that in this article Steve discounts the effect of actually doing the math for yourself. It's comparatively easy to read about something and think that you've understood it. It's another thing entirely to be able to do that math on paper and get the 'correct' answer without needing help.

There's actually a place slightly beyond "able to do it on paper" at which you grok the maths so well that you can apply it in non-obvious situations without any conscious effort. I'm not sure how to get there in general, but I've noticed that I'm more likely to be able to do this for subjects that I learned in proof-heavy classes.

> I understand what an equation means if I have a way of figuring out the characteristics of its solution without actually solving it.

-- Paul Dirac

Re: Math For Programmers

#32

I've never found any really good resource to learn Math from. The problem I get is that whenever I see a big equation I tend to see a few greek symbols that I have never seen before and I have literally no idea whatsoever what they mean. At least when looking at some unfamiliar code etc I can usually tell from function and variable names approximately what something is supposed to be. Wikipedia is hopeless for learni…

This was true for me, and partly out of frustration of this I picked up a major in math in addition to comp sci so I could get through more math heavy computer science books.

It depends what you are reading, but a good discrete math textbook provides a lot of groundwork for mathematics commonly used in computer science, but expects little in terms of prerequisites, so notation is usually explained.

At some level, learning the fundamentals is just necessary, but for computer science discrete mathematics and linear algebra (the basics of which are easy and also don't have much in terms of prerequisites) will get you far.

On the other hand higher math is ruthlessly cumulative. If you find that you need to understand Lagrange multipliers, for instance, you'll see they relate to the gradient, which has its own symbol, which is defined in terms of partial derivatives, which have their own symbol, which relates to limits of vectors, which have their own symbols and notations, etc.

Re: Math For Programmers

#33

I've never found any really good resource to learn Math from. The problem I get is that whenever I see a big equation I tend to see a few greek symbols that I have never seen before and I have literally no idea whatsoever what they mean. At least when looking at some unfamiliar code etc I can usually tell from function and variable names approximately what something is supposed to be. Wikipedia is hopeless for learni…

This is a good place to start when you see a symbol that you don't know.

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

Re: Math For Programmers

#34

I've never found any really good resource to learn Math from. The problem I get is that whenever I see a big equation I tend to see a few greek symbols that I have never seen before and I have literally no idea whatsoever what they mean. At least when looking at some unfamiliar code etc I can usually tell from function and variable names approximately what something is supposed to be. Wikipedia is hopeless for learni…

Wikipedia is a fantastic resource, but it is first and foremost an Encyclopedia, a reference. It has many times helped me refresh my memory or helped explain something I read first in another context. But it is not a good place to learn a brand new subject.

There are many good resources to learn math, most in the form of books (some of which have digital versions). Personally, I find it best to find a subtopic that interests me and dive in. Though I will say that I would recommend "Chapter Zero" to most people wanting to get back into math after a long break.

Re: Math For Programmers

#35
post #23

> For programmers, the most useful branch of discrete math is probability theory. ... What's probability theory, you ask? Why, it's counting. ... That paragraph made my left eye twitch a little. Not a big mistake, perhaps, but what he calls probability theory is actually combinatorics. Probability theory is decidedly non-discrete (integration of density functions?) and involves only two integers: 0 and 1. (A joke). M…

How is probability theory decidedly non-discrete? As far as I know as long as the number of possible outcomes is discrete (and in CS applications this is the common case) the integration of density functions turns into simple summations and there is a vast body of results and research limited to just this area of probability theory.

Re: Math For Programmers

#36

I've never found any really good resource to learn Math from. The problem I get is that whenever I see a big equation I tend to see a few greek symbols that I have never seen before and I have literally no idea whatsoever what they mean. At least when looking at some unfamiliar code etc I can usually tell from function and variable names approximately what something is supposed to be. Wikipedia is hopeless for learni…

Wikipedia is a fantastic resource, but it is first and foremost an Encyclopedia, a reference. It has many times helped me refresh my memory or helped explain something I read first in another context. But it is not a good place to learn a brand new subject. There are many good resources to learn math, most in the form of books (some of which have digital versions). Personally, I find it best to find a subtopic that i…

Yes, Wikipedia has it's advantages as an encyclopedia.

I simply mentioned it here since Steve advocates just diving in and following links on wikipedia as a way to learn a subject.

This might be a great way to find out what stuff is out there to learn or for somebody more familiar with Math to get a synopsis of a topic but as a learning resource for a newcomer to any particular field it seems likely to reduce you to a jibbering wreck very quickly.

Re: Math For Programmers

#37
post #35
post #23

> For programmers, the most useful branch of discrete math is probability theory. ... What's probability theory, you ask? Why, it's counting. ... That paragraph made my left eye twitch a little. Not a big mistake, perhaps, but what he calls probability theory is actually combinatorics. Probability theory is decidedly non-discrete (integration of density functions?) and involves only two integers: 0 and 1. (A joke). M…

How is probability theory decidedly non-discrete? As far as I know as long as the number of possible outcomes is discrete (and in CS applications this is the common case) the integration of density functions turns into simple summations and there is a vast body of results and research limited to just this area of probability theory.

Sigh. Maybe "decidedly" was not the correct word. Still, "if you only consider the discrete parts of probability theory, then probability theory is discrete math" is not useful.

Re: Math For Programmers

#38

I've never found any really good resource to learn Math from. The problem I get is that whenever I see a big equation I tend to see a few greek symbols that I have never seen before and I have literally no idea whatsoever what they mean. At least when looking at some unfamiliar code etc I can usually tell from function and variable names approximately what something is supposed to be. Wikipedia is hopeless for learni…

Shameless plug, but I try to explain math concepts on my blog. Here's an example for e, which eluded me for a while:

http://betterexplained.com/articles/an-intuitive-guide-to-ex...

My goal is to explain ideas as I wish they were shared with me: informally, with the primary focus on intuition (there are plenty of places to practice the mechanics). Hopefully it can come in useful for you.

Re: Math For Programmers

#39

I've never found any really good resource to learn Math from. The problem I get is that whenever I see a big equation I tend to see a few greek symbols that I have never seen before and I have literally no idea whatsoever what they mean. At least when looking at some unfamiliar code etc I can usually tell from function and variable names approximately what something is supposed to be. Wikipedia is hopeless for learni…

The best resources for learning math are textbooks. Learning math from pages on the internet is difficult. Mathematicians don't have quite the strong online presence that programmers do so the online literature suffers.

Textbooks are fantastic, though. They are written to be self contained and will start at the beginning (usually with an introduction to fundamental subjects such as set theory). If you're serious about learning math, they are the way to go.

Re: Math For Programmers

#40
post #35
post #23

> For programmers, the most useful branch of discrete math is probability theory. ... What's probability theory, you ask? Why, it's counting. ... That paragraph made my left eye twitch a little. Not a big mistake, perhaps, but what he calls probability theory is actually combinatorics. Probability theory is decidedly non-discrete (integration of density functions?) and involves only two integers: 0 and 1. (A joke). M…

How is probability theory decidedly non-discrete? As far as I know as long as the number of possible outcomes is discrete (and in CS applications this is the common case) the integration of density functions turns into simple summations and there is a vast body of results and research limited to just this area of probability theory.

Combinatorics deals with discrete structures, the kind encountered in programming, while probability concerns itself with determining the likelihood of a given event. The former is clearly more relevant to general programming.

Probability does use some tools from combinatorics and vice versa, but the two subjects have vastly different goals.

Post reply on HN