As for math, arguably, most coders do not need it to make their job done.

Or perhaps most programmers already use it to get their job done.

Math shows up in array manipulation (set theory), functional programming (lambda calculus, category theory), data structures (graph theory), expressions, conditionals, switch statements and relational databases (logic) and big-O notation / drawing circles (calculus).

It's just that programmers don't do their math in mathematical terms, but rather, by means of abstractions. By consuming, producing and composing pre-built elements (methods, functions, etc) which ultimately invoke some kind of mathematical operation, but from the outside, are mere abstractions.

For this reason, I think that the most important ability for programmers to have is abstract thinking. Even though the work frequently invokes math, logic, language, strategy, design and countless other fields, it isn't essentially tied to any one of those fields. Rather it deals with them in terms of abstractions.

The core is abstract thinking, everything else is peripheral.

Unless I was building software specifically targeting a mathematical field (and even then...) I would spend more time reading books on programming than books on math.

I agree, I think alike. As for your last paragraph, it is actually the same: books on programming often supply their readers distilled version of mathematics, the pragmatic part.

## re: Of maths and optimality VIEW POST

FULL DISCUSSIONOr perhaps most programmers

alreadyuse it to get their job done.Math shows up in array manipulation (set theory), functional programming (lambda calculus, category theory), data structures (graph theory), expressions, conditionals, switch statements and relational databases (logic) and big-O notation / drawing circles (calculus).

It's just that programmers don't do their math in mathematical terms, but rather, by means of abstractions. By consuming, producing and composing pre-built elements (methods, functions, etc) which ultimately invoke some kind of mathematical operation, but from the outside, are mere abstractions.

For this reason, I think that the most important ability for programmers to have is

abstract thinking. Even though the work frequently invokes math, logic, language, strategy, design and countless other fields, it isn't essentially tied to any one of those fields. Rather it deals with them in terms of abstractions.The core is abstract thinking, everything else is peripheral.

Unless I was building software specifically targeting a mathematical field (and even then...) I would spend more time reading books on programming than books on math.

Thanks for your input.

I agree, I think alike. As for your last paragraph, it is actually the same: books on programming often supply their readers distilled version of mathematics, the pragmatic part.