Software Engineering

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

presidentender

Golden Member
Jan 23, 2008
1,166
0
76
Originally posted by: Kyteland
Originally posted by: presidentender
With all due respect, most of the stuff tagged as "math" on stack overflow doesn't tell us anything about how programmers feel about math in general. The first question deals with addition and element borders, while the higher math stuff is mostly people asking "how to" questions, which are answered as a matter of course.

I'm technically a math major, and I'd argue that math can be a good skill for programmers to have. I don't see how it's essential, even from a problem-solving standpoint.

I see 50% of the questions on the first page as similar to the OPs question. That seems pretty relevant to me.


As for it being essential, to quote Code Complete:

In programming specifically, many studies have shown order of magnitude differences in the quality of the programs written, the sizes of the programs written, and the productivity of the programmers. The original study that showed huge variations in individual programming productivity was conducted in the late 1960s by Sackman, Erikson, and Grant (1968). They studied professional programmers with an average of 7 years' experience and found that the ratio of initial coding time between the best and worst programmers was about 20:1; the ratio of debugging times over 25:1; of program sizes 5:1; and of program execution speed about 10:1. They found no relationship between a programmer's amount of experience and code quality or productivity. (Code Complete, page 548)


And that difference in ability is exactly what I'm referring to when I say that a strong math background in absolutely essential. I'm not saying you can't do the job without it, but its essential to be a good programmer. A strong math background allows you to write better programs, faster.

As some background, I have a degree in theoretical computer science with a minor in mathematics. My title is mathematician and I do a lot of numerical programming, but I'm not on the programming staff where I work. The programmers here develop casino games.

I constantly run into programmers who struggle with things because they don't have the proper math background, and it rears its head in many different ways. Sometimes they can't derive an equation they need, but more often they "solve" problems very badly because they simply don't know any better. Their solutions produce correct answers, but they don't perform well and they don't understand why.

There's a reason that most of the upper level CS courses many curriculum are actually math classes. That Algorithms class you took was a thinly disguised math class. Theory of Computation, Data Structures, Finite Automata, Numerical Methods, Artificial Intelligence were all classes I took in college and were all heavily based on math.

First of all, most of the questions on that first page are nothing like the OPs. They're questions about specific problems, not about math education (except for the "Plumber programmer" guy). Heck, the OP doesn't even ask a math question, just wants to know how much math is involved. Honestly, for a software engineer, it's not much, and you know that.

As for the code complete bit, there's no evidence to support math being the difference between 1x, 5x, and 25x guys. Even your source isn't claiming this.

