Math is good and can be useful. I went back to school after 15 years to study math (currently studying for a Complex Analysis final.) If people are interested, I would encourage them to study math, whether or not they think they are "good at math." However, I disagree with most of this article.

Take this breathless assertion for example:

> "[S]oftware 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."

i.e. If you don't know math, in the future you'll miss out!

Not really. Adaption is a key skill of developers. Developers will adapt to whatever the future of software development brings. (And if not, there's plenty of maintenance to do!) Mathematical ideas only "infiltrate" software engineering to the degree that software engineering can accept them. It's a continuous process. Sooner or later, software engineering either absorbs a mathematical idea (e.g. relational algebra) or the idea passes out of fashion.

On the other hand, it has always been true that mathematics is part of many of "the most exciting, creative engineering jobs," for example: programming the Apollo guidance computer, implementing systems to predict the weather, designing the Page Rank algorithm, programming self-driving cars, simulating music synthesizers, or designing physics simulations for games.

So yeah, math is one of the places where the fun stuff is at, but you're not going to lose your job without it.

On the other hand, knowing CS fundamentals will probably help you adapt better than knowing CSS and some JavaScript.

> "We’re far beyond the point of needing engineers to code simple solutions."

I don't think so. The bulk of software development work is in integrating 3rd party components, refining user interfaces and marshaling data between communication and storage formats/APIs. From a coding point of view, this is relatively simple stuff -- but doing it at scale, at speed, with quality and finesse still takes great skill, care, and time. We're not "far beyond" this.

> "[A]re we all really still going to be coding web and mobile apps 10 years from now?"

Maybe not web and mobile, but there will be an equivalent.

One thing is certain, we're not all going to be coding machine-learning predictive data analytics engines from scratch. That is specialized work. If it's important enough to become mainstream, it will become componentised and commodified. Yes, there will always be companies developing the industry-leading "AAA games engine" or equivalent, but this is by no means the only way to participate in the market.

A final point: Software that is built on specialised knowledge (e.g. mathematical models, but it could also be physical, biological, psychological or other domain-specific models) often needs to be wrapped in a lot of non-specialised infrastructure in order to make it function as a product. There will always be roles for domain-specialists with software development chops, and these will be well-paid, fun jobs worthy of aspiration, but there will also be plenty of work for people who specialise in software (e.g. infrastructure, UI, networking, operating systems).

[edited to fix typo]