Live data from Hacker News

Math is not necessary for software development

mutuallyhuman.com

71–79 of 79 posts

Re: Math is not necessary for software development

#71
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.

The really huge Google Matrix from the world of Information Retrieval: http://en.wikipedia.org/wiki/Google_matrix

Re: Math is not necessary for software development

#72

As someone who got into programming late in life - and, with the exception of geometry, began sucking at math starting with algebra - I never graduated beyond Algebra 2 and trig (and barely passed those classes). The biggest stumbling block I run into with programming relates to the adage "There are only three numbers in computer science: 0, 1 and n". I can easily deal w/ the '0' and '1' cases, but struggle making my…

I would look into discrete math topics. I'm not able to make recommendations on resources or textbooks, however. In the world of mathematics there are some parallel paths. They feed back into each other, but you can often study one field in depth and stay in the shallows with the rest.

Some useful math topics:

Set theory is related to relational algebra, which forms the foundation for relational databases. You don't need to know the math to use databases. There are methods, rules that you can apply when constructing databases that are, essentially, a distilled version of what others have discovered through the study of the math itself. But having a better understanding of the math side can help you to go beyond just a few memorized rules or querying stackoverflow.

Language hierarchies. This is a mathematical CS theory topic. Think about matching strings, you use a regular expression. Some structures, however, are not matchable with a regex. They're too complicated, that leads to context free grammars. Knowing the different classes and when to use each can be very useful. [1]

Big-O notation. This is an important concept in algorithm analysis. This gives a way to talk about the efficiency of a program and relate the efficiencies of different parts. It uses a moderate amount of calculus, but not much. Really, like with using a DB without knowing relational algebra, you can use the calc required for this sort of analysis without knowing calculus.

[1] This comes with a story. At an old job they needed to write their software design document (SDD) as part of a certification package. Now, ideally this is down concurrent to development (or prior if you're a waterfall/bullshit method organization). They, however, hadn't started on it. In the SDD there were typically flowcharts, pseudocode or some other high level representation of the code. To accomplish this a dev wrote a C->Pseudocode converter that really just used regular expressions and a global search/replace. This lead to some amusing ommissions and extra changes, and a bullshit document. if -> IF, while -> WHILE, { and} were omitted with the intent of replacing the } with ENDIF or ENDWHILE. They ended up just replacing them with END because they didn't know if it matched to an if, a while, a function or what. While I still think the task was bullshit (done at the wrong time and zero-added value, possibly negative for future maintainers), if they wanted to do it right they should have used a proper parser. C parsers are available that would know the difference between a } matching an if, while, for or function block. That would know the difference between `if` in a variable name and `if` the keyword. They could have at least made a more presentable version of their hack.

Re: Math is not necessary for software development

#73

Earlier quoted context omitted.

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 neces…

Arithmetic is a type of mathematics.

Re: Math is not necessary for software development

#74
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…

Mathematical writing is a particular genre of writing that doesn't work that well for technical and design documentation. This is not to say that these things can't contain mathematics, but you can't follow the usual template of:

* Abstract & Introduction

* Lemmas, Theorems, and Corollaries, each with their own proofs

* Some examples sprinkled throughout

* Maybe a concluding section with further questions or areas of investigation

* Bibliography

Re: Math is not necessary for software development

#75
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.…

Not to mention all of the machine learning behind the recommendation systems that try to figure out the best ad to show to a given person at any given time...

Re: Math is not necessary for software development

#76
post #70
post #68

Earlier quoted context omitted.

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 communi…

Being a mathematician does not in any way imply that one will necessarily be skilled at writing for a mathematical audience, either.

Re: Math is not necessary for software development

#77
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.

It's actually the case that even in straight up "theorem/proof" math, it's instructive, useful, and informative to have multiple ways to prove a given theorem. This is how you link multiple subfields of mathematics together and create cross-pollination of understanding between areas as advances in one feed into the other via the multiple correspondences (and, yes, that's a very handwavy and not terminology-correct way to put it).

Re: Math is not necessary for software development

#78

As someone who got into programming late in life - and, with the exception of geometry, began sucking at math starting with algebra - I never graduated beyond Algebra 2 and trig (and barely passed those classes). The biggest stumbling block I run into with programming relates to the adage "There are only three numbers in computer science: 0, 1 and n". I can easily deal w/ the '0' and '1' cases, but struggle making my…

Although calculus isn't a bad thing to learn, you might want to consider picking up some discrete mathematics and combinatorics, instead.

Re: Math is not necessary for software development

#79
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.…

If you were to take more math classes now, what subjects would you study? Who is to say you can't do this on your own now?
Post reply on HN