Routing is heavily based in graph theory, as far as I know, and so is actually fairly mathematical.
Memory management can also require a good bit of math. A perfect example would be taking an existing algorithm and optimizing it to use fewer memory accesses. We covered this sort of optimization in my recent algorithms class (for some algorithms) and it figuring out how to do required a good bit of math.
Really, the issue is that a programmer who doesn't use math is much less likely to see how math would be applicable to any particular situation. This is just like the programmer who does not know about, say, hash maps--he would not realize what he is missing.
> Routing is heavily based in graph theory, as far as I know, and so is actually fairly mathematical
I didn't write routing, I wrote router. Routing, figuring out what to send where, is just one part of what a router does.
> Memory management can also require a good bit of math.
Yes, but that part isn't the whole of the problem. It isn't even a large part of the problem. (Note that you quickly switched to a completely different problem from malloc to argue for a mathematical basis.)
Math is cool and important, but it often isn't the big problem.
Graph theory is a very complex, and broad field of mathematics. The routing algorithms are an absolutely trivial application of it in a minuscule amount. Anybody, without formal training in mathematics can understand routing algorithms, because they are so simple and easy.
Yes, that is true. But, how those algorithms happen, is based in graph theory; is what I meant. If you saw Jamis Buck's "Algorithms" talk, I believe there's a reference to a "spanning tree" graph in there.
Memory management can also require a good bit of math. A perfect example would be taking an existing algorithm and optimizing it to use fewer memory accesses. We covered this sort of optimization in my recent algorithms class (for some algorithms) and it figuring out how to do required a good bit of math.
Really, the issue is that a programmer who doesn't use math is much less likely to see how math would be applicable to any particular situation. This is just like the programmer who does not know about, say, hash maps--he would not realize what he is missing.