So here's something I've been thinking about a little bit which isn't really developed enough for my blog yet.

I'm all for more design thinking, basically, everywhere. Definitely in mainstream Internet services – things like this and Facebook, but equally the bane-of-our-existence Intranet apps we all wind up using. However, much of the material that good services are built of is pretty advanced, mathematically. It's hard to have a conversation about designing data-heavy services if you don't even have a shared language.

There's no simple solution to this, but one part of the answer, I suspect: I think the world needs "maths for Web people" course. A Project Euler thing, an O'Reilly thing, Khan Academy style lectures, a night-school course; I'm not quite sure what the format is. But something like that. The point wouldn't be to get someone to the point where they're deriving formulae by hand or anything, just to give a flavour of what's possible - enough to follow along, at least, and to reason about what approaches might be workable.

What would go in it, though? At a very high level, I'd come up with something like:

Elementary calculus

Dimensional analysis

Common statistical distributions

Complex numbers and the complex plane

Vector spaces and operations

Symmetry and symmetry groups

Matrix algebra (and the linear groups)

Elementary graph theory (up to, say, adjacency matrices and Travelling Salesman)

What I'm getting at is that once you've got all that, you've got enough maths to follow the principles behind machine learning, and it's not like we're going to have less of that any time soon.

Anyway: what am I missing? (And what's in here that shouldn't be?)