Linked by Eugenia Loli on Sat 18th Mar 2006 00:20 UTC
"I've been working for the past 15 months on repairing my rusty math skills, ever since I read a biography of Johnny von Neumann. I've read a huge stack of math books, and I have an even bigger stack of unread math books. And it's starting to come together. Let me tell you about it," writes programmer Steve Yegge.
some useful stuff
by jacquouille on Sat 18th Mar 2006 10:12 UTC

Member since:
2006-01-02

Hi,

first, if you look for math books, you can find many on P2P networks, especially *mule/kademlia. If you have moral concerns with that, think that mathematicians (I'm one) almost always borrow from libraries and almost never buy books, and think of P2P as a big library. If I had to buy all I read, it would cost me \$1000 a month. Also note that certain authors give their book for free as PDF on their website.

second, here are a few domains that the author of the article didn't mention, and that are good food for thought for a programmer :

1) group theory
Groups are one of the most ubiquitous math object, second only to numbers. Roughly, a group is a set of symmetries of an object. These symmetries can be composed with one another, and this gives rise to a very interesting structure. Finite and discrete groups occur often in computing.

2) general topology
This is a wide generalization of the notions of limit and continuity. This can be applied even to finite sets.

3) noncommutative geometry
This is a new theory encompassing both topology and group theory (as well as many other things). See Alain Connes' (freely downloadable as PDF) book "noncommutative geometry". The idea is to apply to mathematics the ideas of quantum physics. Thus Noncommutative math is to classical math what quantum physics is to classical physics. The good surprise (for programmers and other people interested in discrete math) is that this gives very interesting results already in the case of finite and discrete objects.

4) Categories and functors
An abstract formalism which, among other things, is used to give a precise meaning to the words "canonical" and "natural".

5) Cohomology theories
To many objects are associated so-called Cohomology groups, which are kind of a "shadow" of this object giving very useful information about it. Again, this is useful even for discrete and finite objects, e.g. for finite groups.

6) Differential, Riemannian and algebraic geometry
Why should a programmer worry at all about non-discrete stuff ? Because it turns out that many discrete objects can be studied using tools from differential geometry. Notions such as "tangent", "differential form", "integral" can be applied to certain discrete objects, although this is nontrivial to see. For example, consider the set F which consists of two elements : TRUE and FALSE. On F, consider XOR as the addition law and AND as the multiplication law. Then F, endowed with these addition and multiplication laws, behaves a lot like usual sets of numbers (like the set R of real numbers). In particular, on F, you can consider curves defined by equations - like :

x^3+y^5+xy+1=0.
(Here, I have noted 1 for TRUE and 0 for FALSE).

Although F is discrete, such a curve can be studied using notions from differential geometry, like "tangent at a point", "differential", "genus" (= number of handles, 0 for a sphere, 1 for a torus,...), "cohomology groups". This is algebraic geometry.

Riemannian geometry for finite objects also exists in the form of "spectral triples", cf. Connes' book cited above.