Sei sulla pagina 1di 14

The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

in Programming

351
Shares
206 59 20

8 min read

This article was originally published on Forbes

TL;DR: Right now, theres a cultural push to untie the historical link
between advanced math and programming that could partially deter

1 of 14 3/22/2017 6:19 PM
The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

engineers from entering the field. But those who have a strong foun-
dation in math will have the best jobs of the future. Lets stop separat-
ing math from programming for short-term relief and, instead, focus
on fundamental, unchanging truths with which well engineer the fu-
ture.

If you dig deep into todays discourse on the role of mathematics in


programming, youll find a sharp, double-edged sword.

On the one hand, people often say that because the number of app de-
velopment tools are growing, you dont necessarily need to be great at
math to write software today. Amidst a widespread shortage of tradi-
tional programming talent, numerous opinion pieces, video interviews
with educators and forum questions point to answers that are posi-
tioned to ease the apprehension of people exploring the field. And its
true. Chances are, the average software engineer is not going to need
Calculus while coding apps in Ruby on Rails. If you look at any given
job requirement, youd be hard pressed to find probability or number
theory next to Java or C++ skills.

Since computer science is a nascent field that sprouted out of mathe-


matic departments, theres a cultural push to untie the historical link
between advanced math and programming that could partially deter
engineers from entering the field. For instance, there are literally half a
dozen recent articles titled with something like: You Dont Have to be
Good at Math to Code (1, 2, 3, 4, 5, 6). Downplaying the importance of
mathematical knowledge in software development aims to help make
the field less intimidating for entry-level programmers.

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, youll be left without the skills necessary to adapt
to emerging computer science concepts that have already started infil-

2 of 14 3/22/2017 6:19 PM
The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

trating 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 dont need to
know advanced mathematics to be good software developers, math is
still a fundamental pillar of both computer science and software devel-
opment. Programming is just one tool in a computer scientists tool-
kita means to an end. Its hard to draw definitive lines between disci-
plines, but heres 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:

3 of 14 3/22/2017 6:19 PM
The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

1. Number theory. If youre ever asked how one algorithm or


data structure performs over another, youll need a solid grasp of
number theory to make that analysis.
2. Graphing. If youre programming for user interface, basic ge-
ometry, like graphing, is an essential skill.
3. Geometry. If youre creating a mobile app and you need to cre-
ate custom bounce animations that are modeled on springs,
youll need geometry skills.
4. Basic Algebra. If your boss asks you: How much user retention
can we expect to grow next month if we increase the performance
of our backend by 20%? This is a pure variable equation.
5. Single Variable Calculus. These days FinTech firms like Jane
Street are among the most sought-after companies for program-
mers because they pay well and have interesting challenges. You
need to be able to analyze financial parameters to make crucial
predictions to get these coveted jobs.
6. Statistics. If youre working at a startup and you need to A/B
test different elements on a website, you might be tapped to un-
derstand normal distribution, confidence intervals, variation and
standard deviation to see how well your code change is perform-
ing.
7. Linear Algebra. Anytime you have image processing problems,
recommendation engines (like Googles PageRank or Netflixs
recommendation list), you need linear algebra skills.
8. Probability. When youre debugging or testing, youll need a
solid understanding of probability to make randomized se-
quences reproducible.
9. Big-O. If your companys expanding to a brand new region, and
you dont understand the implications of a O(N^2) sorting algo-
rithm, you could be pinged at odd hours because the expansion
introduced holes in the algorithm.
10. Optimization. Generally, anytime you need to make something
run faster or perform better, you should be able to know how to
get the minimum and maximum value of a function.

4 of 14 3/22/2017 6:19 PM
The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

Were far beyond the point of needing engineers to code simple solu-
tions. Engineering teams at enterprises andespeciallystartups have
to earn the leading edge. They rely

on engineering and product teams to gain competitive advantage by in-