I know that there's a reason most upper level CS courses are math. I take those courses. Thing is, Finite Automata and AI won't have much to do with your job except in edge cases, any more than you and I use Galois theory to do our jobs (God, I hope you don't use Galois theory to do your job).

Again, OP, you should learn some math. You should not assume that math is some sort of panacea.

 

degibson

Golden Member
Mar 21, 2008
1,389
0
0
There's another thing to consider as far as math sensitivity: the game industry. If a programmer yearns to work on an engine, for instance, then math sure will help out when modeling physics or understanding the latest and greatest features of on a GPU. I realize its somewhat of a programming niche rather than a general requirement -- but there are other math-intensive niches, too.
 

Kyteland

Diamond Member
Dec 30, 2002
5,747
1
81
Originally posted by: presidentender

First of all, most of the questions on that first page are nothing like the OPs. They're questions about specific problems, not about math education (except for the "Plumber programmer" guy). Heck, the OP doesn't even ask a math question, just wants to know how much math is involved. Honestly, for a software engineer, it's not much, and you know that.
I'm claiming that these five:
  • Is mathematics necessary for programming?
  • What are the core mathematical concepts a good developer should know?
  • Do you have to be good at math to be a good programmer?
  • Mathematics for Computer Science Students
  • Useful math for programmers

Are similar to his question:
  • How much math is really involved when it comes to dealing with software engineering?

But that's just my opinion.

It's also my opinion that while you aren't doing a lot of hard core math in a generic programming position, it is none-the-less essential to have a strong math background to be truly successful.

As for the code complete bit, there's no evidence to support math being the difference between 1x, 5x, and 25x guys. Even your source isn't claiming this.

I wasn't being very clear and I apologize. The quote is just to show that the difference very much exists. My personal experience has lead me to the conclusion that a persons math background plays a large part in this.

I know that there's a reason most upper level CS courses are math. I take those courses. Thing is, Finite Automata and AI won't have much to do with your job except in edge cases, any more than you and I use Galois theory to do our jobs (God, I hope you don't use Galois theory to do your job).

I have been consistently surprised by what I've ended up using in my career. I took a graph theory course because I needed one more math class to finish my minor and it seemed interesting, although quite useless at the time. I used it to solve a sticky problem that resulted in a patent (although I admit I think it's a pretty BS patent) for my company. I took a Finite Automata course that I used to transform our slot evaluation algorithm from an O(5n) operation into an O(3) algorithm. In the next year I'll be wrapping up a project that uses AI models of certain player behavior, although I'm sure that it will do it very badly.

Again, OP, you should learn some math. You should not assume that math is some sort of panacea.

And I'm not claiming that it is, but I strongly believe that it's a cornerstone to a solid foundation of a programming career. As I said in my last post, I'm not arguing that you need a math degree to be a really good programmer but in my experience you do need a strong math background to excel.


Again, just my opinion based on personal experience.
 

presidentender

Golden Member
Jan 23, 2008
1,166
0
76
Originally posted by: Kyteland
  • Is mathematics necessary for programming?
  • What are the core mathematical concepts a good developer should know?
  • Do you have to be good at math to be a good programmer?
  • Mathematics for Computer Science Students
  • Useful math for programmers

Are similar to his question:
  • How much math is really involved when it comes to dealing with software engineering?

But that's just my opinion.

I was under the impression that most of the questions on the first page aren't those five... of which three are not on the first page (although the top question on the first page right now is the same sort of question, which kind of invalidates my argument).

Your job is a special case. You're a mathematician, not a software engineer. I certainly hope to be able to use my math in the future. But for the OP, his energies are not best spent learning math, especially not math outside of combinatorics.
 

Kyteland

Diamond Member
Dec 30, 2002
5,747
1
81
Originally posted by: presidentender
Originally posted by: Kyteland
  • Is mathematics necessary for programming?
  • What are the core mathematical concepts a good developer should know?
  • Do you have to be good at math to be a good programmer?
  • Mathematics for Computer Science Students
  • Useful math for programmers

Are similar to his question:
  • How much math is really involved when it comes to dealing with software engineering?

But that's just my opinion.

I was under the impression that most of the questions on the first page aren't those five... of which three are not on the first page (although the top question on the first page right now is the same sort of question, which kind of invalidates my argument).

Your job is a special case. You're a mathematician, not a software engineer. I certainly hope to be able to use my math in the future. But for the OP, his energies are not best spent learning math, especially not math outside of combinatorics.

That page must change when its reloaded. The site is dynamic.

My title may be mathematician but I most certainly am a software engineer. I paid a lot of money for a piece of paper that say so.

I'd say combinatorics is the least of his math problems. Logic, boolean algebra, linear algebra, recurrence relations, graphs/trees, probability, statistics and analysis are all topics he ought to be familiar with.

Again, only my opinion.
 

presidentender

Golden Member
Jan 23, 2008
1,166
0
76
Originally posted by: Kyteland
I'd say combinatorics is the least of his math problems. Logic, boolean algebra, linear algebra, recurrence relations, graphs/trees, probability, statistics and analysis are all topics he ought to be familiar with.

Again, only my opinion.

Well graph theory (including everything you can know about trees) is combinatorics. I'll grant that most of the wider area of discrete math can be useful, too, and that you could probably find areas (finance, anyone?) where analysis is important. If he wants to do graphics, he'll sure learn linear algebra. But as for a top priority? "Need" to be familiar with? No way.
 

Aikouka

Lifer
Nov 27, 2001
30,383
912
126
I've barely used any math in my software engineering. But I find it's also worth noting that the idea of a Software Engineer is supposed to encapsulate the various aspects of software development. As a software engineer, you're not a programmer... programmers (are supposed to) get paid less. You should be able to transition between the various stages in development. Like right now I'm doing some things in the testing phase of development (i.e. I'm not doing any coding at all).

Although, I know some software engineers that can't code their way out of a paper bag .

But to talk more about math. Like some others here, I took enough math that I only needed to do Colloquium to get my Math minor. But one thing is that some of the math courses that we had to take is that quite a few were logic-related. Discrete Math is more logic related than most. I also took Matrix Algebra... while not that logical, it's really not that difficult (but has applications in 3d graphic programming when you get to Transformations).
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |