Do I have to be good at math to code?
Can I really do this?
These are questions that many students ask themselves when they first consider learning to code.
About 93% of Americans suffer from some form of math anxiety. They worry that their skills and knowledge in math aren’t good enough and/or get tense when having to deal with math or equations in class or in real life.
This anxiety can cause them to avoid math classes and math-related activities, and this fear can easily become a stumbling block when learning to code.
Students assume that they need to have a high level of math skill in order to program and give up before they even start.
After all, coding tells computers what to do, and those computers rely on numbers and computations, right?
Well, not exactly.
The reality is that learning to code and creating cool and successful apps and programs has a lot less to do with being a math whiz than people might think and can, in fact, be more affected by certain non-math skills and abilities..
Below we’ll explore why math isn’t as important to coding as you might think, which skills are, and try to explain why kids should give coding a chance, even if their math skills could use a little work.
Is Math Critical to Coding?
It’s true that there are certain areas of coding that require higher levels of math understanding or use code that is explicitly mathematical, most notably algorithm design, game engine design, machine learning, computer graphics and cybersecurity.
However, there have been many talented coders out there who became successful without a strong math or science background.
And the reason for this is simple.
The fact of the matter is that with most types of programming outside of academia, be it web programming or app design and development, math is a relatively small component and generally isn’t all that particularly rigorous or advanced.
This has become even more true with the plethora of tools, ready models and support that are available online, which can make creating fairly complex coding projects easier (and faster) than ever.
More important to success in coding is to develop a solid understanding of the various coding concepts, hone one’s computational thinking and attention to detail, and have some ability to learn what is essentially a new language.
That’s because, at its heart, coding is about defining a problem, sketching out its various component issues, coming up with an efficient and logical solution, figuring out how to translate that solution into actionable commands and then translating those commands into a language a machine can understand.
Now, it’s important to emphasize that having a good understanding of math is highly beneficial to those interested in studying or pursuing a career as a programmer.
After all, behind all the development tools, algorithms and plug-ins, is a fair bit of math and knowing how things really work is always a benefit, especially when creating new ways of doing things or tweaking pre-existing models.
However, someone avoiding learning to code because they feel their math skills are a little weak is a lot like someone refusing to play sports because they haven’t memorized all the rules, positions, tactics and strategies and other minutiae of the game yet – it’s a bit silly and quite self-defeating in the long run.
What skills do predict success in coding?
Problem solving is a critical skill in programming, and those who have strong skills in it tend to do well as coders.
Developing software and apps largely involves assessing a complex problem, breaking it down into manageable and actionable pieces and then coming up with a potential solution.
Those who can more easily turn a large task or project into a series of smaller, logical steps to solve will ultimately be able to manage tasks and code more effectively and efficiently.
While math is a great way to develop strong problem solving skills, particularly with conceptual, rather than procedural math curricula, it is by no means the only method of doing so.
In fact, there are tons of resources out there to help students develop their logical and sequential thinking skills, including logic puzzles, STEM kits and activities and any number of books and exercises specifically designed to help develop a sharper problem solving mindset.
Using logic to sequentially break down a problem is only half the battle.
An important part of real life problem solving, and coding as well, is in coming up with some kind of solution. Ideally one that is efficient and, well, actually works.
Pre-made code and copy/pasting code can only take a person so far. At the end of the day, it is often up to the coder to figure out what they want to do about a problem, how exactly they want to solve it and how they can do so using the least amount of resources and time.
With often just a blank screen and blinking cursor in front of them, this process can involve a lot of creative (and sometimes improvisational) thinking.
Research from the University of Washington has found that communication and language skills are actually quite a good predictor of success in coding, more so than having strong math knowledge and skill.
In essence, many of the higher cognitive skills involved in language and communication, learning a new language’s syntax, logic, symbols and grammar rules and then making use of them to communicate or produce a result, also play an important role in coding.
That’s because modern coding, for the most part, is more like using a language than it is computation.
Once users become familiar with the basic logic and structure of programming, i.e. coding fundamentals such as variables, Boolean logic, statements and expressions, a large part of coding then becomes translating some idea into a particular language with its unique syntax and quirks.
Therefore, those who have an aptitude for learning new languages in real life tend to also have an aptitude for learning and then using new coding languages.
Attention to detail
Coding can often be a very finicky process.
A small syntax error here and there or a small mistaken assumption in logic can sometimes lead to several thousand lines of code becoming unstable or, worse, becoming completely unusable.
Those who take their time and pay attention to the particulars when they are coding will often have an easier and far less frustrating time with it.
Determination and perseverance
Similarly, good coders have to have a good amount of determination and perseverance.
Whether it is due to bad syntax, bad code, erroneous assumptions or even a faulty idea or solution, things will go wrong when coding.
That’s just the nature of the beast.
How one handles a set back can be really important. Those who can take a moment, double down and analyze the problem before looking for a solution will often find a way forward and will have greater success in coding in the long run than those who easily get frustrated and give up..
When math is very important – Computer Science vs Computer Programming
Where things get a little tricky is with students who may be interested in pursuing studies in Computer Science.
Computer Science is a broad and diverse field that examines a variety of practical, theoretical and cutting edge concepts in computing.
Computer Scientists may study algorithmic processes, artificial intelligence, the theory of computing, robotics, data systems and more.
In contrast to programming, which tends to concern itself more with the efficient application of code and coding concepts to a problem, Computer Science is more concerned with understanding how processes and concepts in computing work, as well as building and applying them.
As an academic discipline and a career, therefore, Computer Science involves quite a good deal of fairly sophisticated math, such as graph theory, discrete math, linear algebra, statistics, calculus and analysis.
While many programmers can and do learn to code without worrying much about math, if you have a student who expresses an interest in studying Computer Science, they will need a strong background in and comfort with math.
Getting started in coding without strong math skills
If you have a child or student who is interested in programming but a little worried about their math skills, there are a variety of courses out there that make it very easy to get started coding.
Learn to code programs, such as Codakid or others, teach students the fundamentals of coding and give them a fair amount of experience in a variety of languages using a project-based approach and down-to-earth video instruction.
Typically, these courses don’t delve deeply into math.
Instead, the various concepts in coding (such as conditionals, loops, variables, inheritance, and vectors) and problem solving approaches are taught using more practical on-screen examples and project-related demonstrations.
This approach can be a good way to explain things without diving into a lot of theory and can be a great way to make more abstract concepts in computing a little more concrete and understandable.
Coding is becoming a critical skill in our technologically driven world. Both academia and the workforce increasingly prefer that candidates have some basic ability to understand code or coding concepts.
Those who are nervous about their own math skills or feel anxiety when seeing numbers strung together shouldn’t use this as an excuse to avoid learning to code, as programming relies less on math ability and more on skills such as logic, problem solving , language and creativity.
About the Author
David Belenky is a freelance writer, former science and math tutor and a tech enthusiast. When he’s not writing about educational tech, he likes to chill out with his family and dog at home.