What we learn as 'Math' up through college is hardly the math that anyone in the future will actually need to understand. Most engineering which requires calculus can be approximated through real-world measurements or through computer simulations. The part of math that we actually don't learn in school such as algebraic structure and vectors completely change how you think about numbers and the rules of math in the first place. There are some amazing things that you can do with modulus which would be impossible with normal algebra, but still will not likely come into any normal person's life, so the question we should be asking is why teach math? Outside of what most people will ever run into, why teach it at all? Currently, there isn't a reason because the way we teach math is only to teach the applications of it instead of the reasons why those applications are important. Here's an example. We currently teach base 10 as a system by explaining that each column in a number is a tens, or hundreds place and so on. This makes it very difficult to later teach that in binary the second digit is not representative of a tens place. Instead we could teach that in a base 10 system, each column represents 10 to a power. The ones place is n(10^0), n(10^1) for the tens place and so on. Then when you switch to a base 2 (binary) system, it is infinitely easier to say, "All we do is switch 2 for where 10 used to be. n(2^0) for ones, n(2^1) for twos place and so on." This teaches a whole new understanding of what makes a number system tick, and is infinitely more important than calculus. It teaches that numbers are parts of a system which can be manipulated in amazing ways to represent new systems, instead of showing more perfunctory and memorized crap that you're never going to use.
The fact that we are so rigidly structured by a common curriculum which does not actually consider future or mathematically advanced learning is amazing. Math can teach critical thinking, but not the way it's taught now.