Do Computer Scientists Use Math?

Recently a student, “James”, asked if it was possible to him to work in the computer field, even if he doesn’t like math and says he is not good at it.

The short answer: yes. The longer answer? Yes and no.

There is a huge opportunity for development of all kinds of software and hardware that doesn’t require mathematics, per se. Fields like software/app design and UX (user experience) quality assurance require understanding of the language involved and how the software interacts with the overall hardware, but not deep mathematics.

So James can certainly make a good career working with computers without knowing his epsilons and deltas.

But will math be useful?

Some areas – like some of the formulas we memorize in calculus class – will not be useful. But others, like discrete mathematics – will prove very useful to James: they will teach him concrete concepts he can use in his work, and also help him develop an analytical mind that will come in handy.

Consider this: if James wants to analyze a program he or his team writes, and see if he can improve it in any way – ie: change the structure of the program so that it runs more efficiently – that’s essentially a math question, what is called “algorithms”: James can examine the program and find parts that are redundant or can be done in a better way, then revise the program.

He doesn’t have to be thinking strictly in terms of mathematics, though, to do this: the type of thinking he is doing, about the structures inside the program and how they relate to each other, is very much like what some mathematicians do. So good programming, at least in many types of programming, is very similar to mathematical thinking, and the kind of thinking used in problems in discrete mathematics classes.

The only area he could go into with computers that truly requires a deep understanding of a wide variety of mathematics would be theoretical computer science – like what university computer scientists work in. The work they do is math-intensive, and requires understanding of calculus, analysis, which is like a more formalized version of calculus, logic, statistics, and linear algebra.

Then again, theoretical computer science is probably not what interests James to begin with. If he wants to work with computers and use them to solve cool real-world problems, he’ll probably do fine even if he gets a C in calculus.