Live data from Hacker News

Math is not necessary for software development

mutuallyhuman.com

21–30 of 79 posts

Re: Math is not necessary for software development

#21
Reading comprehension and written / verbal communication are essential skills in many professions, not just programming. Any area of applied skill that is producing a result for humans requires strong communication - it's a relationship between humans (some programmers forget this).

I agree with you on that point, but I disagree with you on the point that it is more or less important than mathematics. You may not be applying a lot of higher math to your day to day job because most of it has been taken care of already in the libraries you use but that absolutely does not mean you wouldn't benefit from a deeper understanding of mathematics and how it informs computing.

I once thought like you, until I came across Haskell. Once I got through learning the language (which also requires you learn a few concepts from mathematics) I understood what is so powerful about it: idiomatic (and even non-idiomatic, to a degree) Haskell and the programmers that use Haskell - they go hand-in-hand - harness the ideas behind mathematical abstraction to produce programs that are so elegant. I've taken many of the concepts I learned in Haskell to mundane languages (Python notably) and have made my software in Python cogent, elegant, and easier to understand (note this even comes back to your argument around comprehension and communication). I'm still not a perfect programmer but I feel like the communication of my thought into a program is better because of my appreciation and deeper understanding of math.

Not to mention the foundational role mathematics plays in algorithms and data structures, if you understand the mathematics behind quantifying the time complexity of an algorithm, you're far more likely to pick the right algorithm for the job.

Also, logic could not be greater than Mathematics; Mathematics is more general and describes logic.

Re: Math is not necessary for software development

#23
post #7

I work in computer graphics software development. Math is an absolute necessity in this field. But only up to a degree, you do not have to be able to do multivariable calculus, but you need to generally understand matrices and vectors.

Matrices and vectors are useful in graphics. But I've never seem them used outside of graphics work.

Re: Math is not necessary for software development

#24
Software development is interesting in that it borrows for a vast range of other disciplines depending on what you're building. Very commonly, that's maths. You're not going to get very far manipulating matrices for 3D geometry without a bit of maths understanding. But, similarly, you're not going to get very far into developing a knitting pattern generator without understanding knitting - but that doesn't mean you can't be a developer unless you can knit. That'd be crazy.

If you develop applications that aren't reliant on maths then sure, you don't need to understand maths. On a day to day basis I write web apps that take strings from users, store them in a database, and display them in a different way later. No maths at all. Conversely, I've once wrote an image manipulation library based around convolution filters that used lots of maths.

As with most things, there's no single black and white rule. It's all shades of grey.

Re: Math is not necessary for software development

#25
> The majority of code for something like Facebook or Twitter probably involves very little math.

This may be a true statement as I've never seen the Facebook or Twitter codebases. However, as others said, logic is a part of math and logic is essential in code design.

Along with that, I'd wager most developers could make a facebook-like or twitter-like system. But their first pass is going to be crude, bloated, non-scalable. Understanding how data flows across the system gets reflected in both the software and hardware. That analysis relies on an understanding of graph and network theory and statistics. Perhaps not deep knowledge, but it's still math.

Re: Math is not necessary for software development

#26
What I think fails to grasp is that this is correct but only to a point. Sure someone can learn to code without doing math, but as things scale, this becomes really important.

How do you calculate distance between two points? Math. How do you timezone calculations? Math. How do you know what data structure is going to be small and fast enough to not overload a server and still get the job done? Math. How do you determine if two populations are statically different? Math. These are becoming everyday things. We've moved beyond the mid 90s where having a web page and writing some JavaScript was well enough for most companies.

Re: Math is not necessary for software development

#27
"Rarely in math are you coming up with a new way to solve a problem"

Bullshit. Bullshit, bullshit, bullshit. Entire fields of mathematics (eg Algebraic Number Theory) have arisen due to new approaches to solving problems. Literally millions of peer-reviewed mathematical publications have been written, many of which pave the way for new attack vectors on existing problems.

There is far more to mathematics, dear Horatio, than is dreamt of in the OP's philosophy.

Re: Math is not necessary for software development

#29
post #7

I work in computer graphics software development. Math is an absolute necessity in this field. But only up to a degree, you do not have to be able to do multivariable calculus, but you need to generally understand matrices and vectors.

Matrices and vectors are useful in graphics. But I've never seem them used outside of graphics work.

It's useful to have knowledge of them. They tend to pop up in random places. For instance, even simple recurrence relations like the Fibonacci one can be computed in logarithmic time via matrix exponentiation.

Linear algebra in general is completely critical in machine learning as well.

Re: Math is not necessary for software development

#30
post #7

I work in computer graphics software development. Math is an absolute necessity in this field. But only up to a degree, you do not have to be able to do multivariable calculus, but you need to generally understand matrices and vectors.

Matrices and vectors are useful in graphics. But I've never seem them used outside of graphics work.

I use them regularly in all sorts of unexpected places. The most common is probably machine learning, but I also use them in safety critical computations of projected courses, ETAs of various processes, and computing optimal geometries.
Post reply on HN