vesting in emerging concepts like Big Data manipulation, handle
high-scale systems and predictive modeling. And they all require a solid
framework of mathematics.

Its not uncommon to hear refutations like: Ive been a software engi-
neer 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 pro-
gramming to encourage more engineers to enter the field. In order to
meet the demand for engineering talent in the next 5 to 10 years, its
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 an-
nual STEM job openings between 2010 2020.

But this message of you dont have to be good at math to program is


actually fueling a self-destructive myth thats baked into our culture to-
day, which is: Math skills cant be acquired: Youre either born with it
or youre 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: peoples belief that math
ability cant change becomes a self-fulfilling prophecy. Consistently
saying that youre not a math person means you wont be a math per-
son.

Two, people perceive mathematical fields as dry and uncreative. It goes

5 of 14 3/22/2017 6:19 PM
The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

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 de-
velopment.

In the next 10 years, software engineers arent still going to be limited


to programming web and mobile apps. Theyll be working on writing
mainstream computer vision and virtual reality apps, working with in-
teresting cryptographic algorithms for security and building amazing
self-learning products using machine learning. You cant 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 tech-
nology. 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.

Its largely enabled by the fact that lots of modern computer al-
gorithms, especially in machine learning, take advantage of very
large data sets, so that enables the use of more complex mathe-
matical models. Principal Data Scientist Ann Irvine, PhD

As it stands today, you dont need much beyond basic algebra and ge-
ometry for software development in general. But software development
of the future will be made up of highly specialized subfields of CS.
Heres 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:

6 of 14 3/22/2017 6:19 PM
The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

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 Stanfords computer sci-
ence engineering department.

Its far more empowering to talk about the importance of skills that

7 of 14 3/22/2017 6:19 PM
The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

serve you for a lifetime rather than the demand for short-term tools to-
day. 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. Its 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:

8 of 14 3/22/2017 6:19 PM
The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

Theres such an emphasis on branches of programming language and


tools today that its easy to miss the bigger forrest. Its better to start
practicing now while theres no significant pressure to apply advanced
concepts to your workyet. Even if its by solving one mathematical
problem a day, youll be so much better equipped with tools to solve
much more interesting problems down the line. Lets stop separating
math from programming for short-term relief and, instead, focus on
fundamental, unchanging truths with which well engineer the future.

Resources to Help Boost Confidence in Math:

Forget what you learned in school (memorizing theorems


or trig identities wont help you). Instead, learn to recog-
nize problems and choose the right formula.
Read great books:
Art of Problem Solving
Mathematics for Computer Science (free eBook)
Godel Escher Bach (free eBook)

Supplement these books with hands-on challenges:


Mathematics Coding Challenges
Number Theory Challenges
Combinatorics
Algebra
Geometry
Probability

9 of 14 3/22/2017 6:19 PM
The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

Share your thoughts

351
Shares
206 59 20

Roman Fromrome
May 31, 2016

Great article! Thank you -> got me thinking)

Reply to Roman

Dimitrios Kalemis
June 1, 2016

Humanities are considered right brain and STEM subjects are considered
left brain, not the opposite.

Reply to Dimitrios

George Giles
June 1, 2016

NoSQL was NOT invented in 1998. It goes much farther back then that. Com-
mercial products like ObjectStore and Gemstone NoSQL databases have been
in use since the early 90s. I think the Bell companies had a key/value store as
far back as the early 80s. Then there is the primitive key/value database all
real Unix systems come with. I had one on an AT&T 3B2 in 1985.
The main problem with math is how poorly it is taught in secondary school.
This turns off millions from the subject every year, but then our ruined educa-

10 of 14 3/22/2017 6:19 PM
The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

tional system is another topic all together. High School algebra is a hodge
podge of techniques, many of which are unrelated and really isnt an algebra
at all. Calculus, Linear Algebra, and Differential Equations are the highway to
engineering success are much easier to learn because they are unified sub-
jects.

Reply to George

Jean-Franois Tremblay
June 1, 2016

I know!! Lotus Notes, a document-based NoSQL database was released in


the 80s

Reply to Jean-Franois

swampwiz0
June 1, 2016

I agree with the author, but the fact is that most employers only care that an
applicant know SomeStupidAPI 2.5.8 (oh, version 2.5.7 is not good enough).

Reply to swampwiz0

Nikola Tasev
June 1, 2016

But this message of you dont have to be good at math to program is actu-
ally fueling a self-destructive myth thats baked into our culture today, which
is: Math skills cant be acquired
Needing something has zero relation on being able to acquire a skill.
Two, people perceive mathematical fields as dry and uncreative.
Making it mandatory and shoving it down peoples throats does not make it
any cooler.

11 of 14 3/22/2017 6:19 PM
The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

Sure, very qualified people with deep understanding of maths are needed.
Most people dont need it, and never will. If they learn todays tools they can
get the job done. When the tech changes, they will learn the new tools and get
the job done. If they ever want to get the best payed, most interesting and
coolest jobs they will learn maths. Making it mandatory is not going to help
anyone, in either the short or long term.

Reply to Nikola

Jim Balter
June 2, 2016

For the latest and perhaps most idiotic of these anti-math screeds, see
http://www.acodersjourney.com/2016/05/worst-programming-interview-
question-ever/

Reply to Jim

reachtarunhere
June 2, 2016

Disclaimer: I am not the part of you do not need math or it is not worth it
brigade. I know the value of math skills thanks to my interest in some of the
fields above and I am working hard to acquire more than what is mentioned
in the post.

Overall a nice article but there are a few things that are just plain wrong or
misleading. As mentioned above CS != Programming so is the case with the
jobs in the industry. Most jobs are and WILL BE programming jobs even in
specialized fields like AI and CV. The reason is simple : The industry does not
work at that low level. There is a library for everything. Do you see how simple
it is to play with neural nets with tensor flow? Do you code up classifiers your-
self or use sklearn? Here is what Peter Norvig has to say about the same
https://www.quora.com/How-do-I-train-myself-to-transition-from-a-career-
in-software-engineering-to-AI/answer/Peter-Norvig?srid=XRPd

12 of 14 3/22/2017 6:19 PM
The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

So, Yes math is important and it is must to go into a certain depth if one is
looking to work on cool tech but the fact that an average joe programmer
(even after a few years) will need master Convex Optimization is something
that is not true. Also, the world will continue developing Apps (one platform
or the other maybe AR, VR).

Other than the above a great article specially the point that fundamentals will
always be important.

Reply to reachtarunhere

pavel
June 19, 2016

Number theory to analyse runtime of algorithms? You must be kidding.

Reply to pavel

Share your thoughts

READERS WHO SHARED THIS EMERGING LANGUAGES OVERSHADOWED BY INCUMBENTS JAVA, PYTHON
BRUCE WHEALTON | FUTURE WAVE TECH INFO BRAZIL, HAS BEEN TAKEN OVER BY AN ALL WHITE MALE
CABINET AND OTHER TWINKS | THE RASX() CONTEXT EMERGING LANGUAGES STILL OVERSHADOWED BY
INCUMBENTS JAVA, PYTHON IN CODING INTERVIEWS - HACKERRANK BLOG WEEK 21 | IMPORT DIGEST JUN 07
LINKS | TWEEDLEDO-INGS ... WEEK 20 | IMPORT DIGEST [20160602] BLOG THANK
YOU!

13 of 14 3/22/2017 6:19 PM
The Immutability of Math and How Almost Everything Else Will Pass -... file:///C:/Users/ashish/Documents/Maths web/The Immutability of Math...

Independent Publisher empowered by WordPress

Great programmers are out there, but not on


a resume.
an unbiased, automated hiring platform

Try for free

14 of 14 3/22/2017 6:19 PM

Potrebbero piacerti anche