This article was originally published on Forbes
TL;DR: Right now, there’s a cultural push to untie the historical link between advanced math and programming that could partially deter engineers from entering the field. But those who have a strong foundation in math will have the best jobs of the future. Let’s stop separating math from programming for short-term relief and, instead, focus on fundamental, unchanging truths with which we’ll engineer the future.
But is downplaying the importance of math a sustainable message for future generations of engineers?
On the other hand, software development is quickly shapeshifting. If you discount mathematics, and in turn focus on learning transitory programming tools, you’ll be left without the skills necessary to adapt to emerging computer science concepts that have already started infiltrating engineering teams today. Without expanding mathematical knowledge, these software engineers are going to risk being left out of the most exciting, creative engineering jobs of the rapidly approaching future.
Math is a Veiled Pillar
The reality is that even though most programmers today don’t need to know advanced mathematics to be good software developers, math is still a fundamental pillar of both computer science and software development. Programming is just one tool in a computer scientist’s toolkit—a means to an end. It’s hard to draw definitive lines between disciplines, but here’s an attempt at an eagle-eye view of computer science as a field to build a bigger picture:
At its core, computers are centered on the mathematical concept of logic. Fundamental math that you learn in high school or middle school, like linear algebra, boolean logic, graph theory, inevitably shows up in daily programming. Here are 10 examples of times when you might need mathematics in real-world programming today:
We’re far beyond the point of needing engineers to code simple solutions. Engineering teams at enterprises and—especially—startups have to earn the leading edge. They rely
on engineering and product teams to gain competitive advantage by investing in emerging concepts like Big Data manipulation, handle high-scale systems and predictive modeling. And they all require a solid framework of mathematics.
It’s not uncommon to hear refutations like: I’ve been a software engineer for 15 years and never used advanced mathematics on the job. But are we all really still going to be coding web and mobile apps 10 years from now?
Those Who Incrementally Exercise Mathematics Skills Will Get the Coolest Jobs
In the beginning of this piece, we considered why many educators and experts might be downplaying the importance of math in daily programming to encourage more engineers to enter the field. In order to meet the demand for engineering talent in the next 5 to 10 years, it’s clear that we need to take steps to encourage more peopleof diverse backgrounds to join the field. The BLS reportsthat computing and mathematics will make up more than half of the projected growth of annual STEM job openings between 2010 – 2020.
But this message of “you don’t have to be good at math to program” is actually fueling a self-destructive myth that’s baked into our culture today, which is: Math skills can’t be acquired: You’re either born with it or you’re not. This myth persists for at least two reasons:
One, Professors Miles Kimball and assistant professor Noah Smith have taught math for many years and say: “people’s belief that math ability can’t change becomes a self-fulfilling prophecy.” Consistently saying that you’re “not a math person” means you won’t be a math person.
Two, people perceive mathematical fields as dry and uncreative. It goes back to the oversimplification of the dichotomy between the “left brain” humanities and “right brain” STEM subjects. People who want to be more creative have more reasons to distance themselves from math.
A better way to attract more people to the field is by talking about the interesting, creative jobs that are taking over the future of software development.
In the next 10 years, software engineers aren’t still going to be limited to programming web and mobile apps. They’ll be working on writing mainstream computer vision and virtual reality apps, working with interesting cryptographic algorithms for security and building amazing self-learning products using machine learning. You can’t go very far in any of these fields without a solid mathematical foundation.
As the field of computer science is expanding, companies are going to be able to take advantage of more complex math to build software technology. Dr. Ann Irvine, principal data scientist at security software companyRedOwl, always looks for strong intuition on how to work with large datasets. And math happens to be inherently tied to this skill.
“It’s largely enabled by the fact that lots of modern computer algorithms, especially in machine learning, take advantage of very large data sets, so that enables the use of more complex mathematical models.” – Principal Data Scientist Ann Irvine, PhD
As it stands today, you don’t need much beyond basic algebra and geometry for software development in general. But software development of the future will be made up of highly specialized subfields of CS. Here’s a chart that illustrates just how fast these futuristic technologies are shifting toward the mainstream consumer market. The first row talks about the market opportunity in the next 4 years, the second row highlights the adoption rate and the final row is an indication of the job demand today:
Focus on the Fundamentals Because Technology Will Pass Anyway
“The most valuable acquisitions in a scientific or technical education are the general-purpose mental tools which remain serviceable for a lifetime.” – George Forsythe, the founder of Stanford’s computer science engineering department.
It’s far more empowering to talk about the importance of skills that serve you for a lifetime rather than the demand for short-term tools today. Math is an unshakeable force in programming. The core concept of breaking down problems, abstractions and finding solutions using formal formulas will never change.
In fact, academia is susceptible to a massive, inherent failure in being able to keep up with the ever changing tools that industries demand. Hisham H. Muhammad is a computer science PhD and illustrates the argument perfectly in this Tweet below. It’s interesting to contrast the years in which Hisham studied computer science between 1994-2000 with the years at which the technologies mentioned started taking off:
I felt like saying this. pic.twitter.com/mHJ1rENoX1
— Hisham (@hisham_hm) December 13, 2015
There’s such an emphasis on branches of programming language and tools today that it’s easy to miss the bigger forrest. It’s better to start practicing now while there’s no significant pressure to apply advanced concepts to your work…yet. Even if it’s by solving one mathematical problem a day, you’ll be so much better equipped with tools to solve much more interesting problems down the line. Let’s stop separating math from programming for short-term relief and, instead, focus on fundamental, unchanging truths with which we’ll engineer the future.
Resources to Help Boost Confidence in Math: