This has always intrigued me as I see a tonne of posts saying that learning maths helps you become a better programmer.
I bloody love a bit of maths, I frequently go through my old notes and look up more and more complex problems to try widen the arsenal. But, to be honest, as a developer day-to-day I very rarely require any form of higher level mathematics to carry out my job. Every now and then I do a little game dev and that requires a reasonable amount: angles etc.
Iβm curious to hear what you do and when you use maths as a developer, let me know in the comments.
Latest comments (32)
All. The. Time.
Financial and physics/3D maths. Vectors are awesome.
I use functional programming, but do mostly business dev. So no, I don't use a lot of math other than basic arithmetic. However I do not view the advanced math I took as a waste, because I do not view understanding and knowledge as a waste. For example, operations like
map
andreduce
(without side effects) are provably mathematically sound, which means I can rely heavily on them without worry. And there have been many other cross-overs from advanced math into tech-related fields. Even something as "simple" as parity in RAID has conceptual cross-over into modular arithmetic (mod 2 specifically) which I learned about in modern algebra. Also, it was in linear algebra that I was first exposed to operations which were not reversible. This kind of thing forms the basis of hashing and cryptography. I don't write hashing and cryptography code, but having an understanding of what is possible and how it works definitely helps to use it more appropriately.TBH I use precious little computer science let alone maths, as a BE web developer. I feel more like it's-a me: Mario! - I'm plumbing data through pipes & services from the CMS to the FE, & that's pretty much it.
It's help you for the logic thinking
I'm in Robotics and I also do computer vision work. Mathematics both "advanced" and otherwise is essential to my day to day. Even when most of the work I'm doing comes from an external library an understanding of the math behind the functions is the difference between success and frustrating failure.
The old adage "another day passed without the need to use algebra" applies to me when inverted: it's rare that a day passes without me using algebra.
Everything (and I mean e-e-e-everything) in my workplace is problem solving. Beyond the very occasional cartesian product, maths as such (and it's so wonderful to see someone use the word in its plural form) never gets mentioned, let alone considered. I expect there's a fair bit of it around, it's just not acknowledged as such.
Having said that, the database guy is trying to quantify aspects of SEO using SQL databases. He's probably doing a metric tonne of mathematics, though he doesn't acknowledge its presence.
Yes BUT:
Most developers will never use any kind of advanced math and we're doing a huge disservice to our CS students by teaching so much math and theory and so little applicable concepts. I have to tell every new Jr he has just paid hundreds of thousands of dollars to learn things he'll never use and he has a ton to learn before he can contribute.
How about teaching networking fundamentals, git, how to design large projects, architecture, or any other real world skills? As our field grows and diversifies, we really need to be splitting CS programs into specialties. 90% of devs will never need a linked list or to know how to implement a bubble sort but likely 100% are taught these things.
I don't use maths for my professional development, where I have to use libraries for extending the system. But one time I developed a radial gradient editor with WYSIWYG controls and for that I had to use geometry to figure out control point positions. So I suppose people in graphics and simulations need math. As for cryptography, it IS mathematics, not development.
Try making a small gui based game like tic tac toe or something without using a framework and you will see why you need maths. We generally don't realize this because most of the time it's offloaded to some external library.
A simple easy to follow example would be plotting with d3.js, imagine setting up ticks on an axis without using d3 scale function for a dynamic dataset.
There's a whole new world inside of the cryptographic algorithms, networking, image processing and machine learning that works cause maths does.
Studying Mathematics is not just about learning how to use equations and some formulas or additions but rather learning how to approach very complex and highly abstract tasks. Think of how you'd develop a programming language from scratch without any use of toolkits such as LLVM. There, having been challenged with math problems before is off great help.
My background is in mathematical programming and now I am a data scientist, so math is central to my work. Specifically, probability and statistics are very important for what I do. In the past I have also worked on numerical optimization so calculus and linear algebra were needed.
These days the most common algorithms are available in easy-to-use, optimized libraries. I am grateful to the developers of numpy, pandas, scipy, and scikit-learn every day.
I have a web developer friend who knows almost zero mathematics. It takes a variety of people with a diverse mix of skills to develop software.
Really depends on your field of work. Most plain old web development does not require mathematics much. You would need it extensively for anything in the field of machine learning, game engine development, operating systems, cryptography, etc.
It's not required per se by my job, but my role in my team is kind of the efficiency/memory management/metrics guy, which leads me to use a lot of the statistics I learned years ago to determine statistical significance and model different approaches to a given problem.
Yes , I do. My scientific researches always require a level of mathematics.