I'm sure there are different opinions on this, so let's hear them!
For further actions, you may consider blocking this person and/or reporting abuse
I'm sure there are different opinions on this, so let's hear them!
For further actions, you may consider blocking this person and/or reporting abuse
Hanzla Baig -
Jasmeet Singh -
Jagroop Singh -
Xecor Xecor -
Top comments (66)
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. 😁
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 ;)
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.
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)?
Anything that would require knowing about set/group theory, stats but then it depends on the project.
Completely agreed. There are too many ways for data science to go wrong if you can’t think about how it works.
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.
"don’t feel like an imposter if you don’t know everything right now"
That was gold. (:
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.
This is a good answer. I didn't think about game and graphical development, or cryptography.
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.
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.
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?
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)
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.
Great! Thanks guys! Looking forward to go further with it :)
Thanks! I'll give it a read.
Tell me if you liked it. Good read
same here!
I hope you will have a great read. Tell me how you liked it.
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.
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...
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.
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.
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.
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.
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.