Live data from Hacker News

Math is not necessary for software development

mutuallyhuman.com

61–70 of 79 posts

Re: Math is not necessary for software development

#61

Earlier quoted context omitted.

Please... Most business software doesn't require more than basic algebra. As long as you know how to read math formulas and implement them in code, you can just look up most of the stuff on wikipedia. For example, I worked on a monthly payment calculator for loans. All I needed to do was spend an hour reading http://en.wikipedia.org/wiki/Annuity_(finance_theory)#Proof and playing with the forumla on paper. Create a f…

I am failing to see how this is a counterargument. The mast has less to do with the accounting and more to do with how your webpage is getting to your users. You used math in several instances: * implementing the accounting formulas * Chrome interpreted your HTML code and calculated the layout for your website * your ISP knew to attach your URL with your IP address and serves it to your users * even the development p…

I'm not sure your list consists of good counter examples, with the exception of the first (as the parent opened himself up to that--implementing accounting formulas most definitely requires at least some mathematical ability, but that's a specific case).

The second point isn't mathematics; it's arithmetic.

The third and fourth points are really statements that are as too broad as the statement that "math is not necessary for software development". In particular, were were to employ your use of the word "algorithm" it would apply to literally any activity that can be described as a series of instructional steps. Consequently "how to make a peanut butter and jelly sandwich" becomes an exercise in mathematics, for example.

As a person who comes from an academic field in science that is rich in applied (and some theoretical) mathematics, my observation is that there exists very few cases where a person writing software at almost any level actually needs to have a deep mathematical/theoretical understanding of the data structures and algorithms he employs. And I mean "deep" in the sense that he even has to understand that a mathematically-backed theory is what he's employing. This is as true for computer science graduates having a prolonged bout of anxiety and envy of mathematicians and scientists as it is for the "lowly" CRUD App Developer. At the deepest, one needs to be able to employ arithmetic to compute a rough "Big O" estimate. That's "doing math" I guess, in the strictest sense, but only in the same sense as a child "does number theory" when he writes, e.g. "10" in the blank for "9+1 = ___".

Re: Math is not necessary for software development

#62
post #56

Earlier quoted context omitted.

You're working in a database... Hence you're working with set theory. Set theory is a discrete math.

That's a bit like saying "You can throw a ball in the air and catch it again, so you must have an understanding of celestial mechanics, fluid dynamics and geometry." Using a database is working with set theory, but that's very, very different to understanding set theory.

A fair point. I guess just having studied discrete before touching TSQL I happen to see the symbols 1:1 with syntax and assume the same elsewhere.

Re: Math is not necessary for software development

#63
post #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 c…

You speak the truth. I've never knit a stitch in my life, yet I made this for my wife a couple years back:

http://knitting.heroku.com/

:)

Re: Math is not necessary for software development

#64
post #36

"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 Horati…

Give some examples, it is interesting.

Let p be a prime number, and let

    s = cos(2 * pi / p) + i * sin(2 * pi / p)
be a primitive pth root of unity (ie a complex number such that s^p == 1). Now, consider all complex numbers of the form

    a_0 + a_1 * s + a_2 * s^2 + ... + a_(p-1) s^(p-1)
where the a's (a_0,a_1,...,a_(p-1)) are integers. Note that the fact that s^p == 1 means that we can multiply two things of this form and end up with another thing of this form. Likewise, we can add two things of this form, and get another thing of this form.* For the sake of notation, let's call the set of all such complex numbers Z[s] (where "Z" denotes the set of integers).

In 1847, the French mathematician Gabriel Lamé[1] published an attempted proof of Fermat's Last Theorem (ie the assertion that there are no positive integer solutions of x^n + y^n = z^n for n > 2) that carried the implicit assumption that every element of Z[s] except 0, 1, and -1 break down uniquely into irreducibles (much like factoring positive integers: 12 = 2 * 2 * 3, and that's the only way to break 12 down into primes (up to reordering)).

However, this uniqueness of factorization doesn't hold when p=23, as discovered by the German mathematician Ernst Kummer[2]. The failure of this approach to proving FLT resulted in the discovery of a significant amount of Algebraic Number Theory, in an attempt to "build more machinery" to get around the problems posed by Lamé's proof. Eventually, Andrew Wiles found a proof of FLT in 1995 that relied on Elliptic Curves and Modular Forms (two fields of mathematics of which I know pretty much nothing).

