Live data from Hacker News

Math is not necessary for software development

mutuallyhuman.com

41–50 of 79 posts

Re: Math is not necessary for software development

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

Re: Math is not necessary for software development

#42

It really depends on which layer of the software stack you are working on. The closer you come to the hardware the more mathematical understanding you will need, e.g. writing a compiler. But it's also very true that if you work with high level languages like C# and python you can perfectly get your job done with just using a clever library that hides the underlaying mathematical problems. I also totally agree that co…

I would argue that using a "clever library" to get the job done still requires an understanding of the derivation for the solution. Otherwise the person wielding the sword would probably have never found the sword to begin with.

Re: Math is not necessary for software development

#44
post #33

"Logic > Math" Technically, "Logic ⊂ Math". Your argument is invalid. (that's the "subset of" operator above, in case the Unicode doesn't make it)

I disagree: logic is a tool used in math, in the same way that math is a tool used in physics. You might even say that math is "applied logic", just as physics can be considered "applied math".

Re: Math is not necessary for software development

#45

It really depends on which layer of the software stack you are working on. The closer you come to the hardware the more mathematical understanding you will need, e.g. writing a compiler. But it's also very true that if you work with high level languages like C# and python you can perfectly get your job done with just using a clever library that hides the underlaying mathematical problems. I also totally agree that co…

Its actually opposite. The higher you are, the more you have focus algorithms rather than just moving data around.

Re: Math is not necessary for software development

#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. But even screen layout requires math - dealing with resizing screens, different ad and post sizes and so on - there's a lot of admittedly basic algebra there.

With that said, I agree with much of the content of the post. I run into far too many engineers with no real skill at writing or communication, and that is also a large hindrance in the field. Naturally, every job will require a different balance of skills, and no absolute statement is possible.

However, I would say now more than ever math is required to really excel. Write the front end to some CRUD app? Sure, you can do that (where "you" is somebody with no experience). Write a side scroller? Maybe, just maybe you can pull that off. But that awesome new job writing a game that involves game physics. No, you can't do that. Hey, we need some image processing on this app. No, you can't do that. Let's track some objects. No, you can't do that. How about schedule some jobs in the factory? No, you can't do that. Hey, we have this product idea where we will use an arduino to... no, you wouldn't understand PID controls, you can't do that. Sigh. Want to write your 1023rd CRUD app? Slap some javascript together? Sure, you can do that.

This is why when the topic of university (should I go) comes up I am always a proponent. I was taught to write, I was taught to balance books and run a business, I learned calculus, linear algebra, AI, numerical methods, EE, mechanical engineering, thermodynamics, physics, statistics, chemistry. I've used all of that in my career (this week at work I am implementing some Kalman filters, for example), and my only regret is that I didn't take more math courses. The valley is on fire now with jobs requiring math - machine learning, hardware interfaces, augmented reality, and so on.

If I had a friend with no real math and an interest in programming I would not dissuade them, but math is very important in an important subset of programming.

Finally, I have to say I've watched a lot of people struggle to put a program together which has nested if statements or multiple and/or conditions. Generally speaking, the people that struggle to do it don't have any math skills. So even if you are programming something that doesn't require math knowledge, it certainly requires math aptitude.

Re: Math is not necessary for software development

#47
I see that the blogger whose post is kindly submitted here led off by noting the importance of clear written communication, and I fully agree. The thrust of the post here, that much of what is taught in the standard school curriculum in mathematics is neither strictly necessary nor especially helpful for becoming a developer, is also a good point. That agrees with Andrew Lih's response to the annual Edge.org question this year,[1] in which Lih suggests retiring calculus as a barrier to entry (a "hazing ritual") to careers in programming and coding.

Overall, the blog author is correct that development of good written communication skills is central issue for most software development today: "A very smart person doesn't need to write any comments, the code is obvious to them!" On the other hand, as another several comments here have pointed out, learning more mathematics often allows insight into programming problems that completely escapes people who haven't learned the same mathematics. So it's not a bad idea to practice written communication on the job in part by commenting code so that colleagues see what mathematical approaches were built into the code.

[1] http://www.edge.org/response-detail/25521

Re: Math is not necessary for software development

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

Been doing this a long time and I've never had to "manipulate matrices for 3D geometry" and I don't plan on doing that.

Re: Math is not necessary for software development

#49
post #5

the apps you can build without mathematics are limited to crappy Facebook clones.

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 one of the contractors writing a custom accounting system that does the heavy lifting. I have a whole support department helping people like you and your clients. Mainly because of lack of logically thinking skills that math classes would fill.

It's not that people don't like math. People are inherently lazy and acquiring logical skills requires work.

Re: Math is not necessary for software development

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

Any time you're dealing with linear transformations of vectors (ie functions f such that f(u + v) = f(u) + f(v) and f(a * u) = a * f(u) for any vectors u,v and scalar a), then you're implicitly dealing with matrices.
Post reply on HN