DEV Community 👩‍💻👨‍💻

Ben Halpern
Ben Halpern

Posted on

How important are math skills for software development?

I'm sure there are different opinions on this, so let's hear them!

Top comments (69)

Collapse
 
rpalo profile image
Ryan Palo

I would say, they never hurt and they can provide valuable insights into problems that you might otherwise miss out on. But how necessary they are probably depends on what you are doing.

For web work, you can get away with less, because you are more focused on design, UX, networking, performance, event loops and data wrangling, which are all hard in different ways themselves, but are less directly tied to math.

For more algorithmic work, solving a more complex problem using graph theory, search algorithms, trees, etc., it is more important. It can help with the basic understanding of the methods you are applying and which algorithms may work best in a given scenario.

For data science, it’s not strictly necessary, but it really helps accelerate your learning if you can grasp and build on the mathematical and statistical concepts and not just memorize what libraries to use and what methods to call. It also helps you evaluate your results rather than blindly accepting them because the “algorithm” says so. This is getting more and more ethically important as more and more decisions are being made with heavy AI and machine learning and big data driven insights.

For lower level systems programming, at least a little number theory (binary, hex, and decimal representations of things and how to mentally convert back and forth) is critical. Luckily, while number theory is intimidating, it’s not super duper complicated at the end of the day if you approach learning it slowly and with the right examples. I’ve got a couple articles about that.

Lastly, if the domain you are in is math heavy, like software for physics, engineering, chemistry, biology, genetics, statistics, probability, etc., then you’ll probably want to have a bit of a grasp on that particular domain.

That’s all I can think of. My philosophy is that math always helps make you a better developer, but treat it like anything else we have to learn. Learn it as you need it or as your interest strikes, and don’t feel like an imposter if you don’t know everything right now. Just put it on your list to learn and watch some numberphile videos on YouTube in your downtime. 😁

Collapse
 
lepinekong profile image
lepinekong

Math is not necessary if you are a webdeveloper for example. But I absolutely disagree for datascience: without having a solid statistical and epistemological background in probability, I would forbid to hire you for that kind of job ;)

Collapse
 
adripanico profile image
Adrián Caballero

As a "webdeveloper" I have used math principles uncountable times. Maybe you are talking about wordpress users. I honestly think that anything that have the word developer in it, it is easier if you have a good math basis.

Thread Thread
 
rickssss profile image
Rick

What type of scenario would typical web development work require math skills beyond the basics (i.e. what might be taught in a high school / secondary school)?

Thread Thread
 
berkmann18 profile image
Maximilian Berkmann

Anything that would require knowing about set/group theory, stats but then it depends on the project.

Collapse
 
swfisher profile image
Sam Fisher

Completely agreed. There are too many ways for data science to go wrong if you can’t think about how it works.

Collapse
 
rjrobinson profile image
R.J. Robinson

when I was working as a "web developer" with large scale systems, math skills come into play a lot more often than I would think. I have noticed that I use a lot of different types of math all the time (calc, stats, DM). Math skill also help when you are testing at big companies that want to ensure you understand how a lot of things work.

Collapse
 
swarupkm profile image
Swarup Kumar Mahapatra

"don’t feel like an imposter if you don’t know everything right now"

That was gold. (:

Collapse
 
taillogs profile image
Ryland G

It’s completely based on the industry.

I would say all programmers should have a decent math basis. Obviously, you need to understand algebra. I would say trig is not required but very nice if you ever need to handle ratios and angles. Most development roles won’t require advanced math, but will require practical math (especially fractions). You could definitely work at any “good” company (google lets say) without knowing calc.

For graphical development, trig and calculus are pretty important. There’s a lot of relational math and and sometimes you need to understand things like the golden ratio.

For game dev you need calc and linear algebra at a minimum. When I was writing game engines, I ended up needing to teach myself complex number theory so I could understand things like quaternions. Linear algebra is a constant part of daily life.

Machine learning engineers need strong calc and linear algebra foundation too. I’m working on a long post about implementing neural networks right now, and it involved hand solving a stochastic gradient based back propagation. That’s a lot of partial derivatives and matrix multiplications! Understanding latex can be pretty important depending on your role.

Distributed systems developers need some calc and a lot of number theory (discrete math). Optimization problems require some strong math theory and feeling comfortable with mathematical proofs is critical (at least where I’ve worked).

Developers working in security can get away with no math but sometimes need incredibly complex math. The closer you get towards cryptography the more math you’ll need. I think at one end of the spectrum, net sec actually has the highest math requirements of any programming field.

Collapse
 
katylava profile image
katy lavallee

This is a good answer. I didn't think about game and graphical development, or cryptography.

Collapse
 
whittington profile image
Whittington • Edited on

Depends on the area of specialization. When I was studying wen development I never really used math, I didn't expect to use it so I spent my time focusing more on writing better software. Now that I'm studying computer graphics, it's all math. I only use software as a tool to express the math formulas necessary for graphics then optimize for performance.

Collapse
 
lmolivera profile image
Lucas Olivera

In my case, I've always had problems with Maths, I went to multiple tutors and passed my exams but never with flying colors.

Today I understand that I use math in a level I don't think I really comprehend, but I have never had problems with coding and being bad at Maths. What I know is that I will need to study harder the day I decide to try IA, in which case I consider them very important.

Collapse
 
j_mplourde profile image
Jean-Michel Plourde • Edited on

I couldn't recommend you enough to read A mind for Numbers by Barbara Oakley which has a lot of insightful advices to learn science subjects effectively. I use many of those tips to swift through my classes in my engineering diploma.

Collapse
 
diiaablo95 profile image
Antonio

Hey! I started just yesterday (reading foreword and preface). Do you think it is a book that is suitable also for people, let's say me, almost done studying at uni but that is still willing to learn more math/problem-solving in general after work?

Thread Thread
 
jesusgollonet profile image
jesús gollonet

I'm not Jim, but I'll say a big yes. That book (and her course Learning how to Learn) have been immensely useful for my general learning skills (I finished uni almost 20 years ago now)

Thread Thread
 
j_mplourde profile image
Jean-Michel Plourde

Of course! One of the technique presented what a trick used by Salvador Dali. The other also says it a couple of time that even if it is science oriented, you can use these tips to any area where you want to learn something.

Thread Thread
 
diiaablo95 profile image
Antonio

Great! Thanks guys! Looking forward to go further with it :)

