I stumbled across this Wired “Tech Support” video on YouTube today and thought it was interesting.
The question is “can I still learn programming if I hate math?” and the obvious answer is yes, you can. But even if it is possible, will it be a good fit?
Computer programming and mathematics are conflated in peoples’ minds for some reason. Certainly some programming tasks are math-heavy. The guts of a game engine will deal with vector and matrix math, and machine learning libraries deal with all kinds of math depending on the kind of model. At L3Harris I worked on a product that simulated the link budget of a radio network under realistic real-world conditions. Real-time control systems like you might find on a car, airplane, or rocket are math-heavy and the calculations must be done on time.
This is just the kind of math that most people think of as “math,” of course — the kind of math that manipulates numbers, and sometimes letters get involved. Pure functional programmers often employ more obscure branches of math such as category theory or abstract algebra that to most people do not resemble the “calculate a numeric answer” family of math at all.
Both of these kinds of math are, for most programming projects, not important. Someone asking the question “can I still learn programming if I hate math” isn’t thinking about these kinds of tools or applications. They probably want to create a game or website or app, which is a totally reasonable and noble goal, and knowledge or love of mathematics is not necessary to accomplish it.
But I have to ask: why do you hate math?
- Is it having to think abstractly about a problem?
- Is it the effort of grinding out a set of steps to arrive at a final, simplified answer?
- Is it the requirement to understand (or at least to memorize) the rules needed to transform an equation at each of those steps?
These are all essential ingredients in enjoying the process of programming and learning to become a better programmer.
I feel answering “can I still learn programming if I hate math” with reassurance that the mechanics of high-school math are not needed to solve the majority of programming problems is missing the forest for the trees. While it is true that you will usually not have to solve the quadratic equation in the day-to-day details of writing most computer programs, the basic skills required to perform the kind of math that someone who “hates math” thinks of as “math” are absolutely essential.