Another, less long-winded example is the Bridges of Königsberg[3]. In 1736, the following problem was posed to Leonhard Euler: is it possible to take a tour of the city of Königsberg in such a way that each bridge is crossed exactly once and you end in the same place where you start?

It turns out that the answer to that question is "No", and in his approach to answering the question, Euler laid the foundation for Graph Theory. Also, the roots of Topology can be tied back to this problem, as well.

* - In particular, the set of such complex numbers form what's called a ring (http://en.wikipedia.org/wiki/Ring).

[1] http://en.wikipedia.org/wiki/Gabriel_Lam%C3%A9

[2] http://en.wikipedia.org/wiki/Ernst_Kummer

[3] http://en.wikipedia.org/wiki/Euler#Graph_theory

Re: Math is not necessary for software development

#65
post #41

> Rarely in math are you coming up with a new way to solve a problem, but in software development you do that all the time! False. This guy is making a case against a subject in which he clearly lacks experience.

An algebraic solution might have a unique answer, but Math is more than pure Algebra. For instance, Machine Learning problems rarely have a single solution and I would argue that Machine Learning is tightly related to Math.

One solution, zero solutions, infinitely many solutions, ... this is grade school math.

Re: Math is not necessary for software development

#66

"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 Horati…

Which makes it clear the author knows very little about math.

Re: Math is not necessary for software development

#67
While I technically agree with the article, OP really takes some liberties with definitions. Yes, technically logic > math, but I have yet to meet someone who was "afraid of math" but awesome at logic.

The bottom line is you don't need to be a mathematician or even a B-average math student to program, but if you are afraid of the math content in most standard CS curricula (calc, linear algebra, discrete mathematics) you should probably not be a software programmer

Re: Math is not necessary for software development

#68
post #46

"The majority of code for something like Facebook or Twitter probably involves very little math." So it is clear from word choice that the author is just guessing. But Facebook does image recognition, it does ad placement, it does graph networks, it has EdgeRank - Facebook is only possible via math. Sure, perhaps there is more code written to push bits around on the front end and such, but it lives and dies by math.…

I agree that writing skills are important, but I also think that strong mathematicians are skilled writers as well. One general drive in mathematics is to lay out complicated ideas in ways that make the resulting theorems and questions seem completely natural and even trivial. It's no small task, and in my experience it has drastically improved my technical writing skills (where before math I only had historical/literary/debate writing skills).

Re: Math is not necessary for software development

#69
post #54

Earlier quoted context omitted.

Wrong! You still run into problems that require some math discipline and understanding. If you're writing CRUD apps, you need to know what a Cartesian product is or why big O matters. Or how to calculate disk space requirements and transaction times.

I've written more CRUD apps than I care to remember, and I have no idea what a Cartesian product is. The fact is we might use things that have formal definitions without knowing what the definition is, or understanding the theory behind it, or being able to derive it from first principles. That's very definition of not knowing maths and still being able to write software.

Cartesian product is a very common, well known database development term.

So what are these apps so I can avoid them? Because if you don't understand basic SQL, I don't want to use your apps.

Re: Math is not necessary for software development

#70
post #68
post #46

"The majority of code for something like Facebook or Twitter probably involves very little math." So it is clear from word choice that the author is just guessing. But Facebook does image recognition, it does ad placement, it does graph networks, it has EdgeRank - Facebook is only possible via math. Sure, perhaps there is more code written to push bits around on the front end and such, but it lives and dies by math.…

I agree that writing skills are important, but I also think that strong mathematicians are skilled writers as well. One general drive in mathematics is to lay out complicated ideas in ways that make the resulting theorems and questions seem completely natural and even trivial. It's no small task, and in my experience it has drastically improved my technical writing skills (where before math I only had historical/lite…

> One general drive in mathematics is to lay out complicated ideas in ways that make the resulting theorems and questions seem completely natural and even trivial.

.... to other mathematicians. And this is often a problem. I've had to fire mathematicians-come-developers who thought that writing their specs like a maths paper was a viable way of communicating their ideas, because they proved totally unable to communicate their ideas in a way that the rest of the team understood.

Lets be clear: I'm not saying all mathematicians do this - one of the brightest and best developers I've ever worked with was also deeply into maths yet is also great at communicating.

I just don't for a second believe that being a mathematician in any way implies that you'll necessarily be skilled at writing for a non-mathematician audience.

Post reply on HN