Collapse
 
lmolivera profile image
Lucas Olivera

Thanks! I'll give it a read.

Thread Thread
 
j_mplourde profile image
Jean-Michel Plourde

Tell me if you liked it. Good read

Collapse
 
erikaheidi profile image
Erika Heidi

same here!

Collapse
 
j_mplourde profile image
Jean-Michel Plourde

I hope you will have a great read. Tell me how you liked it.

Collapse
 
tashapenwellhc profile image
Tasha Penwell

I think the ability to problem solve is the correlation between math skills and programming. The idea that we need to excel at math to excel in programming is what scares some people from going that route. It’s hard but even if math is not your strongest subject (it’s not mine) programming can still be learned. The types of programming and depth could vary based on how adept you are at math skills but I would say high math skills is not a requirement.

Harvard’s CS50 program hosts a puzzle day globally to help introduce the concept of problem solving to the world to help promote problem solving skills is what coding is all about.

medium.com/@cs50/this-was-cs50x-pu...

Collapse
 
erikaheidi profile image
Erika Heidi • Edited on

I've only realized how bad I was at math when I went to college for a CS degree. After bailing calculus and statistics for a couple times, I eventually abandoned the course. But I never had any problems with practical programming / web dev. I'm sure there are important applications and much of what we use nowadays in our stack is improved with deep maths, but for most of us this won't really make any difference. Today I believe these disciplines are gatekeepers in computer science education.

Collapse
 
casen profile image
Casen

I think they are very important if you're going to take your career far. I think most people are confused when they hear "math skills." It's true that few of us are cranking out complex analysis in our day jobs, or solving programming challenges by mathematically describing in them on a chalkboard. But I do believe that the more one has done in math, the more one is capable of in computer science.

The difference is between a carpenter who can build a house, and a structural engineer who can build a sky scraper. A foundation of math will allow you to take on vast problems without fear, and it allows you to think further and more clearly about software systems.

Collapse
 
nanythery profile image
Nadine M. Thêry

Maths-fear kept me away from studying any development career. I turned directly to humanity-based careers. Which I liked a lot, anyway. My brain works better with words rather than numbers.
I guess like other colleagues here, it depends a lot on what kind of work you want to do. The development of certain very specialized software may require high mathematical skills. I also think that anything related to videogames nowadays requires a good knowledge of maths and physics...
I am a newbie, coming back from a letter path, who really really expects that Maths skills aren't really important for web application development.

Collapse
 
tchaflich profile image
Thomas C. Haflich

I often find myself wishing I had just a bit more knowledge of math.

I'm good enough with it to know that there could be solutions to some of the problems that I'm facing, but not quite good enough to work out exactly what those solutions actually are.

Of course, this has been continuously happening even as I've kept picking up more bits and pieces as I go along in life, so it will probably keep happening forever. Having a solid basis in mathematics is nice, but learning how to pick up more and when it would be helpful is the skill that's served me better.

Also, knowing when to not use your clever math-hax and just use a more obvious but less performant solution. Sometimes it's worth the performance gain, and sometimes it just makes your code untouchable.

Collapse
 
quii profile image
Chris James

Depends what branch of maths you're talking about.

Arithmetic, not so much no.

Category theory? Very interesting and definitely related to abstraction

I always enjoyed factoring equations at school and that is very closely related to the process of refactoring.

Collapse
 
iamandrewluca profile image
🥑 Andrew Luca

I mean, you have to know minimal math

const exactPercent = totals[index] / totals[0] * 100
const percent = isNaN(exactPercent) ? 0 : exactPercent - Math.floor(exactPercent) === 0
  ? exactPercent
  : exactPercent.toFixed(1)
Collapse
 
yoxter3423 profile image
André Porres

Logic is a subfield of maths that we are always using to solve problems in programming, so at least we should learn mathematical logic. More than that depends of what are you programming, data science? Then you need statistics, video games? You will need algebra, graphics? Geometry.

Collapse
 
arielbear99 profile image
Ariel Costa

Absolutely agree.

Collapse
 
cbrintnall profile image
Christian Brintnall

It really depends on what you're working on. For instance, as someone who primarily works in devops I don't find myself frequently using math. I still believe most people should have a fairly decent grasp on advanced algebra as computer science uses quite a few concepts from there.

If you're in data science, you should probably have multivariable calculus and linear algebra / nonlinear algebra under your belt. If you're working in graphics you should definitely have at least a good grasp linear algebra.

It really depends, if you can do your job well without it though and are happy then no big deal.

Collapse
 
georgecoldham profile image
George

Depends on the job.

  • Ive worked with data scientists before and it was crucial I could understand what was needed.
  • I currently work with developers with background in the finance industry, they really know their stuff
  • I have worked on front-end only stuff where simple addition and subtraction was overkill

It depends.

I think its important just in case...

Classic DEV Post

brain computer interface

Experimenting with brain-computer interfaces in JavaScript