Slashdot Mirror


Ask Slashdot: How Many of You Actually Use Math?

An anonymous reader writes with a question that makes a good follow-on to the claim that mathematics requirements in U.S. schools unnecessarily limit students' educational choices: "I'm a high school student who is interested in a career in a computer science or game development related position. I've been told by teachers and parents that math classes are a must for any technology related career. I've been dabbling around Unity3D and OGRE for about two years now and have been programming for longer than that, but I've never had to use any math beyond trigonometry (which I took as a Freshman). This makes me wonder: will I actually use calculus and above, or is it just a popular idea that you need to be a mathematician in order to program? What are your experiences?"

1,086 comments

  1. Field dependent requirement by icebike · · Score: 5, Insightful

    The bulk of programming jobs have nothing at all to do with math beyond the high school level.
    Its mostly counting beans and keeping records. Really, it is.

    Gaming, (image rendering and manipulation), statistics, and rocket science are a few of the obvious areas that come to mind where more advanced maths may be necessary. Even these fields have packages available to do the heavy lifting once you figure out what it is that you want to do. Knowing what to do the key. This kind of programming constitutes about 1% of the available jobs and 98% of the chest thumping on slashdot.

    --
    Sig Battery depleted. Reverting to safe mode.
    1. Re:Field dependent requirement by AlphaWolf_HK · · Score: 4, Interesting

      I've gone all the way up to calculus 3 (vectors, multi-dimensional functions, and doing differentials and integrals therein) and I've yet to see calculus applied by any programming. I am curious how one actually implements it though, in what (limited) programming I've done, I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      Is it typically library/api driven and you just feed an equation to those functions? Or do most programmers hardcode them?

      I'd like to see some code examples. I'd probably never have a use for it, but I am curious.

      --
      Careful with names containing L slashdot.org/~AiphaWolf_HK slashdot.org/~AlphaWoif_HK slashdot.org/~AiphaWoif_HK
    2. Re:Field dependent requirement by fredprado · · Score: 5, Insightful

      On the other hand, almost all IT jobs require at the very least a good part of high school math, especially logic, algebra, arithmetics and combinatory analysis.

    3. Re:Field dependent requirement by Skapare · · Score: 1

      s/may/will/ ... that will fix it.

      --
      now we need to go OSS in diesel cars
    4. Re:Field dependent requirement by Anonymous Coward · · Score: 1

      The advanced math is required by the folks who write "packages available to do the heavy lifting".

    5. Re:Field dependent requirement by Anonymous Coward · · Score: 1

      Conceptually I've used calculus a lot. I am currently writing mapping applications, and have to, for example, understand (and implement) the ability to calculate the surface area of a curved, irregularly shaped plain.

    6. Re:Field dependent requirement by jittles · · Score: 5, Interesting

      Two out of three Of my jobs after graduating have required math. The first job involved video encoding, decoding, and cryptographic signatures. If I didn't have knowledge of advanced math I would have found it almost impossible to understand the algorithms, and to make optimizations that were required.

      The second job required linear algebra to do calculations of target positions from a moving aircraft to track up to six moving ground targets. I'd say the math experience is also nice to have just from a problem solving Standpoint.

    7. Re:Field dependent requirement by DanTheStone · · Score: 4, Informative

      I've done work in GIS software that definitely used my Calculus and Linear Geometry training (for surface areas and distances and intersections on a sphere, for example). The times you need the math are when there isn't already a "package" available for you, or when you need to do something efficiently (optimizing calculations). In my current job Statistics is shaping up to be more useful.

      Then again, I did also have a math minor and gravitate toward technical jobs, so some of that stuff is expected. But I'm not in gaming or rocket science or statistics.

    8. Re:Field dependent requirement by Anonymous Coward · · Score: 1

      wtf?

      The smartest guys in the room are usually the ones who understand applied math and use it effectively.

      By "guys in the room", I mean the software engineers working through the problem.

      Or is this some stupid fucking rationale for raising test scores by reducing the complexity of the math requirements....

    9. Re:Field dependent requirement by SJHillman · · Score: 1

      I agree. If you can't add, subtract, multiply, divide and use algebra, then you won't last. However, I've never needed anything remotely as advanced as even precalculus (although I don't do a little of programming).

    10. Re:Field dependent requirement by Jeremiah+Cornelius · · Score: 3, Funny

      How will you ever correctly use the word "orthagonal" in a meeting, and command all credibility, without having taken maths?

      --
      "Flyin' in just a sweet place,
      Never been known to fail..."
    11. Re:Field dependent requirement by s.petry · · Score: 4, Insightful

      Taking away the obvious implication of "You don't program differential equations" the logic skills gained by math help greatly in programming. I don't use derivatives per-say in programming or IT work, however understanding how to simplify complex problems has been invaluable to my career.

      I graduated with a Mathematics degree and minored in Liberal Arts. I learned about computers during courses in programming that were required for the Math degree. I have never worked as a Mathematician, it was boring compared to Information Technology.

      --

      -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

    12. Re:Field dependent requirement by bannable · · Score: 5, Insightful

      I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      Calculus is a study of continuous mathematics. C, C++, and every (?) other programming language work on principles of discrete mathematics, which is why you can read all about strange calculations with floating point variables. So, what you've seen is only natural.

      My understanding of it is that most colleges/universities do not even consider offering discrete mathematic courses until at least Calculus 2 is completed, and in some places not for a year after even that.

      --
      "If you see a man on a horse, he is likely an enemy. Kill the man and eat the horse."
    13. Re:Field dependent requirement by FranTaylor · · Score: 5, Insightful

      I've yet to see calculus applied by any programming.

      How does your laptop computer calculate remaining battery life?

      How does your browser calculate remaining download time?

      How does your tablet distinguish between gestures?

      "I'm an experienced automobile driver and I don't think that pistons and piston rings exist, because I have never seen them."

    14. Re:Field dependent requirement by jason.sweet · · Score: 1

      The advanced math is required by the folks who write "packages available to do the heavy lifting".

      Who let the manager in?

    15. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      3D graphics heavily use calculus, though generally most use simple Linear Algebra (Matrix Manipulations).

    16. Re:Field dependent requirement by Anonymous Coward · · Score: 4, Funny

      Math changes the way you think. It helps abastractization and logical thinking. You can say you don't use it, but you can't say it's useless to learn it.

      Honestly though, I think most people who complain about not needing math are a suffering from some kind of inferiority complex. They can't deal with it, so they want to get rid of it.

    17. Re:Field dependent requirement by Anonymous Coward · · Score: 1

      Obviously you never had to.

      Symbolic calculattion is slow for real time processes and and continuous fileds don't work to well with digital computers, so numerical approaches are taken, that are able to allow arbitrary precission.
      If you play an mp3, someone somehow, provided you with a discrete cosine transform. To achive that you had to go from differential calculus, to complex variable calculus, to space transformations of functions and distributed function theory that allows to "discretize" all that math.
      And you need to know about fixed point maths if you whant to implement that in processor without floating point unit.

      Thats more than 2 years of math courses just to justify that yo can do that. The rallity is most people don't use the math because somedy already did the work for them.

    18. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Every now and then I wish I knew more about statistics.

    19. Re:Field dependent requirement by mcelrath · · Score: 5, Insightful

      You've just reduced computer science to monkeys plugging the right wire into the right socket. 1,000,000 such monkeys can reproduce the collected works of Kernighan and Richie.

      Without math you'll be unable to:

      1. Understand big-O algorithm analysis
      2. Analyze the output of a profiler
      3. Understand any encryption algorithm
      4. Work on any data analysis (every application has some element of statistics -- even if it's in the app's own internal call graph)

      If you cannot do those things, I wouldn't call you a programmer, I'd call you a monkey.

      This ongoing discussion about lack of math is ludicrous. Math is one of those things where if you don't know it, you can't see what it's for, and if you know it, you can't imagine a world without it. You can always argue you don't need knowledge, and if you're nothing but a device for turning food into poop then that's true, but those with knowledge will rule you. EVERY single thing in the world comes down to math. The monkeys don't know that, and they shouldn't program computers. Every single job you can think of can be improved by judicious application of a little math in the right places, and those who can will get ahead.

      To be specific, take combinatorics, and as much statistics as you can get your hands on. That in my opinion is the bare minimum for life as a human being. Then you can understand poker odds, political polls and elections, and you'll know enough to not blow your money on lottery tickets. For programming or any scientific/engineering field, you'll also need linear algebra and calculus. If you're smart enough to realize that you don't live in 1-dimensional world, continue with vector calculus and complex analysis, and laugh as everyone around you tries to do linear regression on everything they can find. One or two more courses out of interest and you'll have a math major.

      --
      1^2=1; (-1)^2=1; 1^2=(-1)^2; 1=-1; 1=0.
    20. Re:Field dependent requirement by Anonymous Coward · · Score: 1

      Equity options/credit derivatives pricing

    21. Re:Field dependent requirement by LoyalOpposition · · Score: 1

      I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      It it has a closed form solution, then you just use addition, subtraction, multiplication, and division. Otherwise Runge Kutta.

      ~Loyal

      --
      I aim to misbehave.
    22. Re:Field dependent requirement by Tough+Love · · Score: 5, Insightful

      Just as one example, as a game programmer your ability to implement, say, Newtonian iteration would likely make a difference in your salary ask by a factor of two. Without math skills you are a worker bee, but with strong math... maybe a rock star.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    23. Re:Field dependent requirement by cpu6502 · · Score: 4, Insightful

      The point of high-level math and physics classes is not because you "need" them in your job as a programmer. It's a way to limit how many CSE degrees are granted. I was told this straight-up by my college advisor when I asked What's the point of having 30 freshman engineering students if only 2 survived to the end?

      Lots of college degrees are like this. The supply is higher then the demand for open jobs, so they give tough courses to limit the number of grads. (And degrees that don't weed-out students, like English, end up with a lot of degreed students working at Mickey D's.)

      --
      My AC stalker: " I personally agree with your posts most of the time, but that won't keep me from modding you troll"
    24. Re:Field dependent requirement by FranTaylor · · Score: 5, Funny

      I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      You are aware that there isn't a clear way to calculate integrals using pencil and paper either?

    25. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I doubt many programmers code their own calculus functions. Did you learn about Euler's method in your calculus classes? Software performing integration usually uses similar (but more complicated) methods, although there is software like Maple that symbolically solves integrals.

      I have only used this stuff for biophysics simulations, I don't think most programmers ever need calculus.

    26. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Horseshit. The calculus and I studied informs almost everything I do -- driving, software engineering, project management, frisbee throwing.

      Lack of overt math in the practice of an expertise does not mean it isn't there.

    27. Re:Field dependent requirement by Nemesisghost · · Score: 2

      The bulk of programming jobs have nothing at all to do with math beyond the high school level. Its mostly counting beans and keeping records. Really, it is.

      It's not so much that most programming doesn't use math, it's that different business realms use different type of math. Your standard business application probably isn't going to use much more than basic algebra. But it all depends on the needs of the business you are trying to support. Some will need to calculate & keep track of large statistics. Or you could be working for someone who's business is defined by space usage, so you'll need geometry & calculus. In the graphics & high performance realms you'll need matrix mathematics. At the very least every programmer will need to know boolean algebra.

      My mathematical background is more geared to physics, which really doesn't help much in my current job. What I need here is more statistics. And that's what I'd recommend most programmers get, b/c what business doesn't need statistics.

    28. Re:Field dependent requirement by dmbasso · · Score: 1

      [insert Fry's image here] Hmm, not sure if on purpose... or if never had math.

      --
      `echo $[0x853204FA81]|tr 0-9 ionbsdeaml`@gmail.com
    29. Re:Field dependent requirement by PT_1 · · Score: 1

      I've gone all the way up to calculus 3 (vectors, multi-dimensional functions, and doing differentials and integrals therein) and I've yet to see calculus applied by any programming. I am curious how one actually implements it though, in what (limited) programming I've done, I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      Is it typically library/api driven and you just feed an equation to those functions? Or do most programmers hardcode them?

      I'd like to see some code examples. I'd probably never have a use for it, but I am curious.

      I haven't tried it, but it appears that the GNU Scientific Library contains functions for linear algebra, numerical differentiation, differential equations etc. You can download it here, and it's also in the standard Debian repositories (and I suspect also included with most other Linux distros).

    30. Re:Field dependent requirement by Anonymous Coward · · Score: 1

      How will you ever correctly use the word "orthagonal" in a meeting, and command all credibility, without having taken maths?

      You could just use it in the normal sense...

    31. Re:Field dependent requirement by rrohbeck · · Score: 1

      Even if you don't formally use much math you do it instinctively all day in your work and everyday life.
      I often have to shake my hat at people who simply don't "get" some simple facts of life because they don't have the "feel" for the underlying math. Just simple facts of exponentials, orders of magnitude, statistics, linear vs nonlinear behavior of systems, basic calculus etc.

    32. Re:Field dependent requirement by afidel · · Score: 5, Funny

      The answer to your first two questions is universally poorly.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    33. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      lol algebra

    34. Re:Field dependent requirement by Anonymous Coward · · Score: 1

      The ideas for calculus are important, and it's handy in some cases to be able to recognize some basic integration. But unlike, say, trigonometry, you're never (unless you enjoy MATLAB) have to type in something like y = integral(0,1,pow(e,x)). It's less concrete, but useful to recognize. And with that in mind, it's way less daunting to learn.

    35. Re:Field dependent requirement by godrik · · Score: 4, Interesting

      These exemples are simple interpolation/extrapolation.

      Other exemples involves: how does a computer compute sine, cosine, sqrt ?

      How does any programming language work ? (Hint: it is not called lambda CALCULUS because it sounds fancy)

      How to solve systems of equations? (also known as "where does curves intersect?")

    36. Re:Field dependent requirement by sydneyfong · · Score: 2

      If you're really calculating remaining battery life and download time using *calculus*, I think you're doing something wrong.

      Your data is discrete, and there's no funny function for you to differentiate to find the slope. Guesstimating the average speed (of battery use or of download) merely requires something like this http://en.wikipedia.org/wiki/Moving_average#Application_to_measuring_computer_performance

      If you mean the "concepts" of calculus is used here, uh, I've been drawing slopes on Cartesian planes since I finished primary school.....

      --
      Don't quote me on this.
    37. Re:Field dependent requirement by jythie · · Score: 1

      I would say even with programming jobs where you do not need to actually write the math from scratch, knowing the math can go a long way towards using the libraries well. It is hard to optimize or do things elegantly when you do understand the underlying concepts.. you just end up doing something slightly more sophisticated then cargo cult programming, but not by much.

    38. Re:Field dependent requirement by Nemesisghost · · Score: 5, Informative

      Another reason you don't see any calculus(or other advanced mathematics) in programming is that you derive the equations you'll need on a piece of paper or white board then use the results in the actual application. An example is the velocity & distance equations that are derived from constant acceleration(V = V0 + a*t, d = d0 + V0 * t + 1/2 * a * t^2). Those equations are the 1st & 2nd integrals of the acceleration. Now instead of trying to recalculate the entire integral each time you need to know how far something traveled, you simply use the already derived equation. The same goes for most applications of various mathematics. But knowing how to derive those equations doesn't stop you when you are presented with something outside the given(say for example if a = 2 * a0 * t).

    39. Re:Field dependent requirement by Anonymous Coward · · Score: 2, Funny

      How does your laptop computer calculate remaining battery life?

      How does your browser calculate remaining download time?

      How does your tablet distinguish between gestures?

      Poorly?

    40. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I wonder why that is.

    41. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Have you ever used LINQ?
      Lambda calculus may be handy.

      For multivariate calculus, you need to do something that requires physics. Aeronautical engineering, architecture (stress/strain analysis, harmonic modes, etc.), and signal processing (i.e. Fourier transform calculus) are examples.

      If you do financial scam*cough*engineering, Ito Calculus would be useful.

      Differential equations are much more useful for process controls.
      Take that if you can.

    42. Re:Field dependent requirement by Defenestrar · · Score: 1

      However, the ability to understand what those heavy lifting modules/programs do will be the difference between mastery and mediocrity within the field.

      For example, much of what everyone sees and does on a day to day basis is governed by first and second order differential equations (a medium to medium-advanced mathematics field). While very few people go think about differential equations while in stop and go traffic, heating up food, or any number of other tasks - an understanding of the math lets people realize why following distance is so important or how come the pan/barbeque heats up the way it does.

      It's true that there are very few fields which use higher level math (especially of varying types) on a day to day basis, but the foundation to understanding most technical fields is rooted in the higher level math - including programming. Basic math can be important too. Besides, the really fun hot-and-sexy types of programming jobs do need the math.

      (Can you explain how a computer works? From the starting-point of electric potential, band-gaps, and logic operations? Most people can't, and indeed don't need to, but a mastery of the subject does need it (so throw in chemistry and physics). If you want an easy way to learn low level computing, pick up Minecraft and play around with red torches :)

    43. Re:Field dependent requirement by jhoegl · · Score: 1

      Utilizing "Fuzzy" Math to approximate is exactly what humans do when they encounter math in the real world.
      When was the last time you believed your transfer files time in Windows?

    44. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      The bulk of programming jobs have nothing at all to do with math beyond the high school level.
      Its mostly counting beans and keeping records. Really, it is.

      Gaming, (image rendering and manipulation), statistics, and rocket science are a few of the obvious areas that come to mind where more advanced maths may be necessary. Even these fields have packages available to do the heavy lifting once you figure out what it is that you want to do. Knowing what to do the key. This kind of programming constitutes about 1% of the available jobs and 98% of the chest thumping on slashdot.

      20 yrs in the programming field and I have yet to work on a project that had NOT required advanced math.

    45. Re:Field dependent requirement by RevSpaminator · · Score: 1

      "Thump! Thump! Thump!" The thing a lot of people miss about higher math has nothing to do with the ability to manipulate tensor fields in an n-dimensional asymptotic space. Unless your job includes astrophysics, that really isn't the point. The point is learning to solve problems that occur in the real world, no matter how complex. That trivial bit of code may only include some high school level bit of numerical analysis but mean everything to the person who requested it.

    46. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Calculating an integral is basically finding the area under the curve. Remember how you used limits and summed approximating rectangles to develop the notion of an integral? You just get the computer to do that. Dead simple.

      For fun you can also use a simulation approach. Define a rectangle which encloses the function over the desired interval. It's easy to calculate the rectangle's area. Then randomly choose points within the rectangle. Evaluate the function at the x value of the random point, keep track of the number of points whose y values were below the function. The area under the function will be approximated by: area of the rectangle * (# points below function / total # points chosen).
       

    47. Re:Field dependent requirement by jedidiah · · Score: 1

      Math is cross training for your brain.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    48. Re:Field dependent requirement by PT_1 · · Score: 1

      Additionally, a Google search turned up this, which looks very interesting. Might be worth a look.

    49. Re:Field dependent requirement by Annirak · · Score: 1

      How does your laptop computer calculate remaining battery life?

      Two possibilities: 1) it has a voltage measurement, 2) it has a "fuel gauge" chip. For 1), It measures the voltage on the battery and compares that to a calibrated charge remaining vs. voltage curve. For 2), the chip reports the remaining capacity. Then divide by a sliding frame average of current consumption.

      How does your browser calculate remaining download time?

      It divides the remaining file size by a sliding frame average of the download speed.

      How does your tablet distinguish between gestures?

      It records all the points of a given "touch" (the point of a touch is the vector average of the whole touch zone. Think of it as the centre of gravity). It then does linear regression on the points, giving it a line which matches the average. It compares the linear regression and the actual data to find an error level, and divides the line segment up into smaller segments until they are all within some acceptable error level. It then passes this information off to a topological processing system, which could be as simple as a set of table lookups, but more likely is just a bunch of vector arithmetic.

      The point here is not whether any of these examples is accurate or not, it's that each of them is plausible. You can do an enormous amount in programming without calculus.

      But is it necessary? I'd argue it's field and application dependent. It's remarkably necessary for numerical methods (both for error and complexity); but those only matter if you're writing your own algorithms and you can get a long way without understanding the error in a system. It's necessary for simulation software, and there are more examples. Anywhere that a system is critical, and connected to the physical world, I'd want them to know the calculus required to accurately model their interface.

      Another point, is that Computer Algebra Systems are faster and more accurate at most calculus than you will ever be; however they still require you to set up the problem so that they can do the algebra, integration, and differentiation for you.

    50. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      No mod points for mentioning Runge Kutta in a question about math for video games? For shame, slashdot. For shame!

    51. Re:Field dependent requirement by pitchpipe · · Score: 3, Funny
      From what I've experienced:

      How does your laptop computer calculate remaining battery life?

      Wildly inaccurate guess.

      How does your browser calculate remaining download time?

      Roll of the dice.

      How does your tablet distinguish between gestures?

      Doesn't recognize the bird.

      --
      Look where all this talking got us, baby.
    52. Re:Field dependent requirement by Defenestrar · · Score: 2

      Actually, higher level math is very useful in coming up with a far more efficient algorithm for all sorts of modeling, data analysis, and realistic graphics. Numerical methods can brute force all sorts of calculations, but there's nothing better for efficiency than supplying an analytical solution to a non selfadjoint EVP.

    53. Re:Field dependent requirement by ThatsMyNick · · Score: 1

      Dont forget, it is a changing world. You never know when calculus is going to become important. There is very often a paradigm shift, the more you are prepared for it, the better equipped you will be to handle it.

    54. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      How does your laptop computer calculate remaining battery life?

      How does your browser calculate remaining download time?

      D = rt - That is NOT calculus

      How does your tablet distinguish between gestures?

      How in the world is this calculus? Up != Down != Left != Right... 1 Finger != 2 Fingers...

    55. Re:Field dependent requirement by JDG1980 · · Score: 2

      Just as one example, as a game programmer your ability to implement, say, Newtonian iteration would likely make a difference in your salary ask by a factor of two.

      If you care about salary (or working conditions), you shouldn't become a game programmer in the first place. From an objective standpoint these are among the worst programming jobs in existence; the only reason there are so many applicants is because kids fresh out of college thing these jobs are "cool." (They're not; the kids won't actually get to design the games – that's done by completely different teams of people. They're just coding to spec, like they would in any other job, but with worse pay and longer hours.)

    56. Re:Field dependent requirement by Genda · · Score: 5, Informative

      Alright, how about global weather models? Fluid dynamics? Protein folding? Field tensor analysis for everything from power inductors to energy recovering braking systems to fusion modeling? All of these and a thousand more require higher mathematics to model. Ray tracing, rendering and animation being used in virtually all movies and games today involve all kinds of fascinating math problems, and interesting optimizations are popping up all the time. Statistics are important for everything from traffic regulation to neural networks to population control to quantum mechanical modeling to predictive analysis on genomics and proteomics. As has been said, it completely depends on what you're trying to do and what field of computer research you're taking on.

      What hasn't been said is that the critical thinking skills required in visualizing mathematical problems and their solutions is precise that same little chunk of gray matter that's going to help squeeze out a better algorithm, or find the lines of symmetry in your data set so you can fold it and reduce space and time required to make your solution run faster and more reliably. Its all part of the puzzling mind, and math is the heavy lifting needed to give you the mental muscles required to move the intellectual mass you're interested in moving. That and at some point you begin to actually see the world mathematically. The elegance and beauty of the language and its freedom to build new and surprising contexts describing anything you can imagine. If computers are engines of realizing human imagination, math is the fuel that engine runs on.

    57. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I've yet to see calculus applied by any programming. ... I'd like to see some examples

      That implies that he believes there ARE examples

    58. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      The bulk of programming jobs have nothing at all to do with math beyond the high school level.
      Its mostly counting beans and keeping records. Really, it is.

      Sadly, this is true. The most math I have had to use in my development jobs has been basic algebra and statistics - and even then, it rarely had anything to do with my software projects. It was all for doing some reporting for the management in one way or another.

      Programming USED to require good mathematical knowledge, when you were writing code close to the hardware and manually manipulating registers and whatnot and we didn't have fancy tools and computers took up entire rooms, but modern languages pull you so far away from that stuff that you simply don't need to care.

    59. Re:Field dependent requirement by null+etc. · · Score: 1

      I agree that statistics is very, very useful - if for no other reason than being to identify the useful info in a sea of spreadsheets and log files.

      As for the other stuff? Depends on what you're doing. I've had a very successful IT career of 20+ years, and the last several years have involved working on marquee mobile apps. Even when working on high-profile websites (~500M page views/month), I haven't needed to understand Big O beyond a superficial level, and I certainly didn't need anything beyond algebra to understand the output of a profiler (even for iOS, which can be a challenging platform.)

      Am I a monkey? No. I have worked on engaging software products that millions of people happily use, all without advanced math knowledge.

    60. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Programming requires primarily logical thinking. I practically never do algebra while programming, there are tools that will do that for you, that doesn't mean I don't understand what those operations do, but my addition, substraction, multiplication and division have gotten very very rusty since school.

      Or more to the point, it requires logical thinking, which is what science teaches.

      There are also some mathematics heavy disciplines like automation that are essentially mathematics applied to programming.

    61. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      "I'd like to see some code examples. I'd probably never have a use for it, but I am curious."

      Taylor Series (Infinite Series) approximate trigonometric functions, SIN(X) etc. The natural logarithm LN(X) is defined by an integral, & all other bases are a constant multiple of it, e.g. common log LOG10(x).

      These are all taught during Calculus 2 in the USA, and were required to get a CS BA degree for my university. It's good to at least know how the computer finds those functions. Then, you can tell where on the domain X it might fail, or what the error estimate is.

    62. Re:Field dependent requirement by nahdude812 · · Score: 5, Insightful

      Battery charge / discharge rate is not constant over the charge level of the battery. The percentage reported by the battery to the OS is just the voltage reading, which is not truly linear to the actual charge level. It even depends on the load being placed on the battery. See this image (from here).

      So sure, you can do a bad job of reporting remaining battery time that way. Or you can do a good job by involving some more advanced mathematics. This is a good example of why math is useful, even if most jobs don't fundamentally require it. Most programmers I know would look at the above chart and declare they have no idea how to deal with that, but it is pretty close to linear, and they know how to write that math, so that's what they'd write, then call it good enough.

      You can be a programmer without higher math. But you can be a better programmer with it.

    63. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      You remind me of the team of 14 I worked on, where I did all the math, because no one could figure out how to paint a decent arrowhead on a bezier curve, or do any decent rubberbanding that wasn't a square, or code even trivial 2D CSG type operations back when GUI's needed that kind of thing. Our team dwindled over the years, and let me tell you, the managers knew exactly who was doing the math, and who they needed to let go first.

    64. Re:Field dependent requirement by Pingo · · Score: 1

      I am now 58 years old and by some strange reason I have allways needed to use very advanced math in my work. Now my work has been in the Swedish defence industri for 28 years and I have never been involved in anything resembling IT. Only embedded computers in Swedish fighter aircafts and its weapon systems. Also RADAR signal and navigation alghorithms where Quaternions has been an essential skill that I had to learn. I have been fortunate to have good payed jobs that has been very interesting but then programming for me is just a way of expressing my solution to a technical problem. I have also worked with missile tech or what some would call rocket science. No math gives low salaries and very boring jobs.

      --
      --- Linux or FreeBSD, it's like blondes or brunettes. I like both. ---
    65. Re:Field dependent requirement by johnw · · Score: 1

      I've yet to see calculus applied by any programming.

      How does your laptop computer calculate remaining battery life?

      How does your browser calculate remaining download time?

      Neither of these seems an obvious application for calculus. Both can be done very simply with a trivial calculation, but for some odd reason they very seldom are.

      For the download one, the calculation simply is, "How much of the download is done? How long did it take? Assume the rest will happen at the same rate and extrapolate."

      I itch to re-write the firmware in our photocopier at school, which estimates the time for a job right at the beginning (always a bit optimistically), and then simply counts down, ignoring the progress which it's made. This leads to it estimating, say, 25 mins for a job, and then counting down over the next 25 mins, with the result that when it has done 80% of the job its estimated time remaining reaches zero and stays there for the remaining 6 and a bit minutes. It would be trivial to re-write this code properly, and I hate the fact that I can't do it.

      Kyocera - step forward in shame.

    66. Re:Field dependent requirement by WaywardGeek · · Score: 5, Interesting

      I look for places to use my math skills, and find plenty. I was differentiating to find minimums this morning, and I've used a lot of calculus, linear algebra, and even number theory recently. However, I could find plenty of work which requires nothing more than knowledge of how to use a 4-function calculator. I just don't personally find such work very satisfying.

      I've been instrumental in hiring decisions of couple of dozen programmers by now. If a person says math isn't their thing, it's not the end of the interview, though strong math skills are a plus. I'll often be interested in a physics Ph. D. or mathematician, even if they don't yet know how to code, but if a guy can't show strong analytic skills in math, I need to see some demonstration of coding skills. For example, a person with strong 3-D visualization skills can become a good router guy without advanced math skills, though they have to be competent in high school level math. We just put such people on projects that wont require advanced math.

      In our work (chip design related algorithms), we have to have some serious math geeks, but it doesn't have to be the whole team. We've got a brilliant IIT grad who did our sparse matrix backwards Trapezoid interconnect delay simulator, running 1000X faster than SPICE, with the same accuracy. There's some cool discrete math in our logic optimizer. The linear algebra in the placer is cool. We're also doing some analog design aids, and it really helps if you understand the math behind the algorithms you're expected to code, and analog optimization is heavily mathematical. Advanced logic optimization some advanced math, as does many algorithms that come up in chip design. I've been doing a bit of analog, which is heavy into Z transforms, and Laplace transforms. I've also recently done a bit of signal processing involving custom optimized FFT code. Transformer design can be done by "rule of thumb", but to write the code to do it well requires solid understanding of both the physics and the math behind it. Those who enjoy advanced math appreciate being assigned projects where they can put their mathematical reasoning skills to good use, and those who hate math appreciate not being on those projects. It all works out. You just need a good mix.

      --
      Celebrate failure, and then learn from it - Nolan Bushnell
    67. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      This ongoing discussion about lack of math is ludicrous.

      Not at all. The apparent technology centrism of slashdot hides a deeper and much more fundamental anti-intellectual libertarian streak. When you start your discussions about higher education from a standpoint that money is the only important thing and getting anything except an engineering degree is "stupid" (as so many people around here love to claim) then it is natural to start asking why bother getting any kind of formal education at all, just so long as you can make money doing ... something/anything. Now that "government" has successfully and permanently been turned into a dirty word, conservatives and libertarians are turning their attention to "education" as the next target.

    68. Re:Field dependent requirement by HapSlappy_2222 · · Score: 2

      While I agree with you, there's really no reason (none!) not to take the advanced math classes in high school, or better yet, college, at some point.

      1) What are you gonna take instead? A foreign language? A basketball class? You're gonna have a ton of electives; Take advanced math.
      2) What if you get an amazing offer that you're not prepared for because you never took intermediate or advanced math classes? That sucks the suck of missed opportunity. Take advanced math.
      3) Advanced math skills could allow you to make elegant and speedy algorithms that run circles around a kludged in binary search or some garbage. Having higher level math skills gives you a TON more versatility, even if you rarely use them. Take advanced math.
      4) Calculus and the like goes hand in hand with physics, including motion, water dynamics, space calculations, particle behaviors, etc. Not to mention simulations. All of those would be AMAZINGLY useful for game programming, (or my dream job: creating advanced simulations of space and celestial behaviors). Take advanced math.

      Speaking more from experience, I wish I'd taken more math in addition to my CS courses. I ended up having kids pretty young and started working in IT, moving finally to running a print shop, which I enjoy, but every single day I run across amazing opportunities for high level engineering and/or programming, and I don't have the chops to apply. Trust me, take advanced math while you can.

      The end summary: there's no reason not to, and all the reasons in the world to get it done, since it's only going to help you.

    69. Re:Field dependent requirement by funwithBSD · · Score: 1

      So is playing an instrument.

      Unfortunately, I suck at both...

      --
      Never answer an anonymous letter. - Yogi Berra
    70. Re:Field dependent requirement by ceoyoyo · · Score: 0

      If you want to command all credibility you should probably stick to "orthogonal."

    71. Re:Field dependent requirement by leonardluen · · Score: 0

      i have degrees in both Math and Computer Science, and i would say that you may need calculus (and maybe some physics) to understand how to derive the equations for those, but by the time it gets to the programmer those equations have already been derived and all the code monkey is doing is plugging the values into a static equation in his program. in most cases the programmer probably needs a passable understanding of algebra, but i don't recall the last time i required anything beyond that.

    72. Re:Field dependent requirement by Austerity+Empowers · · Score: 4, Interesting

      When I hear "discrete math", I think of map problems, circuit minimization, bipartite graphs, and what boils down to PhD level computer science (or pure math, whatever floats your boat). You can take this as a freshman, I did.

      What you mean is "discrete time math", which is an entirely different type of math that has very strong roots in calculus. Discrete time math, at least as it is useful to me, is the mathematical method of working on sampled signals.

      You can get jobs with both, I think the former is far more useful to computer scientists in general. To be honest, most jobs won't really require it of you, but understanding why things are is frequently more important than understanding what they are, if you're going to have a long lived career. If you just want to code up someones lifecycle management DB, it's probably not useful. But if you want to do something new that solves a hard problem for a new industry, it is a tool you may find valuable. I know that tools I use as a EE rely on someone having a discrete math background to have solved them.

      The latter job is normally reserved for electrical engineers specializing in digital signal processing. You can definitely get a job with it, and you will use it in your job, although usually in the form of block diagrams you lay out in matlab. You may or may not use C to implement it, although most people I know at least start there since it's faster to write than verilog or vhdl.

      Video game programming is mostly trigonometry, but there's some calculus in there too. Physics engines of course use calculus and a lot of matrix math. You may use those as packages, but I think if you want to do something the library designers (who are mostly focused on physics and execution speed) didn't conceive of, it would be good to know the math that gets you there.

      As always the value of higher education isn't teaching you practical things that you can use today, it's teaching you how things work so you can use them in new ways tomorrow. I can understand frustration on this, we've all been there, and I do wish universities would spend a little more time on "practical" to augment the abstract and toss the liberal arts stuff which is useless for the intentions of 99% of people attending school.

       

    73. Re:Field dependent requirement by HapSlappy_2222 · · Score: 3, Informative

      How about something as simple as moving a virtual object a) from point A) to point B) while correctly calculating the gravitational effects of objects b) and c)? Classic calculus (I think; I never took enough of it, to be honest, and I regret it).

      Also: http://en.wikipedia.org/wiki/Stochastic_calculus

      Would be pretty awesome to have the chops to seed a random field.

    74. Re:Field dependent requirement by Enhypnion · · Score: 1

      I am a physician scientist that does imaging work in the medical industry. As such I use higher level mathematics ( Tensor equations, Convolutions, Integral Transforms etc) daily. The key to programming in higher level math, is to solve your problem in such a way that it can be approximated using numerical analysis algorithms or linear algebra. To do this you need to understand your problem and be able to solve it on paper first, so that you know the limitations of your solution and can correct it accordingly. No one will pay for a piece of software that gives the wrong answer 1 out of 100 times.

    75. Re:Field dependent requirement by VGPowerlord · · Score: 1

      I've yet to see calculus applied by any programming.

      How does your laptop computer calculate remaining battery life?

      For the percentage, battery power remaining / total battery power.

      For the time left, battery power remaining / total battery power * consumption rate.

      Last I checked, multiplication and division involving variables was Algebra, not Calculus.

      How does your browser calculate remaining download time?

      time / bytes transferred * (file size in bytes - bytes transferred)

      For instance, if I'm downloading a 1 MiB file and I downloaded 256 KiB in 1 second:

      1 second / 262144 bytes * (1048576 bytes - 262144 bytes) = 3 seconds remaining

      Again, Algebra.

      How does your tablet distinguish between gestures?

      Now that one I'm not sure about, but I highly suspect it involves Algebra, not Calculus.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    76. Re:Field dependent requirement by HapSlappy_2222 · · Score: 1

      You're looking at this as half-full. In addition to limiting graduates, it makes sure the people who want this degree really do want it, and aren't just in it for the big entry-level bucks.

      If you can hack high level math and physics classes, you'll do well to have earned your shiny new degree. The degree is WORTH more at that point, both literally and figuratively.

    77. Re:Field dependent requirement by sydneyfong · · Score: 1

      Unless you're telling me that there's a differentiable function that describes those non-linear voltage decay graphs...

      Suppose the only way to tell the charge level of the battery is via voltage, what would I do? I'd just discharge the battery at a constant rate, and then record the sample of the voltage every 0.1% of the time axis. 1000 values isn't really that hard to store anywhere these days, even if you're talking about an embedded device.....

      Not that I disagree with your claim that higher maths makes a better programmer -- I actually agree. But then, I really don't think there's any "calculus" necessary involved here....

      --
      Don't quote me on this.
    78. Re:Field dependent requirement by randomencounter · · Score: 1

      Statistical analysis is a biggie for math usage, and it applies across many business domains.

      It's not glamorous, but it needs to be done.

      --
      Forget diamonds, copyright is forever.
    79. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I use math all of the effing time. I flunked it all through school though. Embrace it, if you can.

    80. Re:Field dependent requirement by icebike · · Score: 5, Funny

      Excellent Pedantry Mr Nemesis.

      But what I need from you at the moment is how many are in inventory right now, and can we fill this bulk order today or are we going to have to back order?

      --
      Sig Battery depleted. Reverting to safe mode.
    81. Re:Field dependent requirement by smittyoneeach · · Score: 1

      You use differential equations ever time you wad up a piece of paper, run across the office, and shoot the wastebasket while moving.
      Granted, you don't think consciously about those snaky integrals.
      But they're there, wrapping your flesh like the tentacles of Cthulhu.
      Sucking the life out of every cell, as you desperately attempt to look cool in front of the colleague.
      Reaching into your brain as your shot bounces off the wastebasket lip, ricochets off the wall and--
      ENODATA

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    82. Re:Field dependent requirement by grqb · · Score: 1

      To calculate the capacity used in a battery, you apply the following equation:

      capacity = integral(current, dt)

      So yes, this is calculus. To solve this you would use a numerical approximation to the integral, such as the trapezoidal rule.

    83. Re:Field dependent requirement by Austerity+Empowers · · Score: 1

      The funny part is that you're exactly right while being so exactly wrong, all at the same time.

      The derivation for what you linked really does require some calculus, and if you want to adapt that equation to something else, you probably need to work with calculus. More importantly, with math you may find that this particular method of estimation does not apply as well to battery life as to queue length. The weightings mentioned there also have fancy math terms which actually help you understand how to work with the equation.

      Yes, if someone else gives you an equation like the wikipedia, you're all good. I don't know that anyone else is going to want to produce that for you, but they will happily criticize how your product "totally sucks, the battery life indicator totally doesn't work".
       

    84. Re:Field dependent requirement by fredprado · · Score: 1

      You may think you don't use algebra, but you do it every time you use a variable.

      Furthermore mathematics is logic's formalization. If you are not able to formalize your logic it is more likely than not that you don't comprehend it well.

    85. Re:Field dependent requirement by clodney · · Score: 2

      I agree. If you can't add, subtract, multiply, divide and use algebra, then you won't last.

      The usual way I explain it to students/non-technical outsiders is that much of my job consists of solving what we used to call "word problems" or "story problems". So nobody tells me that I need to solve 3x + x = 12, but in the course of analysis I discover what that is indeed one of the equations involved.

      Boolean logic and basic algebra (and arithmetic of course) are absolute requirements in most programming jobs in my experience, but anything beyond that is more of a specialty requirement.

    86. Re:Field dependent requirement by cayenne8 · · Score: 1

      How will you ever correctly use the word "orthagonal" in a meeting, and command all credibility, without having taken maths?

      I just have the hardest time getting used to seeing people spell math with a "s" on the end of it...I only see it done here on slashdot...my eye is immediately drawn to it as a spelling error or typo.

      But back to discussion...I've taken through Cal 3 I think...but have never used really any math beyond addition and subtraction in my IT career.

      --
      Light travels faster than sound. This is why some people appear bright until you hear them speak.........
    87. Re:Field dependent requirement by geekoid · · Score: 5, Insightful

      And with a good concept of math, you can get all those question, plus tell them there likely stock flow, better ways to organize inventory storage, and advance logistics regarding said inventory.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    88. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      It's not the maths per se, it's the thinking processes that are developed and excercised while solving the mathematics problems in school (algebra, trig, geometry proofs, epsilon-delta proofs, etc) that are directly applicable to computer programming.

      Being able to work with abstract placeholders seems trivial, until you see kids having brain core meltdowns because they're stuck on "x" equaling something concrete or semantic. or, even better, they can't do the mental gymnastics if the variables are no longer x,y and z.

      If you currently can't get that, you're really going to go postal and insist on silly things if you end up working with databases, like "no NULL values in my databases!".

    89. Re:Field dependent requirement by Jeremiah+Cornelius · · Score: 5, Informative

      Math = USA usage

      Maths = UK usage

      Der.: MathematicS

      --
      "Flyin' in just a sweet place,
      Never been known to fail..."
    90. Re:Field dependent requirement by uigrad_2000 · · Score: 1

      I see you just posted this a few minutes ago, so you really have no excuse for not reading the other posts near yours.

      If you do a linear interpolation do determine remaining battery life, then your result will be off badly. This may explain why some cheaply made devices have very bad assumptions about how much power remains.

      To get the right answer, you most definitely need calculus.

      --
      Free unix account: freeshell.org
    91. Re:Field dependent requirement by autocannon · · Score: 1

      You've just reduced computer science to monkeys plugging the right wire into the right socket. 1,000,000 such monkeys can reproduce the collected works of Kernighan and Richie.

      Without math you'll be unable to:

      1. Understand big-O algorithm analysis
      2. Analyze the output of a profiler
      3. Understand any encryption algorithm
      4. Work on any data analysis (every application has some element of statistics -- even if it's in the app's own internal call graph)

      If you cannot do those things, I wouldn't call you a programmer, I'd call you a monkey.

      This ongoing discussion about lack of math is ludicrous. Math is one of those things where if you don't know it, you can't see what it's for, and if you know it, you can't imagine a world without it. You can always argue you don't need knowledge, and if you're nothing but a device for turning food into poop then that's true, but those with knowledge will rule you. EVERY single thing in the world comes down to math. The monkeys don't know that, and they shouldn't program computers. Every single job you can think of can be improved by judicious application of a little math in the right places, and those who can will get ahead.

      To be specific, take combinatorics, and as much statistics as you can get your hands on. That in my opinion is the bare minimum for life as a human being. Then you can understand poker odds, political polls and elections, and you'll know enough to not blow your money on lottery tickets. For programming or any scientific/engineering field, you'll also need linear algebra and calculus. If you're smart enough to realize that you don't live in 1-dimensional world, continue with vector calculus and complex analysis, and laugh as everyone around you tries to do linear regression on everything they can find. One or two more courses out of interest and you'll have a math major.

      Absolutely love this post.

    92. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      AC due to work, sorry.

      There's an entire field called numerical analysis devoted deriving computer algorithms that approximate the solution to various mathematics (also engineering, physics, etc..) problems. In terms of your example of computing an integral there's an entire subfield called quadrature devoted to it.

      http://en.wikipedia.org/wiki/Numerical_analysis

      There are tons of libraries that implement the basic numerical analysis libraries. I can usually get about 80%-90% of what I need to implement the solution to a new problem out of existing software.

      http://math-atlas.sourceforge.net/ Linear algebra.
      http://www.netlib.org/lapack/ Higher level linear algebra.
      http://trilinos.sandia.gov/ The kitchen sink with a focus on PDE solvers.
      http://ab-initio.mit.edu/wiki/index.php/NLopt Optimization.
      http://www.netlib.org/quadpack/ Quadrature.

          I can say that this field is awesome to work in as you get to wear a lot of hats. Some days I'm a mathematician, others a computer scientist, still others an almost engineer. Though there is the problem of "proficient in all, master of none."

    93. Re:Field dependent requirement by rwiggers · · Score: 1

      Li-ion batteries (laptop batteries) have really small changes in voltage output until very near the end of the charge. There's indeed a very precise integrator calculating the estimated remaining energy on the battery by measuring current and voltage.

    94. Re:Field dependent requirement by icebike · · Score: 1

      You may think you don't use algebra, but you do it every time you use a variable.
       

      So then what I fill in on my income tax forms is Algebra?

      --
      Sig Battery depleted. Reverting to safe mode.
    95. Re:Field dependent requirement by geekoid · · Score: 1

      "there's no funny function for you to differentiate to find the slope."
      and there ware are ladies and gentlemen, a person who doesn't understand the maths and application they are talking about, saying those maths aren't needed.

      I wish small minded unimaginative people like this where a rarity, but sadly they are more common then the term 'uh' at a moron convention.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    96. Re:Field dependent requirement by WhitePanther5000 · · Score: 1

      I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      You can approximate an integral by dividing the area under a curve into many trapezoids (the more the better), calculating the area of each one, and adding them together: http://en.wikipedia.org/wiki/Trapezoidal_rule

      There is a nice parallel example in Parallel Programming with MPI. From that page, you can download the C source code and look at chap04/trap.c

    97. Re:Field dependent requirement by geekoid · · Score: 0

      "and then record the sample of the voltage every 0.1% of the time axis."
      then please never do it. Why you think batter draw in a computer is constant is baffling.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    98. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      >Math is one of those things where if you don't know it, you can't see what it's for, and if you know it, you can't imagine a world without it.hole

      Exactly. This boils down the whole argument.

    99. Re:Field dependent requirement by zakaryah · · Score: 4, Insightful
      Mod parent up. It says a lot about math education that this discussion has focused on whether or not programmers ever implement routines related to calculus. Math is as much a way of thinking, solving problems and making useful definitions as it is about specific techniques or computations. To quote Wigner:

      In fact, the definition of these concepts, with a realization that interesting and ingenious considerations could be applied to them, is the first demonstration of the ingeniousness of the mathematician who defines them. The depth of thought which goes into the formulation of the mathematical concepts is later justified by the skill with which these concepts are used.

      Within computer programming alone, topics as diverse as decidability and Turing completeness, computational complexity, discrete probability, number theory for cryptography, calculus for almost any optimization problem, geometry not only for graphics but also for information theory, which is necessary for compression and coding - show that math is the heart and soul of all of these concepts! Beyond that, so many of the operations that computers are actually useful for carrying out are inherently mathematical. I get why so many people are dismissive of "higher" math - there is no shortage of lousy teachers or rote arithmetic in early education, boring classes and an overall negative reinforcement that can leave people jaded and scornful. But I've learned from experience that it IS possible to get young kids interested in real math, mostly by knowing some of the relationships to fascinating phenomena. Regardless, I think it is tragic to see such disparaging opinions of mathematics.

    100. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      If your laptop was manufactured by anyone with sense it's not calculating that stuff at all but rather using data tables. Similarly when simulators/physics engines are "calculating" forces on the various surfaces of airplanes they are using data tables rather than dynamically calculating the aerodynamics in question. The data tables in question were generated using empirical observation and measurements in controlled environments and generally not calculated using any form of calculus. In something complex (like the airplane simulation in question) you might be doing some work to sum the various forces, but you generally want to do as little calculation at run-time as possible.

    101. Re:Field dependent requirement by glebovitz · · Score: 1

      Unless you are in marketing which makes no credibility redundant.

    102. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Third question also.. I flipped the bird at my computer just yesterday and it didn't even blink.

    103. Re:Field dependent requirement by t1oracle · · Score: 1

      It's a Brit thing. In the US it's math without the s.

    104. Re:Field dependent requirement by geekoid · · Score: 1, Insightful

      Ware are talking about ow level programming. i.e. You write the tool, and access the api of some other tool.
      " Then divide by a sliding frame average of current consumption."
      and that's how you get a completely unrealistic idea of how much time until you need to charge that battery.

      "It divides the remaining file size by a sliding frame average of the download speed."
      And that's the worst way to get an estimate.

      " You can do an enormous amount in programming without calculus."
      Bad, bloated, sloppy, error prone results programming.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    105. Re:Field dependent requirement by bluefoxlucid · · Score: 3, Insightful

      Those look like third order polynomial curves to me...

    106. Re:Field dependent requirement by lister+king+of+smeg · · Score: 1

      my laptop when unpluged usually tels me any where from 2 minutes to 2450 days of charge remaining i ignore it completely.
      i think you got every one of those dead on.

      --
      ---Saying gnome 3 is better than windows 8 not so much a compliment as it is damning with light praise.
    107. Re:Field dependent requirement by Eloking · · Score: 1

      You can be a programmer without higher math. But you can be a better programmer with it.

      Actually, you can be a slightly better programmer with higher math. Kinda like you’ll be slightly better with a gym class instead (better health is beneficial for any job).

      The question here is, wouldn’t it be better for a programmer to have a class in high-level programming instead of high-level math?

      --
      Elok
    108. Re:Field dependent requirement by Imrik · · Score: 1

      If you do a linear interpolation of the voltage it will be wildly off. If you take the voltage and compare it to a table to tell you the charge level and do a linear interpolation on that, you will be fairly accurate.

    109. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I've only gone to Calc 1, but in 30 years of a varied development career have used calculus exactly once, in the optimization of a scientific routine.
      This was a function in a package called MATLAB. I have had to understand the concepts though, having been a statistical consultant at one point. I have had to use trig and geometry.

      I've gone all the way up to calculus 3 (vectors, multi-dimensional functions, and doing differentials and integrals therein) and I've yet to see calculus applied by any programming. I am curious how one actually implements it though, in what (limited) programming I've done, I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      Is it typically library/api driven and you just feed an equation to those functions? Or do most programmers hardcode them?

      I'd like to see some code examples. I'd probably never have a use for it, but I am curious.

    110. Re:Field dependent requirement by johnw · · Score: 1

      I see you just posted this a few minutes ago, so you really have no excuse for not reading the other posts near yours.

      I didn't see any other nearby posts covering downloads and photocopiers.

      If you do a linear interpolation do determine remaining battery life, then your result will be off badly. This may explain why some cheaply made devices have very bad assumptions about how much power remains.

      Sorry - I can't find anywhere in my posting where I said anything about doing linear interpolation to determine battery life. (Perhaps it's you who is guilty of extrapolating from what I did say?)

      Battery life is obviously more complex, and depends not just on how long the machine has been on, but also how hard it is working. It's intrinsically more speculative, because you don't know how heavy the future loading will be. Nonetheless, I suspect a better estimate than tends currently to be provided could be achieved by recording actual performance over a number of discharge cycles and then predicting from those.

    111. Re:Field dependent requirement by buchner.johannes · · Score: 1

      Combinatorics ... thats what you need most in my experience. And statistics, when you look at scientific or approximate algorithms. Linear algebra, definitely. Ultimately, all of CS (logic) is math, except where it lingers into user interfaces and becomes design.

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    112. Re:Field dependent requirement by robably · · Score: 5, Funny

      I just have the hardest time getting used to seeing people spell math with a "s" on the end of it

      It's so it balances out the word "Lego", honestly.

      In the UK we have Maths and Lego. You swap the "s" over and have Math and Legos. From either side the other side looks strange and frightening and it makes you wonder how the people on the other side can get through a day while being so WRONG, but seeing as Math(s) and Lego(s) are two of the most wonderful things on Earth I say just accept it and move on.

    113. Re:Field dependent requirement by Galaga88 · · Score: 1

      Unfortunately, I suspect it comes down to "Can the next guy after you maintain that code you just wrote using calculus?"

      My guess is it'll go back to a linear calculation as soon as the function needs tweaking, and you're no longer there.

    114. Re:Field dependent requirement by Creepy · · Score: 1

      I would say that entirely depends - there are "rock star" programmers like John Carmack and, um, those Medal of Honor guys that left Activision (I don't play shooters much, they make me sick) and they make a fortune. Most game programmers don't have a degree and don't make much though. Not that a degree helps - the better ones self educate.

      But there are many things you become aware of with higher education. For instance, if you are using Euler angles in a 3D engine, you need to be aware of Gimbal Lock. When writing a 3D engine, you need to be aware of vectors and matrices and how they work. Quaternions are still useful for anything done in main memory as well. If you're using a 3D engine that exists, some of these things aren't as useful, but I've used multivariable differential calculus for geometry extrusion in shaders (specifically a pre-processor shader - that sucker takes weeks to run on GPU and months on CPU and creates a mapping that gives reasonable results in realtime), so math has its place.

    115. Re:Field dependent requirement by geekoid · · Score: 1

      "For the percentage, battery power remaining / total battery power."
      not really that good.
      I would calculated a derivative based on previous usage and put that into the equation as well. If it's a regular used MC system, then to do otherwise would get you fired.

      Same thing for download time.

      1 second / historic derived results. ...
      Try it some time, assuming you have the mental capacity to apply anything above 5th grade algebra to a real world usage.

      And, of course, you need to know calculus to use it in application that need it. Science and math application, geological application. You know, stuff smart people(not you) do.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    116. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Donald Knuth would likely agree with you on all points.

    117. Re:Field dependent requirement by icebike · · Score: 2

      Math changes the way you think.

      Programming changes the way you think.
      It does so in ways most useful in programming. Some of these are annoying.

      Such as when the waitress say "If you need more coffee, my name is Sally", and I am left wondering what her name would be if I have enough coffee.
      I'm not sure it would be at all helpful to have the first derivative of Sally's profile pop into my mind and waste all that time reflecting on how Sally is just a stick figure.

      --
      Sig Battery depleted. Reverting to safe mode.
    118. Re:Field dependent requirement by History's+Coming+To · · Score: 1

      I've used a fair bit of trig, usually as part of something exhibiting harmonic oscillations, even in plain old webdesign. A fair bit of stats too, often from the point of view of "how likely am I to run over limit X in everyday use?". Calculus, don't think I've ever used it directly.

      --
      Please consider this account deleted, I just can't be bothered with the spam anymore.
    119. Re:Field dependent requirement by The+Mighty+Buzzard · · Score: 1

      I've seen the lack of knowledge of it get someone fired from a blue-collar job. He calculated the remaining fuel volume in a horizontally oriented, cylindrical fuel tank like it was a cuboid instead of a cylinder. The resulting millions of dollars of damage when they ran out of fuel did not ingratiate him to management.

      --
      Violence is like duct tape. If it doesn't solve the problem, you didn't use enough.
    120. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I use statistics in about 38 percent of my code.

    121. Re:Field dependent requirement by geekoid · · Score: 1

      "From an objective standpoint these are among the worst programming jobs in existence;"
      and there is you limited imagination shoing itself.
      1) Game programming is a great way to utilize advanced mathematics.

      2) The gaming industry is a great place if you plan to sat for a few year then branch into your own business.

      3) Not all companies are EA. Valve is a good company to work for, and who are they more likely to acquire? some 5th grade algebra bore, or someone with advance mathematics that can actual understand the formulas need to calculate the slope of a bullet?

      4) While I wouldn't work in the game industry, many people enjoy it. So you really sound like an ass when you tell someone what they shouldn't do with their career. Pressure create diamonds, and breaks pipes; which are you?

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    122. Re:Field dependent requirement by GbrDead · · Score: 1

      > I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      You need a course on Numerical methods for that.

    123. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      But what I need from you at the moment is how many are in inventory right now, and can we fill this bulk order today or are we going to have to back order?

      Actually, your question on inventory management, and generally supply chains and logistics, uses math quite a lot.

      The important question is not "Can we fill this order right now?". The important question is "How many items should we stock on XX date in order to ensure that customers will not see an empty aisle?". The latter question requires calculus, statistics, and machine learning. Answering the latter question is what makes you $$. This is what Wal-mart does.

    124. Re:Field dependent requirement by Ambassador+Kosh · · Score: 1

      For this it is much simpler and more accurate to time step and do a force balance at each step. It also means you don't have a precalculated path so it can be changed at any time.

      The force balance math is also insanely simpler and faster to do. Overall analytical math has too many approximations built into it.

      --
      Computer modeling for biotech drug manufacturing is HARD! :)
    125. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      How does your laptop computer calculate remaining battery life?

      I've had to do this estimate for two different jobs (non-laptop, but field battery operation on data loggers). I just used empirical lookup tables. And yes, I have a degree in mathematics, but have very seldom used it. It's necessary when I do need it, but those cases are very very rare.

    126. Re:Field dependent requirement by Radres · · Score: 1

      Nope, Chuck Testa!

    127. Re:Field dependent requirement by Anonymous Coward · · Score: 1

      I'm retired, but I did a lot of programming between 1960 and 2005 or so. Very little of it -- even real "rocket science" type jobs involved math more complex than algebra and trigonometry. It wouldn't do any harm to know how series expansions work and to have a rough idea how matrices can be used to solve problems described by systems of equations. In business programming, understanding that exponentials can be used to solve for things like interest compounding would be useful. But if anything complex is needed, it's very unlikely that the math won't be provided by a real mathematician. (I also wouldn't take it as a given that the math provided by real mathematicians will actually work. They make mistakes sometimes)

      For many folks, unearthing, reading, and understanding Richard Hamming's 50 year old "Numerical Methods for Scientists and Engineers" would probably do more good than another math class.

    128. Re:Field dependent requirement by maroberts · · Score: 1

      20 yrs in the programming field and I have yet to work on a project that had NOT required advanced math.

      You should take up website or database related programming for a rest then! :-P

      --

      Donte Alistair Anderson Roberts - hi son!
      Karma: Chameleon

    129. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      But truthfully, you either use a library which is optimized for speed/accuracy (way better than you yourself are likely to do it unless you are doing it for a research/PHD project) or you don't care about speed/accuracy and thus just use a simple algebraic equivalent.... At least this has been my experience in pretty much every case I've had to deal with.

    130. Re:Field dependent requirement by jpate · · Score: 1

      Most (all?) modern approaches to artificial intelligence use calculus. If you're using a maximum likelihood statistical approach, you'll (usually) be differentiating the probability of the data with respect to your parameters to find a good local maximum. If you're taking a Bayesian statistical approach, you'll be integrating out your model parameters to get an average answer with respect to all models. If you're using a support vector machine, then you'll be using lagrange multipliers to minimize your error.

      There are well-studied special cases that probably wouldn't take too much understanding of calculus, because you can just use existing code out of the box, but most applications are going to require at least a basic understanding of what you're differentiating with respect to or integrating out, and how that is actually implemented in your code.

    131. Re:Field dependent requirement by bluefoxlucid · · Score: 1

      How in the HELL do you do a lineaud regrusession?

    132. Re:Field dependent requirement by HapSlappy_2222 · · Score: 1

      I bow to your superior experience, definitely, and I've never done this in a programming environment. However, I can't help but think it's valuable to know the math behind reality when attempting to simulate it. I wish I knew more, and someday, I will. Probably gonna put my girls into college at the same time I go back. Sigh.

    133. Re:Field dependent requirement by bluefoxlucid · · Score: 1

      Apparently getting remaining capacity is hard. It's doable, but apparently also some newer hardware supplies a chipset that does the calculations in hardware for you because programmers are too stupid to math.

    134. Re:Field dependent requirement by FranTaylor · · Score: 1

      If you mean the "concepts" of calculus is used here, uh, I've been drawing slopes on Cartesian planes since I finished primary school.....

      WHERE does the exp() in your math come from??? It's CALCULUS.

    135. Re:Field dependent requirement by icebike · · Score: 1

      Ah, no. It doesn't.
      I've written systems like that. JIT Inventory systems are no where near that complex.

      --
      Sig Battery depleted. Reverting to safe mode.
    136. Re:Field dependent requirement by fredprado · · Score: 1

      When you are making the calculations necessary to fill those forms you will inevitably use algebra and arithmetics.

    137. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      plain? I think you meant plane, which by definition can only be irregular with respect to the shape of its border(s), orthogonality notwithstanding.

    138. Re:Field dependent requirement by KhabaLox · · Score: 1

      I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      Just guessing here, but I would expect that such a task is probably more easily doable in a recursive language like Scheme/Lisp.

      --
      Ceci n'est pas un sig.
    139. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      You assert that there is a limit on the number of CSE degrees that can or should be issued in the world?

      So we think that if there are more people in the workforce that know a lot about computers that this would be a bad thing?

      Who sets this limit?

      Or to state more directly, this sounds like completely unfounded conspiracy theory. I have been working in computers for more than a decade and there has always been a visible shortage of smart people that know what they are doing. If there are people out there that are artificially limiting the number of people educated in computing, I would like to have some words with them. Some very strong words.

    140. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      The three most interesting assignments I've had in my career have involved math: Finite math (predicate calculus - sets, Boolean algebra, formal logic), and finite state machine design. I've also had the good fortune to do this in health-related fields (medical devices and biotech). Even then, I was assisting the PhDs who were doing the really heavy lifting.
      My work was done in C and Haskell (particularly good for formulating mathematical problems). The really sharp folks also used Haskell recently, in which they implemented some really deep math, where program functions were literally differentiable and integratable by passing them through other functions.
      Unfortunately, I had to get to grad school before I got finite math (dual major undergrad in physics and mathematics). Fortunately, I got a very early taste for math, as my Chicago Public School 4th grade math included rings and fields (we must have been a guinea-pig school for the U of C 'Chicago Math' program, though I had no idea at the time that this was weird).

    141. Re:Field dependent requirement by Twinbee · · Score: 1

      To calculate remaining download time, just calc: fullFilesizeInBytes / bytesDownloadedSoFar, and then use that to multiply the time that has passed so far to give an estimated arrival time. Hardly rocket science or calculus - I have no idea why SO MANY programs can't get it right.

      --
      Why OpalCalc is the best Windows calc
    142. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      What you speak of is called numerical integration, and I use it in about half of my projects. It drives any sort of physics you see in a program, from simple game physics all the way up to simulations of the MSL going though it's landing sequences. If you want to be a "bean counter", don't bother taking the extra math. If you want to be in game development, or code for NASA, or at any point attempt to model real world behaviors in your software (which is a fairly common trait in today's market), calculus is essential.

      Sure, you can rely on external libraries to do this kind of stuff for you, but that doesn't make you a better programmer, and it leaves you just as screwed when something isn't working properly and you don't know how to fix it, or when Bullet is too slow of a beast for your application and you can code a lighter, faster engine that does only what you need it to do. Learn what OpenGL matrices mean, and how rotations are really applied, and how OpenGL and your graphics card calculate the color of each pixel on your screen at up to 100 fps before giving up control of your software to simple function calls from a black box. It is well-worth the effort, I promise you.

      Discretely calculating an integral is known as numerical integration, and it is an extremely popular field of mathematics and programming. Look into Euler's Method, Verlet's Method, Runge-Kutta 4, Finite Difference Methods, and see how they are derived and applied. Then tell me you don't need math.

      That being said, I graduated 2 years ago as a Physics/CompSci double major with a minor in Math, and I am extremely biased because of this. THAT being said, my skills at mathematical programming are the only reason I have a good job right now, while 90% of my fellow graduates continue to live in basements and work at Apple stores.

    143. Re:Field dependent requirement by dzfoo · · Score: 1

      Dude, that's not programming changing the way you think. You're just an antisocial freak-o. I'll bet that, prior to being a programmer, you were just as clueless in social situations, just just didn't have a convenient sub-cultural stereotype to take comfort in.

      Sorry, but it's true. Being a programmer does not impair or impact your interpersonal skills, if you had any, that is.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
    144. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      "If you cannot do those things, I wouldn't call you a programmer, I'd call you a monkey."

      Okay, but how does the pay and potential for career advancement compare?

    145. Re:Field dependent requirement by gorzek · · Score: 1

      This is accurate per my experience, as well.

      I've done some game development on the side, and that requires more advanced math, but still nothing overly fancy--linear algebra and trig, that's about it.

      I've spent the last 10 years working on enterprise software, and the most complex math I've run into there involves multiplication and division. Some of it is very elaborate, mind you, but it's not really advanced math.

      That said, it takes a good background in mathematics (particularly set theory and boolean logic) to do good database design, something my peers seem absolutely awful at.

    146. Re:Field dependent requirement by Hotawa+Hawk-eye · · Score: 1

      I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      Calculus is a study of continuous mathematics. C, C++, and every (?) other programming language work on principles of discrete mathematics, which is why you can read all about strange calculations with floating point variables.

      Calculus is _one_ branch of mathematics. There are others, like numerical analysis, which deals in part with those "strange calculations with floating point variables." Take a look at the example in Wikipedia's article on loss of significance for an example of such an analysis.

    147. Re:Field dependent requirement by pkinetics · · Score: 4, Insightful

      I don't know if college calculus helped me be better at data analysis or not. But what I do know is I can see, spot, and recognize trends and anomalies in data.

      I know high school calculus did not teach me this.

      My belief is that the suffering through college calculus, has helped me build the toolsets to understanding the data, identifying the normal and outlier behaviors and then determining what are the probable causes and solutions.

    148. Re:Field dependent requirement by trydk · · Score: 1

      At university (much too many years ago), I did a program to perform symbolic math. It was written in Algol (should give you an idea of which millennium) and could optimise and present almost any formula in different ways, it could calculate the value of the formula given values for all variables and differentiate the given formulas, and even perform limited integration by applying a few strategies.

      I am afraid that the boxes of punched cards have been lost some years back and I am working (very slowly) on a new version using a more recent programming language, Perl.

    149. Re:Field dependent requirement by nine-times · · Score: 1

      How does your laptop computer calculate remaining battery life?

      How does your browser calculate remaining download time?

      Probably not the way you think. Progress bars on many processes are complete bunk. They're there to show you that something is happening, but there's not a good way to calculate many things accurately, and trying to be accurate uses more computing resources than is reasonable.

      I don't know the particular math they use to calculate battery life and download speed, but I'm betting there's no calculus involved. They're just sloppy guesses.

    150. Re:Field dependent requirement by geoskd · · Score: 1

      And with a good concept of math, you can get all those question, plus tell them there likely stock flow, better ways to organize inventory storage, and advance logistics regarding said inventory.

      And you can get close enough without anything more complicated than algebra. Lets say you spend 2 weeks doing a statistical analysis that improves your inventory management by 10% (10% reduction in orders for non-stock items). In most cases, this wont affect your bottom line at all, because in most industries, the cost of overstocking by 10% is fairly trivial. If you're operating your warehouse that close to 100% capacity, then you're likely growing anyway, and will soon need a new warehouse anyway. Any other time, adding 10% inventory to an existing warehouse costs almost nothing. Compare that to the $4000 you just spent in time doing a statistical analysis. Advanced logistics only really makes sense in certain circumstances. The rest of the time, its not worth the cost of doing the analysis. That's why so many industries can survive without complex logistics.

      -=Geoskd

      --
      I wish I had a good sig, but all the good ones are copyrighted
    151. Re:Field dependent requirement by ZygnuX · · Score: 1

      You are assuming that every battery has the same decay rate, and capacity, which is wrong. There is a lot of mathematics involved in estimating a battery charge, and it has its own name fancy name: State of Charge Estimation (SoC) and Remaining Useful Life estimation (RUL). For Li-Ion batteries, estimating the SoC involves having a model of the battery (which actually involves a lot of math), and a method for extrapolating the SoC based on a number of things: battery health, charge use profiles, etc. This is usually done by mathematical estimation and prognosis methods: Kalman Filtering (EKF, UKF) and Particle Filtering (AKA Monte Carlo) are two great approaches. You can't assume everything is constant and linear all the time, and you cannot assume that every battery is equal (not even same model/make batteries are equal in terms of charge and discharge).

    152. Re:Field dependent requirement by Bill,+Shooter+of+Bul · · Score: 1

      lame. I wrote my own calc routines in Fortran while doing the homework and studying for tests. The one guaranteed way to always see the possibilities of something is to do it yourself.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    153. Re:Field dependent requirement by Anonymous+Brave+Guy · · Score: 1

      I have a similar background, but I've also spent a fair chunk of my career working on mathematical modelling software of one kind or another.

      My conclusion is very simple: a moderate level of background maths knowledge is often useful for context, but if you're working on a software project that is fundamentally about doing serious maths then you're probably going to need a lot more understanding of your particular field(s) than any undergraduate maths degree would cover anyway.

      So for learning/training purposes, I think there's an argument for teaching a broad base of mathematics for context and to develop related reasoning skills that will be widely applicable in computing fields, but I don't see much merit in going beyond that unless you're going to take a particular field up to the level where it's useful for industrial practice, which is surely going to mean graduate study or professional training of one form or another.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    154. Re:Field dependent requirement by sydneyfong · · Score: 3

      Did I ever say that?

      With my 1000 samples, you have a lookup table of voltage to remaining capacity.

      Now, with that in mind, and this you can guesstimate the remaining battery time available.

      Or, tell me what superior higher maths calculus magic you're going to use. If you think battery draw in a computer can be approximated by a differentiable function, please never do it.

      --
      Don't quote me on this.
    155. Re:Field dependent requirement by ZygnuX · · Score: 1

      Working in the area of Li Ion battery state of charge estimation and prognosis, I promise we would all be baffled at how easily you can solve the problem with a LUT. You are completely ignoring the evolution of the battery, the ambient effects, the non linear nature of a battery, the regeneration effects, etc, which have a BIG impact. Kalman and Particle Filtering are used not for the laughs, but because they are necessary to have even a DECENT approximation of the remaining charge.

    156. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      It is not complicated their is 3 kinds of persones
      those with math ability, wont ask if they need high level math and will do high level math
      those who are unable/do not have the capabilities to do high level math (not to use harsh words ) will explain you that you dont need them without real arguments
      and those how are border line but will need a lot of effort to success and will ask if high level math is necessary.

      That's about it

      When you've done high math you use them, you find application for it, you have a better understanding of algorithm, code, optimisation, encryption, etc...

    157. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Yes the solution to differential equations are hard coded. Try looking WRF (www.wrf-model.org). WRF implements a form of the Navier-Stokes equation numerically, ie. solving a fourth-order non-linear partial differential equation. If you want to participate in the development of WRF then an applied math degree is assumed. Even if you just want to understand the output of WRF requires at least Calculus since the CFL criteria assumes a knowledge of differentiation.

    158. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Your advisor was jerking your chain or you are a troll

    159. Re:Field dependent requirement by Piotrecles · · Score: 1

      It really depends on the application. A class can only teach you the math needed to solve problems many people have encountered already. I do some programming for a gaming (gambling) lab, and sometimes you just run into weird stuff. I don't think you need to be a mathematician, but it's nice to be able to tell what kind of math you'll need to solve a given problem. Then you can usually look it up. Unfortunately, this only comes with breadth. The more math classes you take, the more likely you'll be able to recognize a good approach. I run into problems all the time where I don't know how to solve something, but at the back of my mind I remember some prof going on and on about something that at the time seemed useless but now all of a sudden seems critical.

    160. Re:Field dependent requirement by pianoman113 · · Score: 1, Funny

      The supply is higher then the demand for open jobs, so they give tough courses to limit the number of grads. (And degrees that don't weed-out students, like English, end up with a lot of degreed students working at Mickey D's.)

      I'll bet those English majors wouldn't have used "then" in place of "than." ;-)

      --

      Free as in speech, free as in beer, or free as in lunch?
    161. Re:Field dependent requirement by geoskd · · Score: 1

      How does your laptop computer calculate remaining battery life?

      It doesn't matter anyway because any precomputed equations will be quickly invalidated by battery use. Chaos has a much greater impact on the battery remaining than the variables knowable at design time. End result is that the signal to noise ratio is so low that the battery indicator bar is mostly useless for anything more accurate than +-20%.

      How does your browser calculate remaining download time?

      If you're Microsoft, you use fancy calc to figure it out. Everyone else uses simple algebra. End users cant tell the difference, but like all things M$, they have wasted just a little more compute time on worthless glitter

      How does your tablet distinguish between gestures?

      It creates a table of recorded gestures and compares it against successful interpretations to create a profile of gestures. This is done with a learning algorithm not calculus. If you're trying to do a statistical analysis, you're wasting your time. It would take a lot less time to write the learning algorithm, and spend a few hours "training" it than it would to try to do that with statistics.

      -=Geoskd

      --
      I wish I had a good sig, but all the good ones are copyrighted
    162. Re:Field dependent requirement by mcelrath · · Score: 1

      I hate to reply to my own post, but I got myself thinking...in the future there really will be only one kind of job. We've been slowly replaced by machines, robots, and algorithms. The era of 3d printing and personal manufacturing is coming. Once that is here, and the chaos of software we have now has settled down a bit, there will be no real labor or wire-plugging jobs available. I can see the analogous Slashdot question from 2032: "How much programming do I actually need? I already know how to use the Banking App, and the Driving Tool, the Shopping App, and I'm proficient with the Election App. So why would I want to know how to create any of those?" And the answer is that all jobs for which knowledge is not required have been replaced by machines or software. So kids, you've only got one real asset you'll be able to sell to an employer 20-50 years from now: it's in your head and the more you dump into it, the more valuable it will be. I seriously worry that our education is just creating human cogs for the Great Wheel. We will eventually have to transition to a world where creativity and divergent thinking are not only valuable, but the only employable skills (because computers still won't be able to do them). The way you do that is to have as much knowledge as possible, so you can draw connections among your knowledge. Outside of that one can also be an entrepreneur and creating new wheels, recruiting the necessary cogs. But the discussion that surrounds education is always one of how to make better cogs rather than how to make new kinds of wheels. Institutional education is an assembly line for cogs. The more you diverge from the requirements of your chosen cog-type, the more new connections you'll be able to make, and the more likely you'll be able to catapult over other cogs, or become a wheel-maker.

      The knowledge gained in unusual math courses is applied rarely, for most people. So rarely that many would (and do) argue it is not necessary. But where it is applied, it has a drastic, career-making impact, and you want to be the one who figures out where and when to apply which piece of math. Whether it's how to shorten the queue at your restaurant, keeping cars from colliding, decreasing the miles flown by an airline's planes, writing an accurate battery monitor, or figuring out when to buy a stock, there's one right answer and 1000 wrong answers that will be tried by those with insufficient knowledge of Math. The right answer will save a life or earn a fortune. The wrong answers may not lose life or lose fortunes, and someone might pay you to do a mediocre job, but I would not call that a very good measure of success.

      --
      1^2=1; (-1)^2=1; 1^2=(-1)^2; 1=-1; 1=0.
    163. Re:Field dependent requirement by Darinbob · · Score: 1

      You jobs will change over time. You never know what you'll need in the future. Calculus is important, even if you don't use it every day. Linear algebra (usually post-calculus) can be used a lot in many programs and is essential in many graphical programs. If you do any programming involving calculations you should know numerical analysis, number theory, set theory, etc.

      You will absolutely hae to udnerstand calculus in order to understand the sciences; you can't do physics without it, you can't design or understand circuits without it, and I dare say you will be hobbled even in many social sciences without it.

      Anytime someone says "I'll never need to know X" they will restrict themselves. Anyone who does not want to learn will have troubles somewhere in their life and career. If you avoid the sciences and engineering you will drastically limit yourself. And yes the field of programming is full of people who have clearly restricted themselves but they often either don't stand out amongst their peers or are focused in a very tiny arena.. Someone has to figure out what a program should be doing, and that will require knowing more than just how to program. People who just write programs after someone else has figured out the details are usually called "coders".

      And knowing math is much more than just learning the rote details. This stuff teaches you how to think clearly and logically and abstractly. Those are all vital programming skills. If you just want to be a coder and do entry level jobs all your life then just head to a technical school and be done with it. If you want to be the best you can be then you need to learn!

    164. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I work with data importing and I find myself doing fuzzy logic more and more often when working with messy data. Creating my own algorithms to solve issues tend to result in lots of math.

      I have an new algorithm that I need to tune the weights. Over 50 weights, each with 3,000-30,000 possible values per weight. Assume 3,000 per variable. (3,000)^50 is a large number. I will probably never find the best because I don't have enough Universe life times, but I will settle with "good". I need to create yet another program to find these values for me.

    165. Re:Field dependent requirement by uniquename72 · · Score: 2

      Even outside of programming, "conceptually" is where most of higher math matters. Being good at calculus means you've trained you brain to visualize and comprehend abstractions on top of abstractions.

      (On a related note: This is why mathematicians (and smart people in general) are so bad at politics: The relatively small segment of the population who can think deeply and critically about a number of tangentially related variables don't generally buy into bumper-sticker slogans.)

    166. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      It's a way to limit how many CSE degrees are granted. I was told this straight-up by my college advisor when I asked What's the point of having 30 freshman engineering students if only 2 survived to the end?

      If there were only 30 incoming freshman engineering students, that's a pretty good sign it wasn't a top tier academic program, if you get my drift. What you heard was your advisor's bitterness talking; nothing more.

    167. Re:Field dependent requirement by Darinbob · · Score: 1

      You learn this in calculus I would hope. Maybe not in a computer but you will learn how to do infinite sequences in numerical analysis, successive approximations, etc. Before digital computers people had to do this by hand, computers just speed it up.

      And forget APIs completely! Programming is not a process of taking magical libraries created by gnomes and attaching them together. Programmers actually write those libraries!

      A lot of times people do the match externally and then use the resulting formulas in the program. Programs that actually do the calculus themselves are more complex and do the derivations symbolicly , but you might want to look up macsyma or mathematica.

      Now if you've got a control system and it's not behaving as expected you may need to rederive the formulas to see if you've gotten them right. Or you head to the head engineers/scientists and sheepishly admit you don't know math and hope they'll help you out.

    168. Re:Field dependent requirement by Immerman · · Score: 1

      In fairness, a sliding frame average may well be more accurate than anything you could get using calculus, for the simple reason that you're operating within a chaotic system, and the best judge of consumption rate/download speed is likely to be somewhere between the current instantaneous rate and the average over the measurement lifetime. If the rate is currently increasing/decreasing in a predictable manner then sure, you could use calculus to get a much better projected total timeframe than any form of running average; however, in reality that projection will probably be far worse because you will almost certainly encounter confounding factors long before you approach completion.

      And in fact, if you use an the common exponential moving average ( avg(t) = s*currentValue + (1-s)*avg(t-1) ) then you have something that behaves very similar to a simple RC circuit - something often used to closely approximate integration or differentiation in physical electronics.

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    169. Re:Field dependent requirement by Darinbob · · Score: 1

      The naive programmer will just answer "a library does it for me".

    170. Re:Field dependent requirement by Em+Adespoton · · Score: 2

      1. In other words, calculus is necessary for computer science.

      2. For code monkey work, a good linguistics course and some courses on reasoning, logic and algorithms would suffice.

      3. For any architectural/analysis work, you need a firm grasp of discrete math and combinatorics (matrices, Big-O notation, etc) and a good foundation in statistical analysis (which itself requires at least a basic grasp of differentiation and integration -- calculus).

      So... if you're going to spend your career turning out iPhone apps using pre-existing models and engines, pick #2. If you're going to start as a code monkey with hopes of advancing a career in computer software, choose #3.

      If you want to get into actual computer science (the knowledge of electromechanical computing and how it works), you'll need the full shebang, as you'll be working on transforming information between analog (continuous) and digital (discrete) states. You'll also be aiming at a professorship, some research gig, or being woefully underworked and underpaid for your education until you've got enough hours in the trenches to make a good senior analyst or senior architect.

      That said, they had us doing engineering calculus and statistics for our CompSci degrees. I've found it great for building load-bearing structures and even for some physics modelling, but totally useless for anything actually computer-related. However, I took a biology statistics course for which I still have the textbook -- it has great statistical modelling methods that I use all the time designing complex computing structures (multiple databases, information I/O, etc). Discrete and combinatoric math I find I don't use regularly, but it shapes the way I think and every once in a while is indispensable.

    171. Re:Field dependent requirement by Darinbob · · Score: 3, Interesting

      A big example here may be in just using floating point arithmetic. Almost every programmer does this but I am astounded at how many don't really understand it or who do it wrong by naively assuming infinite precision. Not just programmers but I've seen actual scientists mess this stuff up.

    172. Re:Field dependent requirement by msauve · · Score: 2

      Except battery drain/charge doesn't follow a known curve, the future curve can't be accurately predicted (only based on assumptions), and computers operate in discrete steps. You're not dealing with infinitesimals or limits, and therefore not true calculus. More like, measure the current draw and voltage every x time, convert to energy (mAh or Joules), and add or subtract from the current battery charge level (coulomb counting). Reset to full or empty when appropriate. Similar in concept to integrals, but implemented discretely.

      Many batteries now have "fuel gauge" ICs in them, which handle much of this automatically, and even accommodate changes in battery capacity with temperature or age. Some may even use integrating capacitors to track energy movement in hardware.

      In any case, there's no direct use of calculus in software, just a similar concept.

      --
      "National Security is the chief cause of national insecurity." - Celine's First Law
    173. Re:Field dependent requirement by Darinbob · · Score: 1

      So what does the student want to do as a career? Be a "code monkey" or be a programmer and engineer? Too many programmers I think resign themselves to being merely code monkeys who just follow the instructions handed down by other people.

    174. Re:Field dependent requirement by Darinbob · · Score: 1

      I know a lot of DSP programmers who indeed do their own calculations to derive the formulas before converting those formulas to code. They work with the engineers and scientists. They also have to figure out how to take a forumula and make it efficient when implemented on a particular CPU, refactoring the formula to exploit concurrency, etc.

    175. Re:Field dependent requirement by avandesande · · Score: 5, Funny

      That's not true- one way is to plot your curve on the paper (a pencil will do), cut it along the line and weigh it.

      --
      love is just extroverted narcissism
    176. Re:Field dependent requirement by stanlyb · · Score: 2

      It is funny, but 10 years after my graduation i realized this:
      1.You need to have math skills to become good developer, but only as a way of thinking, not as a knowledge how to prove this or that theorem.
      2.When i finished my graduation, i wanted to do a lot of libraries solving this or that problem, but i lacked the necessary programming skills. Now, when i have enough programming skills to do it, i am lacking the necessary math skills, funny, ain't?
      3.Finally to summarize it, you could develop very good math APIs only if you are very good developer, but once you become very good developer, it is virtually impossible to study again math.......catch 22.

    177. Re:Field dependent requirement by Immerman · · Score: 5, Insightful

      Yeah, as technical fields go I'd say computer programming is actually one of the *least* mathematically intensive, any engineer or hard science researcher will need calculus far more than you. (Of course if you wish to work in any of those fields you'd better know calculus, your colleagues are unlikely to want to use algebraic baby-talk to communicate basic concepts with you, and frustration leads to hiring someone better qualified)

      I would say the biggest value of calculus to programmers is that it's an extension of the mathematical language, and allows you to simplify your thinking considerably. For comparison think of any arithmetic-based physics classes you took compared to any algebra-based physics classes - I'm willing to bet that (assuming you actually had a good understanding of algebra) the algebra-based physics course seemed a lot simpler and more consistent (or alternately covered far more complicated and broadly-applicable topics without being more difficult). If you were to then to learn calculus and take a calculus-based physics class the "simplicity factor" is even higher - rather than hundreds of special-purpose equations to keep track of there's only a dozen or so fundamental equations from which all others flow naturally. Sure, you probably memorize the ones you use frequently, but for the other 10,000 you can derive them from the fundamental equations at any time. More importantly an intuitive understanding of the interrelation of the formulas will allow you better understand the interaction of the physical processes which they describe.

      Discrete mathematics is likely to be far more useful to a rank-and-file programmer, but the catch is that mathematicians are unlikely to dumb down the class to teach it using only algebra when the more powerful language of calculus makes the basics easier to discuss as well as opening the door to more advanced concepts. Still, if you don't know calculus and have to opportunity to take a "Discrete math for programmers" or similar algebra-based course, go for it. Just be aware that you're getting a version of the subject similar to the programming coverage in a 100-level "programming for people who don't know where the on switch is" class. Immensely better than nothing, but...

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    178. Re:Field dependent requirement by Darinbob · · Score: 1

      What is happening I think is kids will see somebody who's rich who didn't finish college, and then assume they can be that guy too. They'll use words like "rock star", even recruiters are using that term now. They want the shortest route to success. What we don't have are a lot of kids who just want to learn stuff because learning is cool even if they won't use that in their jobs.

      In other words, these kids are not nerds! We've had this change in attitude that geeky is cool in the last decade or so but in reality none of this is really geeky/nerdy, it's just techie or a love of gadgets. A nerd wants to know things just for the joy of knowing things. Because computers have been ubiquitous and because programming them is a very viable career choice you get a lot of non-nerds who want into the field.

    179. Re:Field dependent requirement by kimvette · · Score: 1

      I just have the hardest time getting used to seeing people spell math with a "s" on the end of it...I only see it done here on slashdot...my eye is immediately drawn to it as a spelling error or typo.

      It is we Americans who misspell/mispronounce it.

      Chalk it up to our bastardiz^Hsing the English language here in America. We have standardiz^Hed the dumbing down of many words, ignoring the subtle colo(u)red inflection of various combinations of letters which is reflected in the correct British English, but not in our bastardised form of the language. We have Noah Webster (of Webster's Dictionary fame) to blame for that, because he felt it important to simplify spelling of words, rather than to clearly indicate proper pronounciation.

      In other words, Noah Webster exhibited modern Americans' laziness and bent toward the dumbing down of education a couple of centuries before everyone else, so he was a pioneer of sorts. ;) I'm only half joking here btw.

      --
      The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
    180. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Weelll.. there's plenty of use of math in programming.. understanding complexity and which algorithms to use, understanding how and why protocols work (and consequently complying with these) etc. require a good understanding of math. Otherwise you'll simply get code that looks like its been written by a high school student.

    181. Re:Field dependent requirement by Registered+Coward+v2 · · Score: 2

      As always the value of higher education isn't teaching you practical things that you can use today, it's teaching you how things work so you can use them in new ways tomorrow. I can understand frustration on this, we've all been there, and I do wish universities would spend a little more time on "practical" to augment the abstract and toss the liberal arts stuff which is useless for the intentions of 99% of people attending school.

      Interestingly enough, most people make the same arguement for basic math and science if they aren't in a technical major. The same arguement applies in botIh cases - those courses provide insights and knowledge about the greater world around you and help prepare you to function in it. Despite being an engineer stuff taught in liberal arts accounts for 80% of my income and my engineering background enables me to use it effectively.

      --
      I'm a consultant - I convert gibberish into cash-flow.
    182. Re:Field dependent requirement by xevioso · · Score: 1

      You folks are blasting this poor soul for misspelling orthogonal, but isn't the plural of math just math and not maths?

    183. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Don't forget cryptography, which is basically pure math through and through.

    184. Re:Field dependent requirement by Immerman · · Score: 1

      Indeed, though I would phrase it differently.

      Figure any idiot that can write and follow instructions can learn to hack together a program, or do whatever equivalent BS tasks are relevant to an entry-level position with other degrees. The real challenge is that to get beyond an entry-level position you need to be able to learn and apply all manner of domain-specific knowledge without the aid of a professor spelling it all out for you or handy objectively-graded homework by which you can measure your understanding. If you can hack it in an advanced physics class then you've got a chance in the real world, if not... well then your prospective employer would be better off hiring someone with a two-year degree because they'll work cheaper and you're unlikely to become an actual useful member of the team anyway.

      There's also the Renaissance factor to consider - even if you never use the specific skills you developed in that advanced physics course, every field has it's own strategies for approaching a problem, and those strategies *are* likely to be applicable in other disciplines. You may even find yourself occasionally reasoning by analogy to those topics, and for all the pitfalls of such "reasoning" it can be quite valuable when done cautiously.

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    185. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Xilinx or Altera?

    186. Re:Field dependent requirement by VortexCortex · · Score: 0

      And with a good concept of math, you can get all those question, plus tell them there likely stock flow, better ways to organize inventory storage, and advance logistics regarding said inventory.

      Ah, but can you write a grammatic analysis engine to identify improper use of 'their', 'there' and 'they're'?

      Apparently NOT!

    187. Re:Field dependent requirement by roman_mir · · Score: 1

      It's a way to limit how many CSE degrees are granted.

      - which is an artificial way to maintain monopoly, that's how unions work - prevent people from entering that work space.

      So instead of having more choices in the engineering and allowing the employers to choose from a wider range of offers, and instead of allowing the employers to employ more people at lower salaries, the students are pushed into stupid degrees and do end up serving burgers or pizza.

    188. Re:Field dependent requirement by Canazza · · Score: 1

      Hell even just drawing various types of chart requires maths knowledge. Not much mind, but it does. I work on alot of accounting software, so a knowledge of statistics is also useful (just a pity I don't have any :P)

      Maths came in useful for one piece of learning software that had the crazy requirement of scoring people based on the standard deviation of their answers. (ie, sort a list in order of importance, if the resultant list isn't exact, but good enough - the standard deviation beneath a threshold - mark it right)

      For anything from drawing tools to 3D worlds, I've had to use parametric equations in order to do various types of LERPing (ie xd = t(x2-x1)+x1) for camera tweens, fade effects etc.
      For various sketching apps I've had to employ line simplification on the input using catmull-rom splines.

      Then ofcourse there's physics, which obviously comes into play when you're making some kind of dynamic world, like a game or a simulation. Luckilly most things have a built in physics engine and all you have to worry about is feeding in the right values. Ofcourse, it helps if you can work out on paper the numbers beforehand.

      --
      It pays to be obvious, especially if you have a reputation for being subtle.
    189. Re:Field dependent requirement by systemeng · · Score: 1

      Actual scientists are the most likely to mess these kinds of stuff up. They often weren't trained in the nuances of calculation. I actually head a bunch of physicists at Los Alamos arguing about whether computer science was a science!

    190. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Bingo. I recently was tasked with finding a minimum bounding rectangle for an arbitrarily rotated ellipse in 2D. I worked out the (rather simple) 1st derivative of the parametric equation of an ellipse on paper and used the result in my code to find the minima/maxima.

      Of course, if you're just coding web UI's to databases, you may never have to touch higher math. But in my field (GIS and 3D visualization), it comes in handy quite often.

    191. Re:Field dependent requirement by icebike · · Score: 1

      Only if you intend to roll your own.

      Again, there are so many libraries out there (libcrypt) that most programmers never need to know anything about
      the underlying math to encrypt anything.

      Look, this is what I meant when I mentioned chest thumping. Everybody wants to pretend they are launching rockets or defeating the CIA, or engineering the next skyscraper. Yet people who get those jobs look at programming like programmers look at typing. A skill.

      Teaching cryptography to the programmer who will be writing your inventory system or your CRM system is ridiculous.
      Most programming jobs have nothing what so ever to do with any of these skills.

      --
      Sig Battery depleted. Reverting to safe mode.
    192. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Alright, how about global weather models? Fluid dynamics? Protein folding? Field tensor analysis for everything from power inductors to energy recovering braking systems to fusion modeling?...

      How the hell should I know, I just load this [distributed computing client] and press the "GO" button...

      And if you think I'm being flippant here, I'm not. I'm pointing out the entire reason we're even having this conversation. There should be little justification left to need to learn advanced mathematics. I see no reason in having all this computing power at our disposals if we're still having to whip out a whiteboard and solve math the long hard way. And as far as certain college degrees requiring it, it's pointless, and they know it. It's like owning a GPS, and finding that the DMV requires you to carry a paper map at all times. But when you look at it from a business perspective, those 20+ credit hours of "mandatory" mathematics is a considerable source of revenue, thus the real reason (greed) becomes readily apparent.

      Sorry for anyone teaching or looking to teach math, but it's a dying art, or at best an unnecessary one. And the only reason it is still being taught with the voracity it is today is because of those employed in this sector. And even they know the value-add is diminishing.

    193. Re:Field dependent requirement by grqb · · Score: 0

      Huh? You don't consider numerical methods that approximate integrals to be true calculus?
      This is true calculus. You don't need to know anything about the future voltage curve or current, just the past.

      This is the equation to calculate capacity consumed in a battery (which is a numerical approximation to an integral):

      capacity consumed = capacity at last check + (current + current at last check)/2*(present time - time at last check)

      The equation above is the trapezoidal rule (http://en.wikipedia.org/wiki/Trapezoidal_rule) applied to the integral in my first post.

      I hate to pull this one out, but trust me, I'm a battery scientist that makes mathematical models of batteries for a living.

    194. Re:Field dependent requirement by Archangel+Michael · · Score: 1

      liberal arts stuff which is useless for the intentions of 99% of people attending school.

      It is there to make you "well rounded". However the level of Liberal Arts stuff that is required is substantially more for the "math and science" crowd than the reverse is. I know people who go through 8 years of college and don't know how to math (sic) even simple things. Let alone know anything about science, or any other "hard" subject.

      Trying to talk science, math or technology to a Liberal Arts Major is really painful much of the time. But 50 Shades of Gray* is prime material for them.

      *Really Awful Fan Fiction

      --
      Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
    195. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      This is also only true where the integral or derivative in question has a closed form solution. There are lots of examples where this isn't the case and the integral has to be calculated numerically.

    196. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Samples will become invalid if the actual discharge curve becomes variable. The you'd need 10,000 samples, or a million samples, or a hundred million samples. Take for example the temperature. It doesn't affect the voltage linearly. Depending on the battery chemistry, discharging the battery at different rates will modify the discharge curve. So, yeah, there's a lot more advanced mathematics going on than just something you can sample.

      A good example of this is in an electric car. The discharge rates, temperature, and battery cell quality are all highly variable. Couple that with some simple math assumptions, and you get huge inaccuracies (It's a big problem in Nissan Leafs at the moment). It might have paid off for them to hire some mathematicians to help them design their battery estimation system.

    197. Re:Field dependent requirement by ShakaUVM · · Score: 1

      (Real life example, though details changed a bit.)

      Imagine coding a skiing simulator. You've got a 3D surface for your terrain, and you've written your collision code, and now you want to put gravity in. I was toying around with different ways of doing this, when I suddenly realized this was just a partial derivative from second-quarter calculus, and implemented it directly and immediately. Calculating the fall line (the line of fastest descent) was likewise trivial when I realized it was math that I'd already learned.

      I've calculated solvers for ODEs, needed trig (sines, cosines, etc.) all over the bloody place in my code, used matrix math more than my fair share (3D code is rife with it), and generally feel that I'd be a better programmer if I'd taken more math classes in college. I had two years of math as an undergraduate, and I still feel like it wasn't enough for my needs.

    198. Re:Field dependent requirement by war4peace · · Score: 1

      Time remaining indicator stuck at "10 seconds" for 5 minutes while MS Installer does God-Knows-What. Suspension of disbelief my ass...

      --
      ...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
    199. Re:Field dependent requirement by Macman408 · · Score: 2

      I'd disagree with that; most colleges don't really care how many degrees they hand out, in fact they try to get as many through as they can. What they do (usually) want, though, is to be respected; top schools attract top talent (both students and faculty), big grants, etc., which all help the school's growth. They don't succeed at that if they produce mediocre students. One way to get rid of the mediocre students (as well as some good ones) is to have hard classes that require you to prove that you can learn. In my college career, I took some classes that others probably would've considered "weed-out" classes (like Calc 3 and Physics), but they generally provided a good background for later classes (like Electrodynamics and Microelectronic Devices).

      After I graduated, they unified the different disciplines of Engineering so that you can take a prescribed freshman year of courses, without deciding which branch of Engineering you want to be in. This had the side effect of requiring Chemistry for us computer types, where it is perhaps less useful. However, I don't think it's outright a bad idea - I don't make transistors, I work with boolean logic. But without knowing how a transistor works, how it's made, how circuits behave, and lots of analog properties, I'd be a much worse engineer.

      The same thing applies to CS. A CS degree does not make you a good programmer. It teaches you a lot of things that will provide you a good background for your learning later in life, and a few things that are directly useful for programming like data structures and algorithms. It also teaches you about computer hardware, operating systems, etc.

      If all you want to be is a programmer, you can do that easily enough on your own. Just sit down and start studying your language(s) of choice. But trust me, you don't want to just be a programmer. Anybody can write code, it doesn't take long to learn how; for an example, see OP and millions of others doing it in high school. To be really good at it, you need to have the background so that you can go beyond just writing lines of code. You can develop a deeper understanding of what you need to do and why if you have the broad background that a degree can provide.

      That said, it's only what you make of it. I've recruited at college career fairs, and I'd say only a single-digit percentage of students (even at a school ranked in the top 10 in the field) have a good understanding of their field. So many students just go to class, memorize what they need to in order to get a decent GPA, then forget it. To get the most out of things, you need to develop connections between your classes, applying things that you learn in one to help your learning in another. To understand your Operating Systems class, you should know how a CPU works. To understand how a CPU works, you should know about digital logic. A good understanding of digital logic would include knowing about circuits. That circuits knowledge can be boosted by understanding the physics and chemistry behind it. Do you need to know chemistry to understand an OS? No. But it can be helpful in ways you might not imagine.

      That knowledge can make the difference between somebody that can make an incremental improvement to a design, and somebody that can understand the whole system and create a fundamental change to

    200. Re:Field dependent requirement by msauve · · Score: 1

      In a broad sense, being focused on change, it may be reasonable to call it calculus, but it doesn't involve the symbolic manipulation of formulae. I think most people associate "calculus" with the modern calculus of Newton/Liebniz.

      More to the point of the original question, a programmer need know nothing about calculus to intuitively understand keeping track of how much water is put into, or taken out of, a bucket.

      --
      "National Security is the chief cause of national insecurity." - Celine's First Law
    201. Re:Field dependent requirement by Vintermann · · Score: 1

      Well, there is one classic use for calculus relevant to programming that we even were taught in college: Using accelerometer data to infer/estimate positions.

      Signal processing of all sorts is heavy on calculus. Sure, you use numeric libraries, but you need to understand what you are doing. At least if you're writing the libraries. There's always a market for programmers who just use said libraries, but how fun is that?

      --
      xkcd is not in the sudoers file. This incident will be reported.
    202. Re:Field dependent requirement by Solandri · · Score: 1

      Taking away the obvious implication of "You don't program differential equations

      In my grad-level partial differential equations for engineers course at MIT, the prof told us up-front on the first day of class: "During your professional career, you will never have to use 99% of what you learn in this class. This course will be the first and last time you ever see these PDE solutions. But when you run into that 1%, you'll be thanking your lucky stars that you took this course."

    203. Re:Field dependent requirement by systemeng · · Score: 2

      I do chemical engineering research in my spare time. I actually had to use calculus a few weeks ago to derive an equation for making a mixture of 2 solvents as similar as possible to the properties of a third solvent. For two solvents, the answer was a calculus gimme.

      For three solvents, I had to break out multivariable calculus and Lagrange multipliers which didn't generate a solution but instead reduced the problem to a 4x4 matrix inversion. The inversion would have been most easily solved by feeding the matrix into the LAPACK library but a pedant could have solved it in his own code using Cramer's rule.

      In my case, calculus wasn't enough, it only reduced the problem to linear algebra. Basically, you have to have taken enough math to recognize when you have transformed a problem form an intractable form to a tractable form.

    204. Re:Field dependent requirement by Vintermann · · Score: 1

      it is not called lambda CALCULUS because it sounds fancy

      Well, strictly speaking no, but the word calculus in college classes refers to continuous mathematics. Calculus the undergraduate topic isn't what you should take to understand lambda calculus, the topic abstract algebra is (and the places you go from there).

      --
      xkcd is not in the sudoers file. This incident will be reported.
    205. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Words have meanings. "Differentiable function" does not imply an analytical function, and any polynomial (including linear) interpolation amongst your 1000 values is EXACTLY a differentiable function.

    206. Re:Field dependent requirement by Algae_94 · · Score: 1

      Didn't you learn the ways to approximate an Integral with a Riemann sum in Calculus? A sum of rectangles algorithm could be easily done in c++ or c#.

    207. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      When was the last time you believed your transfer files time in Windows?

      Last time I used rsync to transfer files in Windows.

    208. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      but that look up table does not cover for temperature variation and will not work over the life time of the battery unless the numbers are recalculated based on history.

    209. Re:Field dependent requirement by cryptizard · · Score: 1

      Its called lambda calculus because it is a model of calculating, it has almost nothing to do with the infinitesimal calculus that most people mean when they say "calculus".

    210. Re:Field dependent requirement by aminorex · · Score: 1

      The most interesting jobs involve stochastic calculus. Also, the most highly paid. You can't do stochastic algorithms property without a smattering of ergodic theory. You can't do machine learning without a good background in statistics and calculus and linear algebra. You can't do physical system simulation without differential equations. In future, quantum computation will replace classical for many tasks, and it is likely that software engineers for quantum computers will need a good grasp of banach spaces.

      Or you could code games and accounting programs. Me, I'd die of boredom.

      --
      -I like my women like I like my tea: green-
    211. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      It is we Americans who misspell/mispronounce it.

      It's not a misspelling, or a mispronunciation - it's the evolution of a spoken language over vastly separated geographical distances and time.

      You know, sort of like how British English today would sound NOTHING like "British English," of, say 400 years ago. Or, how "English" spoken in Northern England is different from the "English" spoken in London. Every region has its own dialect, those dialects change over time, and trying to pretend that there is one monolithic "proper English" spoken by everybody in England is both foolish, and incorrect.

      I know it's fashionable for the US to proclaim "we're not worthy to speak your glorious language, UK!" but this bullshit meme of "Americans don't speak properly" is fucking ridiculous. NOBODY speaks "proper" english, because there's no-such-fucking-thing. There's a host of dialects comprising "British English" just as there are a host of dialects comprising "American English." They are FAMILIES of languages, and they change over time. You'll win no points by sucking Britain's dick on slashdot, you'll just sound like a smug, self-aggrandizing twat.

    212. Re:Field dependent requirement by aminorex · · Score: 1

      Also, convex optimization is crucial for decision making applications.

      --
      -I like my women like I like my tea: green-
    213. Re:Field dependent requirement by yotto · · Score: 1

      How does your laptop computer calculate remaining battery life?

      Algebra.

      How does your browser calculate remaining download time?

      Algebra.

      How does your tablet distinguish between gestures?

      A large lookup table.

      "I'm an experienced automobile driver and I don't think that pistons and piston rings exist, because I have never seen them."

      I don't know what this has to do with anything mentioned here so will disregard it.

    214. Re:Field dependent requirement by chstwnd · · Score: 1

      in programming, integrals are calculated using the rough form of an integral. that is, the solution to an integral is the sum of f(x) dx. typically, you evaluate the function at x in a DO/WHILE/FOR loop in a function or subroutine and pass the value back to main to add to the previous delta value. since integrals are done over a range (or ranges, with double integrals), you just create a loop with the appropriate beginning and ending indices or the appropriate number of iterations and you only have to figure out how to code the equation once. programming in such a way is often done concurrently with studying beginning calculus. really once you understand limits, sums, and series, you're pretty much good to go. But you have to understand them first to know what they're telling you and, ultimately, what you're looking for. I can't speak for game programming exactly, since you can really arbitrarily define rules in any game world, but games are looking more and more like technical simulations with the incorporation of PhysX and Havok, and the more something in a 3D game responds the way you would expect it to in real life (like the trajectory of a bullet, including gravitational, wind effects, deceleration, elapsed time, etc.), the deeper the immersion. For that you need not just math, but physics with advanced math. for the record, fortran is much better for number crunching than C/C++. and use of float variables, even double precision ones, is not strange.

    215. Re:Field dependent requirement by Asmodae · · Score: 1

      Discrete time math, at least as it is useful to me, is the mathematical method of working on sampled signals.

      This should be useful to everyone. Don't we all know some stuck-up audiophile vinyl spinner that insists that they're somehow getting 'better/more/clearer' sound than CD's (or whatever their personal digital demon is). A little Nyquist and a boatload of calculus can put them in their place.

      Tongue-in-cheek reply aside (mostly), what I'm getting at is what others in this thread have already pointed out. The underlying hows and whys matter for far more than we give credit for and they require math. Some pretty advanced math at that.

    216. Re:Field dependent requirement by savuporo · · Score: 1

      How does your browser calculate remaining download time?

      Mine does it ok, but some people get approximately this experience:
      http://www.doobybrain.com/wp-content/uploads/2009/07/windows-time-dialog.jpg

      --
      http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
    217. Re:Field dependent requirement by hendrikboom · · Score: 1

      I've gone all the way up to calculus 3 (vectors, multi-dimensional functions, and doing differentials and integrals therein) and I've yet to see calculus applied by any programming. I am curious how one actually implements it though, in what (limited) programming I've done, I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      The field you need to study to get the answer to this in practice is called Numerical Analysis. The field you need to study to get the answer to this in theory is Constructive Mathematics, or Intuitionism (which has only a tangential philosophical connectino with anything a normal persono would call intuition).

      Numerical Analysis deals with how to get the answers in practical time and space and how to know how accurate the answers are.

      Constructivism (in math, not education) is the philosophy in which the only mathematical entities that are considered to exist are those which can be constructed/computed/decided, or something like that. For example, it excludes proof by contradiction.

      Is it typically library/api driven and you just feed an equation to those functions? Or do most programmers hardcode them?

      If you just use a library, chances are you won't know whether the functions you're dealing with have the kind of bad behaviour that makes the algorithms fail. That said, if you know enough numerical analysis, you'll probably know when to use which library algorithms.

    218. Re:Field dependent requirement by gnasher719 · · Score: 1

      For the download one, the calculation simply is, "How much of the download is done? How long did it take? Assume the rest will happen at the same rate and extrapolate."

      That's what iTunes does when you download multiple items. And it's bloody stupid. If you buy five songs, and it downloads up to three simultaneously, it assumes that each download on its own will run at a constant rate. But that is of course wrong once it is down to two songs, and then to one song, because the speed _per download_ increases. It also doesn't display any time for those songs that are still queued up. All this could be predicted much better.

    219. Re:Field dependent requirement by spike+hay · · Score: 1

      Maths=

      Mathematical
      Anti
      Telharsic
      Harfatum
      Septomin

      --
      If you don't understand any of my sayings, come to me in private and I shall take you in my German mouth.
    220. Re:Field dependent requirement by lennier · · Score: 1

      In other words, Noah Webster exhibited modern Americans' laziness and bent toward the dumbing down of education a couple of centuries before everyone else, so he was a pioneer of sorts.

      Indeed. If oenlee heed dun thu hol job and gon straet too foenetik speling like Jorj Bernid Shor laatir proepoes.

      --
      You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
    221. Re:Field dependent requirement by hairyfeet · · Score: 1

      The bigger question is this: Why are we trying to pretend its a century ago? There was a reason for having heavy math then, there is simply no reason other than a few specialized fields now. It'd be like giving students a half a dozen years of calligraphy classes while completely ignoring a good 80%+ of all our interaction is done now with keyboards.

      The simple fact is the computers do it better, after all when you come right down to it all computers are glorified number pushers. When you figure up the odds of the average person getting the math wrong VS the computer getting the math wrong it just seems stupid as hell to push for anything beyond the basic unless that student is gonna be going into a field where its required like physics.

      I just think we could be giving the kids more of an education if we began to specialize during HS. Have programming classes, business classes, and for those that truly wish to go into something where heavy math is required then they should have that option, probably at a magnet school where you can have teachers that can really give them some serious math education.

      Because as it is now we simply waste that time on kids that don't want it, won't use it in their careers, and will just do whatever it takes to get the class over with. Hell from what I've seen math is like sports in either you have a math brain or you don't, those that have it will pursue careers that let them use it, others will avoid it like the clap.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    222. Re:Field dependent requirement by spike+hay · · Score: 1

      Ah, the old linguistic superiority thing. English of $INSERT PAST TIME was the greatest flowering of human speech ever and represented the most precise and beautiful way to communicate.

      Actually, "color" was oringally spelled "color." The Brits changed it to "colour" in the 19th century, along with several other spellings to make it sound more French.

      England English has actually changed much more rapidly than American. You want to hear old 18th century English spoken today? Go to some of the more remote places in Appalachia. It's the closest. Not what your stereotype would have you believe, huh?

      --
      If you don't understand any of my sayings, come to me in private and I shall take you in my German mouth.
    223. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Even art degrees (and I literally mean drawing, not the Arts and Science umbrella) require calculus to be taken in high school, purely to limit the number of applicants who are admitted.

    224. Re:Field dependent requirement by igny · · Score: 1

      See GNU Scientific Library for examples.

      --
      In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
    225. Re:Field dependent requirement by Schlaegel · · Score: 1

      Please don't fall for the self-loathing. Many of the early differences in English were because British English continued to evolve while American English (and Noah Webster's dictionary) stayed closer to the British English at the time of the establishment of the American Colonies, so perhaps it was the British who were "dumbing down" many words. In reality, both American English and British English have continued to evolve.

      For a modern take on whether Americans misspell/mispronounce, check linguistic experts Patricia T. O'Conner and Stewart Kellerman.
      Why can’t the Americans learn to speak?
      ...or even
      Did the Bard speak American?

    226. Re:Field dependent requirement by igny · · Score: 1

      Stochastic Calculus is where Knight's programmers failed miserably not so long ago. That and understanding of difference between bids and asks.

      --
      In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
    227. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      You should look into numerical integration, specifically Gaussian quadrature. It converts the integral into a summation with a relatively small number of terms (usually 3-5), and works with well-behaved polynomial functions.

    228. Re:Field dependent requirement by lennier · · Score: 2, Funny

      I actually head a bunch of physicists at Los Alamos arguing about whether computer science was a science!

      Hmm, good question. A quick comparison:

      1. Can it sink a Pacific island?
      2. Can it invade alien planets with a fleet of space robots?
      3. Can it unleash hordes of zombies on the population of Earth?

      Well, our Google datacenters are still working on 1.
      Just done 2.
      But we've had 3 nailed for quite some time now.

      I'd say we're an emerging mad science with plenty of growth potential.

      --
      You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
    229. Re:Field dependent requirement by s.petry · · Score: 1

      Math is one of those things where if you don't know it, you can't see what it's for, and if you know it, you can't imagine a world without it. You can always argue you don't need knowledge, and if you're nothing but a device for turning food into poop then that's true, but those with knowledge will rule you.

      I would add to this statement the Liberal Arts. Rhetoric and Logic are also knowledge everyone should have. They are helpful in life all around., and not just your job. Critical thinking and communication are not strong subjects for most people graduating college.

      --

      -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

    230. Re:Field dependent requirement by readin · · Score: 1

      Really it comes down to this: you won't be solving any calculus problems as a programmer. What you'll gain are new ways of looking at problems and solutions, and a lot of practice on skills that you won't otherwise practice but that you'll want to understand at an intuitive level. The topics I learned in calculus, trig, and geometry have helped very little in the programming I've had to do. They have helped though. Some examples: 1. Any time I have to work with performance of a system, the concept of "Big Oh" is in my mind. The math is based on stuff I learned in Algebra I with maybe a smidgen of Algebra 2. But if I had stopped at those classes I would struggle. But having done calculus, physics, diffy Q, etc., I can do the Big Oh stuff almost intuitively. I can focus on the problem rather than taking time to figure out the math. 2. Concepts like independent variables - someone mentioned orthogonality - are helpful. You don't actually sit down and solve math equations, but you use the concepts to understand and write requirements. You use them to understand how to organize your code. 3. If you want to understand how the square root is calculated by your computer, you'll need some calculus. You probably won't need to know that, but knowing it might help you solve another problem because you can use similar ideas.

      --
      I often don't like the choices people make, but I like the fact that people make choices. That's why I'm a conservative.
    231. Re:Field dependent requirement by icebike · · Score: 1

      The box didn't say anything about Algebra. Just some new form of math called turbotax.

      --
      Sig Battery depleted. Reverting to safe mode.
    232. Re:Field dependent requirement by s.petry · · Score: 2

      Think about the larger scope of your statement. Media shows ignorance and drunken sluts as cool and functional members of society, and has for years. Gangsters are "cool" especially when they kill people, and dope dealers are an American success story (Hopefully you see the obvious sarcasm).

      I used to think this was all just unintentional jibberish to entertain the masses. Seeing the long term effects on society I am believing more and more that it's intentional degeneration of society. There is much more to think about regarding what I just stated. It's my hope that people notice and pass the word to hopefully make change.

      --

      -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

    233. Re:Field dependent requirement by BetterSense · · Score: 4, Interesting

      Parent should be modded informative, not funny. This is a known technique to calculate the area under experimental curves. I suppose the cool kids nowadays just use a software package that automatically calculates the area under an arbitrary curve, and I could write a program to do it in a couple minutes, but the scissor + balance method is a long and glorious tradition.

    234. Re:Field dependent requirement by yakovlev · · Score: 2

      Might you be hinting at the fact that the three-body problem is generally not integrable, and thus calculus does not provide a complete answer?

    235. Re:Field dependent requirement by SimonInOz · · Score: 1

      Sport is the same:

      UK: Maths and Sport
      US: Math and Sports

      Life is intriguing.

      Let's move on ...

      --
      "Cats like plain crisps"
    236. Re:Field dependent requirement by TapeCutter · · Score: 1

      Technically those physicists are correct. CS is a branch of mathematics, mathematics is not science.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    237. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Hello I am a phd electronic engineer so I use all the maths all the time even just relaxing around the house!

      But the reason we are taught maths is not to use the maths in everyday life but to change the structure of the brain to be rational.

    238. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I use some software for structural engineering that is using calculus (really differential equations) to solve mathematical models of structures. Of course, most of the heavy lifting is probably done by an engineer and given to the programmer and back-checked by both the original engineer and other engineers (a peer review) for a few simple cases to verify the accuracy of the solver.

    239. Re:Field dependent requirement by lennier · · Score: 1

      No one will pay for a piece of software that gives the wrong answer 1 out of 100 times.

      Oh if only that were true.

      Sadly the entire software industry seems to keep buying and producing software that constantly gives spectacularly wrong answers to questions like "hi, I'm a totally legit packet from the Nigerian Department of Stack Overflow Inspections! Let me in, I promise I won't touch anything I don't have access to!"

      --
      You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
    240. Re:Field dependent requirement by systemeng · · Score: 1

      It wasn't what they said but the aspersions in the way they said it that they made listening to them interesting. . .

    241. Re:Field dependent requirement by tolkienfan · · Score: 1

      When people refer to "calculus" without a qualifier it almost always means "differential and integral calculus". Lambda calculus is a different beast.

    242. Re:Field dependent requirement by DRAGONWEEZEL · · Score: 2

      To quote Winger: "She's only 17" You need math to know wether that's legal in your state or not.
      Seriously though....

      I'm a lowly IT Analyst. I dont' think of my team as the matrix enlightened, but more like a custom car shop. You bring in a vette, and we tune it into the vehicle that you need, and fix whatever rattles. Sometimes that means stretching it out and adding 2 more doors and some cargo space (recreating a cts-v?) Most often though, it's finding ways to minimize maintenance.

      Being one of 2 people on my team that understand stats / higher algebra, I can fake code my way through many of our team's issues just by using Excel and a few Vlookups & compound ifs to quickly get necessary stats on small to medium flatfile data sets in just a few minutes.

      I can prove to my manager how much work I'm doing in comparison to my peers by illustrationg ticket closure rates over time, as well as show a function predicting when our team will theoretically hit 0 counting for new tickets. I often find myself Illustrating how order of operations can affect outcomes in all kinds of situations, etc..

      Where I'm going with this....
      While I'm obviously no math Genius. Math has certainly helped me apply various degrees of logic to solve problems much quicker than my peers. My EMM (english major mgr) is actually an awesome boss, but frequently requires the logic to be presented in an "informal" way not just for her, but for our many customers. In order to do that most easily, you have to understand it! (or use a car analogy).

      In conclusion, I'm JUST an analyst, 2nd teir IT up from Desktop, not a DBA, not an unix admin, not an architect, not a coder... and yet I apply math all the time. I can only imagine how much better I could be at my job if I could have gotten through calculus after I discovered Ritalin! I don't believe I could do higher level postions (design / coding) without functional (pun intended) use of math above my current skill level.

      --
      How much is your data worth? Back it up now.
    243. Re:Field dependent requirement by TWX · · Score: 1

      I don't need no calculus! I just tell that math teacher that the only three-variable algebra letters I need are U, S, and A!

      --
      Do not look into laser with remaining eye.
    244. Re:Field dependent requirement by tdupu10000 · · Score: 1

      Many implementations can be found here: http://sagemath.org/ It's essentially a big mathematics library written in python

    245. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Advanced math is useless to 99.9% of people. However, the critical thinking and problem solving skills that are required to do advanced math are probably useful to everyone. If there were better ways to teach these skills we could throw math out. Until then, it a good filter on logical problem solving ability.

    246. Re:Field dependent requirement by Jeremiah+Cornelius · · Score: 1

      As If the posting were actually taking such a position of pompous self-importance - and not spoofing the use of mathematical and technical jargon to elevate status in meetings among engineers.

      --
      "Flyin' in just a sweet place,
      Never been known to fail..."
    247. Re:Field dependent requirement by Alex+Belits · · Score: 1

      But we've had 3 nailed for quite some time now.

      Politicians did it long before the dotcom boom and the birth of the 1990's VB programmer.

      --
      Contrary to the popular belief, there indeed is no God.
    248. Re:Field dependent requirement by Alex+Belits · · Score: 1

      However the level of Liberal Arts stuff that is required is substantially more for the "math and science" crowd than the reverse is. I know people who go through 8 years of college and don't know how to math (sic) even simple things.

      I disagree. For example, I have never heard of an engineer, scientist or any other educated person that could explain, WTF "postmodernism" is.

      --
      Contrary to the popular belief, there indeed is no God.
    249. Re:Field dependent requirement by Rophuine · · Score: 1

      In my field, good math skills mean the difference between running a million iterations at the cost of many hours of computing time, or doing some stochastic calculus and producing a (better) result in seconds. In a past job, it meant the difference between designing a naive algorithm to spot simple patterns in usage data, or doing some fancy math and coming up with actually useful metrics. In another job, it meant the difference between not understanding what the accountant client was trying to explain and having numerous testing iterations before coming up with something that (hopefully) met requirements, and actually following the math and ensuring my algorithms matched the scenarios we were modelling.

      In my experience, good math skills have been the difference between being a relatively unproductive base-wage coder and being an innovator with a reputation for really great work - and it also means that someone else gets stuck with shuffling data while I get to work on interesting problems and learn lots about different subject domains. I've gotten to work on anti-money-laundering systems and on weather and pollution modelling - gotten company time to do my own research, and been sent to training programs and conferences (often at swanky hotels!)

      In summary, learn math.

    250. Re:Field dependent requirement by Rophuine · · Score: 1

      Oh, to actually address the parent:

      The bulk of programming jobs have nothing at all to do with math beyond the high school level.
      Its mostly counting beans and keeping records. Really, it is.

      You're right. So, if you want a bulk job counting beans and keeping records, don't learn math. If you want a cool career with lots of interesting stuff, get good at math.

    251. Re:Field dependent requirement by TapeCutter · · Score: 1

      Numerical analysis is where computers shine. Basically NA is used in most real world situations because mathematicians are still looking for the general solution. Another term for NA is "simulation". For a fundamental example, there is no analytical solution to calculate the area under a normal distribution curve. The distinction between analytical and numeric was a lot more obvious when I went to school in the 70's, we used 'log tables' to find common NA solutions, a pocket calculator does the same thing but the look up tables are hidden from view and the look-ups are performed a dozen or so orders of magnitude faster.

      In the real universe the things that can be solved analytically are vastly outnumbered by those things that can only be approximately solved numerically. Of course one of the primary reasons computers have proven to be so useful is that they can perform accurate, large scale NA calculations far in excess of what some hairless monkeys can do with pen and paper. Most of this maths was already there prior to computers, what computers have given us is a massive increase in our ability to "crunch numbers", this has allowed us to explore and model reality in much finer detail, which in turn has revolutionized engineering and led to countless scientific discoveries and a global redeployment of a large chunk of the available workforce, all within my lifetime.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    252. Re:Field dependent requirement by DesScorp · · Score: 1

      Math = USA usage

      Maths = UK usage

      Der.: MathematicS

      I understand that the Brits say it differently, but it annoys me to no end when Americans do, because from American mouths, it just sounds pretentious.

      --
      Life is hard, and the world is cruel
    253. Re:Field dependent requirement by icebike · · Score: 1

      And with a good concept of math, you can get all those question, plus tell them there likely stock flow, better ways to organize inventory storage, and advance logistics regarding said inventory.

      But the question would already be answered by Betty in the shipping department by looking up current inventory in the stock management system written
      by the business major with no significant math skills beyond double entry book keeping.

      And all this would happen before the math major exdigitated and stopped pontificating in the board room.

      This is not a complex question. It doesn't require a thesis.

      --
      Sig Battery depleted. Reverting to safe mode.
    254. Re:Field dependent requirement by diamondmagic · · Score: 1

      Earth to programmer: A good number of mathematical formulae cannot be symbolically integrated, but nonetheless can be numerically integrated. That's why we have the error function and a lot of other functions/operators.

      Take limits:

      lim_x->0 sin(x)/x = 1

      This fundamentally means "We can make the value of sin(x)/x get as close as we like to 1 by making the value of x as close as necessary to 0."

      How do we calculate the square root? We can't perfectly represent sqrt(2) as a number, it's impossible. Nonetheless, we use methods from calculus to derive approximations that are as precise as we need.

      The fast inverse square root function? It's the first couple of iterations of Newton's method.

      Integrals are no different. If the result of your integral contains a trig function, log function, fractional exponentiation, or any non-binary, then if you want to calculate the value, you're necessarily going to have to approximate.

      And likewise, integration is fundamentally just fancy multiplication.

      All symbolic integration is, is the realization that as the number of steps in our integration approaches infinity, sometimes the result approaches the result of a certain operator, and so we reduce the integral to a more elementary operator. Same thing for differentiation. The integral is defined as a limit, remember. That sometimes it doesn't produce a result with elementary terms doesn't make the math any less calculus-y.

    255. Re:Field dependent requirement by Thangodin · · Score: 1

      If you want a chance at anything to do with game development, graphics, visualization, AI, physics, etc., it's all math, all the time! So too with efficiency of algorithms, which will come up in an advanced job interview with any of the major companies (Google, IBM, Microsoft, Apple, etc.) I have never gotten rid of my university math textbooks, because I have to refer to them a lot. If you actually want to do anything creative (which is what you will have to do to go beyond standard business software) you will have to break those equations up and and understand how they work.

    256. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      "I'm an experienced automobile driver. Like any automobile driver, before I got certified as such I had to spend a few months in a metalworking shop learning how to make pistons and piston rings - I mean as if a license would be worth the paper/plastic it was printed on if you didn't have to at least learn how to make car parts"

      Sometimes the broad strokes are enough. Sure some drivers will want to tinker with their cars and obviously will need to know whats what under the hood - but most people on the road care nothing about that side of things as long as the damn thing starts when they turn the key. Its a good thing not to have to deal with the speedhump of amassing not neccessarily (or even likely) useful information before being recognized as having a certain amount of knowledge relevant to a specific field/skill.

    257. Re:Field dependent requirement by cayenne8 · · Score: 1

      UK: Maths and Sport

      US: Math and Sports

      But that makes sense to me...there are multiple sports out there...but one math. I mean, they're not going to be inventing anymore numbers or operations on them anytime soon, but there are tons of different sports out there...

      --
      Light travels faster than sound. This is why some people appear bright until you hear them speak.........
    258. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      That's not true- one way is to plot your curve on the paper (a pencil will do), cut it along the line and weigh it.

      Assuming, of course, that your paper is of uniform mass density.

    259. Re:Field dependent requirement by Daniel+Dvorkin · · Score: 1

      And if you don't know calculus, you'll have a hell of a time understanding numerical analysis.

      That's why calculus is, like it or not, the foundation course for studying math beyond the introductory level. Not so much for its own sake, but because it crops up in so many other branches of mathematics--including a whole bunch of computer science, as it iturns out.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    260. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      To be honest the more math you know the better off you will be.

      In computer sciences you need math for these areas.
      3D rendering - Requires Linear algebra, and maybe a bit of Vector calculus. (can be hacked together with Trigonometry but may not run as well.)
      Find the area or mass of an object - Simple algebra for basic shapes, but requires Calculus 3 for more complex shapes. (can also help with finding the center of balance)
      Compute trajectory for a launched object - requires at least Calculus 1. (recommended Calculus 2)
      Compute square root (in language that doesn't support it in the libraries) - At least Calculus 1.
      Find terminal velocity of a falling object - at least Calculus 1. (easier with Differential equations)
      Find out how far away an object if from you - Trigonometry.
      Figure out the probability of winning the lottery - Discrete mathematics.
      Figure out which memory block you are writing to - Boolean algebra.

      Understand what that Electrical engineer, Mechanical engineer, or Civil engineer is trying to tell you to write - may require a math minor.

      The thing is that these 1% as you put it are the highest paying areas. If you just wanted to do basic programming then, you could probably get away without much math. But then there really isn't any reason to get a Compute sciences degree. Just take a class in the language you want to program in and your set. Computer scientists are interested in creating the latest, and start of the art software. We research the best data structures for storing our data, we learn how to interface with any hardware/software we need to. Computer scientists are not supposed to be your average programmer, we are meant to be a cut above the rest. Able to do anything we are required to do. And this can be anything from a simple accounting program, to a highly secure medical records database, to a 3D model of a city subway system that is used to prevent flooding during the rainy season.

      Sure you can get by without much math, but doing that will just make you less valuable as a programmer.

    261. Re:Field dependent requirement by colsandurz45 · · Score: 1

      How does Windows calculate how much time is left on your file copy?

    262. Re:Field dependent requirement by DarwinSurvivor · · Score: 1

      Exactly. To be a successful software developer, you need to be proficient in at least TWO things. Software development, and whatever field you are writing software for. If you are writing tax software and don't tax brackets, income tax, deductions, etc, then you are NOT going to succeed. The same goes for understanding shipping/receiving to write inventory software, understanding physics to write a game engine, understanding wood grain and densities to write lumber-cutting algorithms, etc. If you only know how to write software, you're not going to become very successful as a software engineer.

    263. Re:Field dependent requirement by SimonInOz · · Score: 4, Insightful

      Mathematics (does anyone say mathematic? No - thought not) is a large collection of subjects: geometry, trigonometry, algebra, statistics ...
      Sport is a large collection of disciplines: football, rowing, ice-skating, ten pin bowling ...

      Language usage is not logical, nor consistent. Certainly the difference between British English and American is not consistent, nor even sane. It's a collection of pretty random changes, some the result of mistakes, some of changes in opinion (color -> colour), changes of usage (gotten is almost never used in the UK).

      I admit a favourite is Aluminium vs Aluminum. Now that was just a plain old battle, which both sides being a pain in the neck. (And as for the gallon/US gallon thing, I mean really! Let's all get over it and use litres).

      But why should I care, I live in neither country? I live in Australia (land of silver medals, apparently) where we just mix them all up and do what the heck we like.

      Mind you, I do feel there is a strong argument for claiming the English should be the reference for speaking - English.

      --
      "Cats like plain crisps"
    264. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Battery State of Charge by Voltage has been out of use for a Decade or more. I was OK for Ni-cads, But Not for Ni-Mh or Li-Ion.
      After that it was straight Coulomb counting, with some math to compensate for temp cycle life, ect.
      Now there is Impedance tracking. Math? who knows it is a secret.

    265. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      if your code has ever accumulated the value of a variable over time you've calculated an integral...

    266. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Where is discrete math taught in the language of calculus? Math does have some surprising cross-links between sub-disciplines - differential equations can be used to approximate difference equations, and that the sum of 1/n^2 = pi^2/6 can best be demonstrated using complex analysis for examples, but algebraic techniques are more common (matrix representations are often handy here).

      Calculus is generally taught first in part because there is a 4-6 semester sequence to finish analysis by senior year of a BS degree (Calc I-III, Real Analysis, Complex Analysis, possibly Real Analysis II), whereas discrete is often used as the gateway "proofs" course prerequisite for upper level courses or a prerequisite for combinatorics and/or graph theory, hence it makes more sense to have students start there and save discrete for a sophomore level class. Similar criteria apply for service students - Science and Engineering require several semesters of calculus to open up a lot of later courses and so push calculus as the first course.

      I think the OP might find this article very informative about the distinction:

    267. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Icebike is absolutely right. I would go so far as to say 99% of jobs don't require anything beyond simple arithmetic. Unless you can get a job in graphics/gaming, R&D, or some kind of specialized science field. Even in that last case the math comes from the field your designing software for and not from being a programmer. Many times in these cases someone from that field is available to help with those kinds of calculations.

      Personally I have only used a small amount of Algebra, Geometry, and Statistics eventhough I've studied all the way to Calc 3 and linear algebra. (by small amount I mean I've done it once)

      If you're interested in how one would calculate integrals and other advanced functions, you might want to look into scientific computing. I remember learning that stuff but have long since forgot how it is done.

    268. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I agree with this, math requirements are often used as filter courses, if not for CSE then certainly for pre-med students who are all forced into calculus. However, if you want to be a programmer, you need to understand difficult and very abstract concepts. Calculus and most higher math is basically 'boot camp' for difficult and abstract thinking. It's not universal, but most people who can't handle the math will also be weak programmers. So yes, it's a filter, because it gives employers and grad schools a way to tell if someone is weak in abstract thinking (or maybe just work ethic).

    269. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      It can be valuable to remember that the value of maths/stats may also be beyond your initial career planning too.
      My first degree was a computer science one, which I used for a few years before applying programmatic approaches to traditionally manual research processes. Fast forward a few years and I am now an in-demand research scientist working on optimised natural resource management.

      This is not because I am an exceptional environmental scientist, but because I am an ok one, with an ability to automate and replicate many analysis tasks that have traditionally been laborious manual ones through better data structure design, data extraction methods, and automating the analysis.

      An analysis process that normally takes a couple of weeks, I took a month to do the first time, and now can perform in two days each subsequent time. Apply the synergistic benefit of programming with other fields where they are not used to it and your value can grow significantly.

    270. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      You beat me to it.

      Most business programming doesn't use any math more complicated than arithmetic. That said, my experience is that the less mathematically minded someone is, the worse they are at programming.

    271. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Are you Zed Shaw?

    272. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      It's also mathematics in the US when the speaker didn't just say math.

    273. Re:Field dependent requirement by CFTM · · Score: 3, Insightful

      Liberal arts is not useless.

      Math is a beautiful thing, it helps us explain the world.

      So does philosophy.

      History teaches us about our past, inspires and frightens us.

      The liberal arts are a vital part of holistic education. Math and science are wonderful tools in a holistic education, but so are the liberal arts.

      It helps cultivate creativity and teaches people how to examine things from different perspectives, essential tools that augment the search for deeper scientific knowledge.

      Need them both; otherwise what are you doing with your ride on the merry-go-round?

    274. Re:Field dependent requirement by Anonymous Coward · · Score: 1

      Math has always sounded like someone from an asian background telling me how much something is. 2 dollar. 99cent
      Its Maths, because the full version is Mathematics. Just like Physics isnt called Physic
      Bloody hell you US'ians are weird.

    275. Re:Field dependent requirement by Immerman · · Score: 1

      Ah yes, discrete math - aka intro to graph theory and proof writing. I have fond memories of that class - I'd write you the proof that fond = hideous, except that I proceeded to take those truly baleful upper-level math courses which made the proofs in discrete math look positively recreational.

      It's been a while, but I seem to remember the instructor using calculus to clarify and extend points, mostly by analogy - not a *major* usage, but enough that not knowing calc would likely have made the class really ugly instead of mildly entertaining - and that was taking it with one of the CS professors. I suppose I'm assuming that had I taken it with a Math professor the calculus would have been laid on thicker, but then again maybe she just liked it.

      Yeah, I wish I had realized the distinction sooner - in my experience outside of academia programmer ~= technician, or at best engineer - whereas most of the interesting stuff is done by the real scientists.

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    276. Re:Field dependent requirement by SunTzuWarmaster · · Score: 1

      If only there were some way to transform a discrete-represented signal in to a continuous-represented signal... http://en.wikipedia.org/wiki/Bilinear_transform

      ----------------------rather than just being snarky, I will answer the topic question----------------------

      I got my BS in Electrical Engineering, and my MS in Computer Engineering.

      I learned how to build bridges, how transistors operate, how to build a laser from spare atoms, how to interpret signals (hardware and software), how to program in ASM/C/C++, how to maintain network uptime, how to write a program which learns, and many other things. Some of these use advanced math, some of them do not. If you want to be a good programmer, you will recognize that the good programmers are frequently the ones with good math skills.

      I am in a semi-management, semi-worker role. I use calculus a couple times a week if I am lucky, and trigonometry in practically every program I've written. However, I would not have been able to fully understand laser operation without at least differential equations. AI programs have required a staggering variety of discrete mathematics (that probably don't need calculus).

      As an CS intern, I used almost no mathematics (and more screwdrivers). However, I worked with sonar software, and the people who understood how sonar operated (differential equations) were the people who were in lead technical roles. Their understanding of mathematics/sonar lead directly to higher pay, more flexible hours, increased responsibility, and job security. The skilled person with knowledge is frequently the last to be laid off, and the first to be moved out of a sinking ship.

      To use a car analogy:
      "Do I have to know how a transmission works in order to change it out?" "No. But it helps. And it is not likely that you will become a Master Mechanic without understanding it."
      "Do I have to know math in order to program?" "No. But it helps. And you are unlikely to become a Lead Engineer without understanding it."

    277. Re:Field dependent requirement by SlashDev · · Score: 1

      Oh boy. The difference between programming with Math and without it is huge, first off many programmer write elaborate lines of codes that can be replaced with a single like of "math well spent". A very simple example of the Modulus function which I'm not going to explain, I've seen 10 lines code that mimics the modulus function, why, because the programmer is math-illiterate, other functions such as divisions or more complex can be easily achieved by binary math, the same goes with trigonometry, and more important calculus differential equations and statistics-related functions. Those who say math isn't need in programing don't know what they are missing, it's like saying multiplication is not needed, unless you are writing "hello world" code all day long.

      --

      TOP DSLR Cameras Reviews of the top DSLRs
    278. Re:Field dependent requirement by synthespian · · Score: 1

      ...Except that to do a lot "discrete" stuff, you're gonna need your Calculus foundation - that's why it's a foundation course!

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    279. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I am curious how one actually implements it though, in what (limited) programming I've done, I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      Electrical engineering student-Every time I program anything with programming, math is involved. Digital filters (for sensors and stuff sampled digitally) use differential equations expressed in discrete math. you basically can't use electronics today without interacting with this stuff.

      To integrate data you perform a summation over the range you want. Super simple stuff ;)

    280. Re:Field dependent requirement by Altrag · · Score: 1

      Random number generator, apparently.

    281. Re:Field dependent requirement by Lemmy+Caution · · Score: 1

      http://www.chelseaphysicgarden.co.uk/

      "Physic" is older than "physics." A lot of British usage is actually more recent in origin than the American. The "s" added to "math" may be later in origin, though I can't find an authoritative statement one way or another.

    282. Re:Field dependent requirement by Archangel+Michael · · Score: 3, Insightful

      I've never had a Liberal Arts Major explain it either. I've never heard anyone explain it. You know why? Because it doesn't really mean anything specifically.

      From "Wikipedia"

      Postmodernism is a general and wide-ranging term which is applied to many disciplines, including literature, art, economics, philosophy, architecture, fiction, and literary criticism.

      Thanks Wikipedia, I think you proved my point. "General and Wide Ranging" ... meaning ... whatever.

      --
      Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
    283. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      if you've ever accumulated the value of a variable over time then you've calculated an integral...

    284. Re:Field dependent requirement by Immerman · · Score: 1

      Examples please - I'm sure some calculus was used to simplify explanations when I took the class, but I've forgotten most of the details. As I remember DM was primarily concerned with logic, graph theory, and other such stuff. A gentle intro to boolean algebra, and a mountain of proof-writing. The sort of stuff I can see calculus being to explain in terms of analogy and general principles, but little direct application (similar to basic statistics in that regard). Most of the stuff where calculus would be more directly applicable was in time-discrete (or "sampled") domains, but I'm pretty sure none of that was covered in DM.

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    285. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      That sounds like a cop-out answer by an adviser that isn't in your field of interest.
       
      My advisor put it differently. There are two types of jobs after completing a technical degree: engineer and technician. An engineer will end up using advanced mathematics for creation and analysis of new designs, and the technician will use a subset of mathematics to keep the designs running. A school has to train people to the highest grade of engineer; no one likes mediocrity.

    286. Re:Field dependent requirement by KlomDark · · Score: 1

      Wow, I really liked that link about Lambda Calculus! While I have used Lambdas and Anonymous Methods heavily in C#, I never knew there was a formal science devoted to it.

      It was cool for me, as both a GED student and a lead developer, to read something on an advanced math subject and fully understand it. However, for the same reason I am a relatively advanced programmer (Business, nothing cool like videogames) I would never have learned it from that article - what an atrocious syntax! Why is so hard to describe something so easy?

    287. Re:Field dependent requirement by ChrisMaple · · Score: 1

      Except when the situation demands a more sophisticated approach, simple numerical integration suffices. Straightforward in any mainstream language.

      --
      Contribute to civilization: ari.aynrand.org/donate
    288. Re:Field dependent requirement by smart_ass · · Score: 1

      Or more generally ...

      Any programming related to simulating real-life scenarios often involves higher math. I wanted to write a simulator for curling (go ahead make fun of me ... my friends do) ... The actual forces involved governing a spinning rock sliding down bumpy ice are VERY complex before you even get to the collisions.

      So ... if you are doing DB programming or non-game web programming, you may be able to avoid math, but if you are trying to simulate any real life situations, count on requiring a little more math.

      --
      Ouch ... did I just say that.
    289. Re:Field dependent requirement by Nemyst · · Score: 2

      Google fast Fourier transforms, or FFT for short. Very particular implementation of the discrete Fourier transform, which itself derives from the continuous Fourier transform, which is an integral.

      Also, big-O notation, at its core, can be defined by a limit. That's calculus right there. Sure, most programmers don't actually calculate the upper bound on their code, but if you don't understand what big-O even means, you can't understand why O(n lg n) is better than O(n^2), which means you don't see why heapsort beats bubble sort... You could also just try to memorize that O(something) is better when "something" is lower, but that's a band-aid, and on top of that without calculus you don't have the same kind of intuition with how functions behave. 2^n is ridiculously worse than n^2, yet if you don't know that and don't understand why, just plugging the first few numbers won't actually tell you that.

      There are many many more examples, but honestly the most powerful reason for all of this (and perhaps more) is that it improves your problem solving skills. You could ask "why not just make problem solving courses then?", but you can't "solve problems" in a vacuum. You need actual problems to solve, and maths just happens to have a huge body of problems, from easy to nigh impossible, right there for you to solve, and as a bonus there is a possibility you get to use those later on! Many of my physics teachers, when asked why we have to study obscure and extremely specific things in undergrad courses, simply say that it familiarizes you with physics all while making you good at solving problems, more so problems similar to those.

    290. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Well set. Learning mathematical skills and tools will be useful when you least expect them. Suppose you have lost your programming job, but a new job comes along which involves extensive mathematical modelling and then programming the ideas, you will be disqualified. A generalised learning is not specific job related, rather gives you a broad spectrum of related ideas all can be eventually connected to some complex mathematical model. All great inventions had been implemented only after a mathematical model version had been constructed. Unfortunately, we do not teach mathematics to think, rather just pass some examination and get a diploma.

    291. Re:Field dependent requirement by CycleMan · · Score: 1

      My belief is that the suffering through college calculus, has helped me build the toolsets to understanding the data, identifying the normal and outlier behaviors and then determining what are the probable causes and solutions.

      Interesting indeed. College calculus has trained you in statistics.

      This is not a dig at you -- I just find this connexion of input and output fascinating, and wonder how common it is.

    292. Re:Field dependent requirement by HapSlappy_2222 · · Score: 1

      You know, I truly, honestly, un-ironically, and sadly have no idea if I was or not. Had I taken advanced calculus, we could have had a more intelligent conversation about this topic, instead of one of us looking and feeling very, very foolish (hint: it's not you).

      So, avoid my mistake! Take advanced math, fer cryin out loud! I've already filled the dumb country bumpkin role; get yer own skillset.

    293. Re:Field dependent requirement by inKubus · · Score: 1

      I agree with your post and I want to add some comments. I think the applied calculus such as that used in economics (Lagrange multipliers, etc.) are far more useful to the majority of programmers (or anyone, really) in a business setting than the applied calculus such as that used in physics. Even if they are almost the same (or are the same) mathematically, it's the linking of the math to the real world to do practical problem solving that is useful in business. Unfortunately, the need for calculation of physics is fairly limited these days, with most of that constrained to the gaming programmers. Rather than attempt to describe the physical world, as physics does, economics is more concerned with social problems such as resource allocation and the like. Say what you will about the dismal science but we ALL buy things, use money, and pretty much live our lives in the pursuit and consumption of resources. Very few of us (although at Slashdot this is less true than in most circles) need to calculate electrical fields or magnetism or orbits or oscillators, nor would being able to understand those phenomena have any real impact on our lives.

      That being said, I hold the great physicists of our time and time past up for their often pioneering practical applications of mathematical theory, proving they have worth in the most tangible ways. Their efforts have blazed the trail for other disciplines to use advanced mathematics to attempt to further describe our environment. But I think physics (the what) is pretty much done and we have to start looking at relationships and resource needs to further advance society (the why), and the calculus is just as useful there. Of course at the end of the day our brains are chemical machines subject to the laws of physics but I'm assuming it'll be quite a while before we need to take human behavior all the way back to the physical realm and get a value equal to what we could get from a more economic and systemic analysis.

      --
      Cool! Amazing Toys.
    294. Re:Field dependent requirement by vux984 · · Score: 1

      This kind of programming constitutes about 1% of the available jobs and 98% of the chest thumping on slashdot.

      Haha, yeah! I work with contact lens design software, and I've written a couple applications to design rigid gas permeable (RGP) lenses for fairly advanced scenarios (eyes with lasik scarring, diseases, extreme near/farsightedness, etc...) and the applications... yup there's a few thousand lines of mathematics... optics, ray tracing, geometry, etc. Fun.

      And yup even here 99% of the actual code is wizards, input validation/error handling, menu, user prefrerences, data import/export, etc. "Counting beans and keeping records".

    295. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Well, you need to dig a little deeper, since the curve wouldn't have two inflections points (not sure how you say that, means that the third derivative changes sign) without a point of zero slope between them. But still, you could maybe get closer to the actual numbers than with a linear approximation, underlining the point of the above poster.

    296. Re:Field dependent requirement by Lando · · Score: 1

      5) Remember the "normal" programmers are getting paid little to work a lot. The rockstars/architects of the system still get paid very well.

      Granted maybe not at EA but plenty of other places.

      --
      /* TODO: Spawn child process, interest child in technology, have child write a new sig */
    297. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Take a course on numerical analysis. And analysis. And differential equations. And control theory. Uh, I just went ballistic.
      Start with the power series, which you had already during the calculus.

    298. Re:Field dependent requirement by 91degrees · · Score: 1

      Even in gaming, there's only a small amount mathematics involved. You need an understanding of matrix mathematics, and how it applies to transformations, but the rest of it can be considered coding tricks. For example, a lot of people know that a dot product can be used to determine whether a plane is facing towards you or away but they don't connect that to the fact that dot products give cosines, and don't need to. It's a magic trick.

    299. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Adding to this...

      * How can the CAD program tell you the amount of liquid that will fit in this new bottle (shape) you're designing?
      * How much "plastic" will you need to make such a bottle? Could you do it with less and still hold the same volume? will this make the bottle more fragile? by how much?

      whoever wrote the program that answers those questions had to know about math, integrals, diff. equations and a whole bunch of other stuff.

    300. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      So what you're saying is that regardless of how precise the floating point (or such) calculations done in an computer, calculator or other such device there's always doing to be a margin of error because, in the end, it's all discreet? I could live with that.

      64 or 128 bit precision is fine for me. I can accept that others may need more (much more) than this because in the scales they work this can introduce a margin of error that would be unacceptable. Fine. Ok. Yeah. Sure.

    301. Re:Field dependent requirement by Maxx169 · · Score: 1

      I'd pay for a program that picked lottery numbers and was wrong 1 one of 100 times.

    302. Re:Field dependent requirement by carnivore302 · · Score: 3, Insightful

      Learning math is learning to think in a disciplined way. Math is not only calculus, it's also logic, discrete math and complexity. If these are not part of your natural thinking you will not be the best software engineer you can be.

      --
      Please login to access my lawn
    303. Re:Field dependent requirement by darkonc · · Score: 1
      This is true, to a level, but your knowledge of math allows you to understand what you're doing and to recognize when the result is off.

      Some people would say that it's not so much a case of you using your math as it is a case of your math using you.

      --
      Sometimes boldness is in fashion. Sometimes only the brave will be bold.
    304. Re:Field dependent requirement by martin_dk · · Score: 1

      If you care about salary (or working conditions), you shouldn't become a game programmer in the first place.

      That is just plain wrong. If coding games is what excites somebody, then that is the way to go.

      Depending on the kind of game you're writing, math can be of tremendous use.

      During my studies as a civil engineer I took plenty of extremely interesting courses within applied mathematics. Many of the techniques I learned can been applied to innovate game experiences, alternative physical engines, graphical eyecandy, clever AIs and fast algorithms. Math is tools to help you understand complex behaviour, problems and requirements. I'm sure if I followed that path and learned even more of applied or even pure math I would be a better programmer, problem solver and analyst.

      My advise to the student is: try to find funny things to do with the math you learn. If you can do that, take as much applied math as you can.

    305. Re:Field dependent requirement by laejoh · · Score: 1

      Dutch: wiskunde, not derived (pun intended) from Greek, thanks to Simon Stevin :)

    306. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      My first real programming job was in "DB programming", the first task was to implement a function that would map 2D coordinates to 1D coordinates and that would map coordinates that are close to each other in 2D should also be close together in 1D. The solution is to implement a http://en.wikipedia.org/wiki/Hilbert_curve or any other space filling curve that have the properties you are looking for. I had only 12 years in the swedish school-system(don't know what that compares to in USA) and is mostly self-taught in programming. My first reaction to that was "Maybe I should have gone to University still" next task was implement some good search structures and indexes. Where good grasp of things like "Big O" notation, is really good to have. And for understanding how and why my db querys are performing so bad, the higher math gives a framework that helps.

      So ... if you are doing DB programming or non-game web programming, you may be able to avoid math, but if you are trying to simulate any real life situations, count on requiring a little more math.

      So yes, maybe you could with some luck land a job where knowing higher math is not needed or good to have, but don't count on it.

    307. Re:Field dependent requirement by SkunkPussy · · Score: 1

      OK that's fine, but just understand that there is no such newspaper as "The Times of London" it is just called "The Times".

      --
      SURELY NOT!!!!!
    308. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I've gone all the way up to calculus 3 (vectors, multi-dimensional functions, and doing differentials and integrals therein) and I've yet to see calculus applied by any programming. I am curious how one actually implements it though, in what (limited) programming I've done, I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      Is it typically library/api driven and you just feed an equation to those functions? Or do most programmers hardcode them?

      I'd like to see some code examples. I'd probably never have a use for it, but I am curious.

      Did ya even try Google?

      Numerical recipes in C is a classic book, available for free here:
      http://www.aip.de/groups/soe/local/numres/

      Here's the rest of the series readable online but not downloadable from what I can tell.
      http://www.nr.com/oldverswitcher.html

      There are a LOT of libraries for math around. A lot for math specific software like MuPad, Octave, Mathematica, Mathlab, Maple and more. And a lot of libraries usually with practical goals in mind (like astronomical orbit determination). Google them.

      I would go back to your university where you learnt calculus 3 and ask for a damn refund if you've never heard of any of these and made it through.

    309. Re:Field dependent requirement by MrNemesis · · Score: 1

      Hate to be pedantic, but I'm Mr. Nemesis.

      --
      Moderation Total: -1 Troll, +3 Goat
    310. Re:Field dependent requirement by tehcyder · · Score: 1

      The fact that something is "general and wide ranging" does not imply that it has no meaning at all.

      Take the term "Renaissance". It covers a huge amount of time and field of human activities, and can't be pinned down to a two or three word explanation either.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    311. Re:Field dependent requirement by tehcyder · · Score: 1

      I bet that whatever complicated maths you used, the battery meter would slowly tick down to 14% and then drop immediately to zero before you had a chance to plug your phone in.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    312. Re:Field dependent requirement by tehcyder · · Score: 1

      . We've got a brilliant IIT grad who did our sparse matrix backwards Trapezoid interconnect delay simulator

      That sounds awesome, even though I have absolutely no idea what you're talking about.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    313. Re:Field dependent requirement by Raul654 · · Score: 1

      Most programmers use numerical libraries to do them. I'll just leave this here for you: http://en.wikipedia.org/wiki/List_of_numerical_libraries#C

      --


      To make laws that man cannot, and will not obey, serves to bring all law into contempt.
      --E.C. Stanton
    314. Re:Field dependent requirement by RaceProUK · · Score: 1

      Or plain like Salisbury Plain? *awaits whoosh*

      --
      No colour or religion ever stopped the bullet from a gun
    315. Re:Field dependent requirement by tehcyder · · Score: 1

      The point of high-level math and physics classes is not because you "need" them in your job as a programmer. It's a way to limit how many CSE degrees are granted. I was told this straight-up by my college advisor when I asked What's the point of having 30 freshman engineering students if only 2 survived to the end?

      Lots of college degrees are like this. The supply is higher then the demand for open jobs, so they give tough courses to limit the number of grads. (And degrees that don't weed-out students, like English, end up with a lot of degreed students working at Mickey D's.)

      A university education ishould not just be the first stage on some continuous job interview. If you are good at and interested in Computer Science, or English, then that is what you will want to study. But the point is the fact that you are studying something, and learning how to think, not the fact that you are accumulating useful facts.

      Many people study English or Philosophy or whatever and become programmers or finance analysts. Actual scientific or engineering disciplines are a bit different, as in order to become something like a Chartered Engineer you have to stick to a quite tightly defined education/career path.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    316. Re:Field dependent requirement by tehcyder · · Score: 1

      Taking away the obvious implication of "You don't program differential equations" the logic skills gained by math help greatly in programming. I don't use derivatives per-say in programming or IT work, however understanding how to simplify complex problems has been invaluable to my career.

      The logic skills gained by a degree in philosophy, medieval French or biochemistry would also have helped you in understanding how to simplify complex problems.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    317. Re:Field dependent requirement by somersault · · Score: 1

      Actually in the UK we say sports too. We have sports teams and sports centres (in the US I suppose that would be a sports center ;) ).

      --
      which is totally what she said
    318. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I long for a day when I can differentiate to find minimums ;-)

    319. Re:Field dependent requirement by StatureOfLiberty · · Score: 1

      You never know when your math skills are going to come in handy. I was working at a financial institution. We needed to calculate APR. Someone found a formula in a book and wrote an algorithm. The algorithm worked sometimes and other times its answers did not match those we were getting from other software. The problem fell to me. I was a math major. I looked at that same book where they found their formula and was able to see past the formula on the page and realized the formula assumed all payment periods were the same length. In our case, this was not always so. So, for loans where all periods were the same length the APR calculation was correct. For those that had one or more periods of a different length, it was incorrect.

      It does not happen every day. But, I would say that 4 or 5 times in my career, my math background really paid off in a direct manner. Countless times it has paid off indirectly.

      I like being a math major. Being a programmer is like owning a toolbox. You can have the best toolbox in the world, but if you don't know how to use the tools to solve a problem (like fix a car), they are of little use. You can have a deep and thorough understanding programming technologies, but if you can't apply your knowledge to solving a problem, your knowledge is of little use.

      Being a math major often allows me to understand problems and how to fix them. Being a programmer gives me tools to do the work.

    320. Re:Field dependent requirement by tehcyder · · Score: 1

      Dont forget, it is a changing world. You never know when calculus is going to become important. There is very often a paradigm shift, the more you are prepared for it, the better equipped you will be to handle it.

      I think that by definition you can't prepare for a paradigm shift.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    321. Re:Field dependent requirement by Stuarticus · · Score: 1

      But what I do know is I can see, spot, and recognize trends and anomalies in data.

      The patterns, they're everywhere! http://en.wikipedia.org/wiki/Apophenia

      --
      If you think someone isn't free to have a different definition of "freedom" you may be a tyrant.
    322. Re:Field dependent requirement by Scragglykat · · Score: 1

      We used calculus all the time when I was co-oping as a programmer during college. Worked at a chemical plant in the IT department and we wrote and updated the software for print MSDS, drum labels, and for doing the formulation and calculations that the chemists in the company used. It was math math math all the time. Depends on where you get your job. Keep in mind though, that if you can't do the math, you will have a more limited job list to pick from.

    323. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      That must be the craziest way to do calculus I've ever heard of and yet I must applaud the ingenuity.

    324. Re:Field dependent requirement by ThatsMyNick · · Score: 1

      I agree you cant prepare for one, but being strong in the basics helps you adapt faster to changes.

    325. Re:Field dependent requirement by donscarletti · · Score: 1

      He actually mentions gaming. And 3d gaming at that.

      As a game/3d engine programmer, I would say that while you do not need to be a guru at mid-advanced level calculus (ODEs and beyond), you should have no trouble understanding matrix transforms, vector algebra, partially differentiable equations, Boolean algebra, quaternions, modular arithmetic, etc. Furthermore, I think one must have a natural curiosity towards these things, otherwise there will be no inclination to explore solutions and push the boundaries.

      The very fact that he asks reluctantly "do I have to learn this?" suggests that he probably is not cut out to be much of a 3d programmer. Yes, we use maths, a lot of it. Why just 3 weeks ago, I had to implement a cubic spline function in quaternion space. This week has just been mostly matrix transforms and dot products, but everything you know in maths can find an application now and then.

      But yes, most programming is just logic and rational thinking. 3d gaming is a niche. I still suspect most brilliant programmers would be drawn to maths at least to a degree, whether it is directly useful or not.

      --
      When Argumentum ad Hominem falls short, try Argumentum ad Matrem
    326. Re:Field dependent requirement by grammar+fascist · · Score: 1

      (Hint: it is not called lambda CALCULUS because it sounds fancy)

      It's because it's a calculus: a method of calculating things. In this case, the things are higher-order functions, and the method is beta-reduction.

      Your other points are well-taken, however.

      My problem with the question and all the answers so far is that they are focusing on generalities. It's true that most programmers won't need calculus. However, we desperately need the 2% that do, because scientists from other fields don't get taught how to program. Oh, they pick it up on the job. They have to take one programming course from the CS department. But they rarely get rigorous training in software engineering that they need to make reliable stuff.

      --
      I got my Linux laptop at System76.
    327. Re:Field dependent requirement by michael_cain · · Score: 1

      Liberal arts is not useless.... Math is a beautiful thing, it helps us explain the world.

      So how much math are you going to require a liberal arts major to take? There are academics writing serious pieces like this one in the New York Times that suggest the proper amount of college-level math (calculus or above) to require is none. Math as a language to describe the world would seem (at least to me) to require a minimum of differential equations and a real statistics class, both of which require a couple of semesters of calculus as a foundation. Or you could simply require them to pass a couple of "topics" courses to demonstrate that they understand there's a lot of different kinds of math out there -- but I certainly wouldn't trust them to actually use that math.

      As to the question in the original post... it depends on what kind of software you develop. Much of mine was either real-time (where algorithms for solving discrete math problems and the math for computational complexity were useful) or tools to solve specific applied math problems (where I needed to know the problem-specific math).

    328. Re:Field dependent requirement by michael_cain · · Score: 1

      You'll also be aiming at a professorship, some research gig, or being woefully underworked and underpaid for your education until you've got enough hours in the trenches to make a good senior analyst or senior architect. [Emphasis mine]

      My experience is that you mean overworked there. Otherwise, spot on. I might push some discrete math for code monkeys, if only because it's a rich field for algorithms.

    329. Re:Field dependent requirement by Marxist+Hacker+42 · · Score: 1

      Having said that- *beyond* calculus and linear algebra exists this thing my college called "Numerical Methods" which was basically how to do all that calculus and linear algebra in recursive or iterative ways, using the power of the computer.

      THAT has turned out to be useful when programming in the set theory of relational databases, not a few times, but quite a bit.

      I just wish that tradition didn't make you learn calculus and linear algebra first. Derivatives and Integrals are useful for recognizing patterns, as are multi-dimensional arrays, but I think you could learn Numerical Methods first and skip the rest.

      --
      SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    330. Re:Field dependent requirement by Marxist+Hacker+42 · · Score: 1

      Lego is the company. Legos are the bricks, which are made by many companies, apparently in total violation of international intellectual property law.

      --
      SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    331. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      poor idiot :(

    332. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      After taking a 2 year electronic engineering program, I had done some programming, and started coding functions. I then took a 2 year college program in computing (I followed it with a 4 year university degree in computer science). After the second college thing, I programmed basically all of the functions on my calculator on the computer using a language called rexx. Its capable of only addition, subtraction, multiplication and division on its own, but to high precision. I programmed in sines, cosines, tangents, exponents, logs and roots, factorials, permutations and combinations (Maclaurin series, Taylor series, Power series). I even came up with the smart was of computing exponents before I took it in an algorithms class (my old '386 laptop could give a 250 digit answer to 123456789.123456789 ^ 123456789.123456789 in about 2 seconds (of course, correctly!)) I've also seen source code for solving Navier-Stokes equations (for weather forcasting, ocean simulations, cloud formations, etc.). It is truly much more fun to give this kind of thing to a computer than to solve it yourself, but I didn't code that on my own. As the parent stated, unless you are in the hard sciences, you don't need much math. When in university I worked for a while in a machine shop inspecting parts. Given drawings designed to help machinists make parts and not inspect parts, I found I needed to use more math to determine tangent points and depths of routed cuts, etc., than I needed in university. Mind you, that was just trigonometry and geometry.

    333. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      If you start muttering about 'power transfer' areas bounded by hysteresis curves, butterworth filters, poles and zeroes (like snakes and ladders, one goes up and one goes down), and discrete states from z transforms, and partial fraction expansion, I think I will puke. Just sayin'. It all rings a bell, I haven't touched any of it in more than 15 years, and I think I am a happier person for it.

    334. Re:Field dependent requirement by avandesande · · Score: 1

      I can't take credit for this, it is a chemists trick from when plotters were used with a gas chromatograph and there was no automatic integration.

      --
      love is just extroverted narcissism
    335. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I'm doning programing and math(applied math grad...) , it's calld numerics....
      For integratinon use the trapzoid rule. In fakt most math cant't be solved analyticly. So numerical methodes must be used.

      https://en.wikipedia.org/wiki/Trapezoidal_rule

      Euler for ODEs:
      https://en.wikipedia.org/wiki/Euler_method

      btw your math courses had no numerics? Most calc and diff. eq boks have some.

    336. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I agree with your points. Understanding why is important, instead of just following a cookbook. I used to interview graduating engineering students for job, and when asked a technical question, they all wanted a calculator or computer, instead of analyzing the problem first. They were not hired.
      I understand elementary schools often do not teach multiplication tables, letting kids rely on a calculator. This is stupid beyond belief.
      Try this on the typical four function calculator used every where. 2 divided by 3, then multiply the result by 3. See how often you get 2 as the answer. Usually it is 1.9999999, which is clearly wrong. But see how many times the user accepts this as a correct answer.

    337. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I disagree with the calculus. I learned calculus as an interested 14-year-old. In the quarter century since, I've not had any use of it that beyond solving problems in class and when reading textbooks. Understanding the existence of limits is fine for being able to use a big-O analysis; but doing integrals? I wish I'd spent that time time on more statistics and linear algebra instead.

    338. Re:Field dependent requirement by MrResistor · · Score: 1

      I've gone all the way up to calculus 3 (vectors, multi-dimensional functions, and doing differentials and integrals therein) and I've yet to see calculus applied by any programming. I am curious how one actually implements it though, in what (limited) programming I've done, I haven't seen any clear way to calculate say an integral using something like c++ or c#.

      Doing real math on a computer is actually surprisingly complicated. The topic is usually referred to as Numerical Analysis, and if you're looking to take a class in it you'll find it in the upper division course work of the Applied Math degree track, and you'll almost certainly be expected to have had at least an introductory course in Differential Equations (essentially, Calc 4) first.

      You may also find an introduction to the topic in the lower-division math requirements of most CS degrees, in classes typically titled as Discrete or Finite Math.

      That said, yes there are libraries, although the folks who are serious about that stuff are more likely to use dedicated packages/environments/languages like MatLab, Mathematica, or R.

      I will also say that I think there's a level of dishonesty when people say they aren't using math as programmers or software engineers. Sure, I'm not solving quadratics or writing proofs, but I am certainly using the concepts that I learned on a daily basis. Graph theory, group theory, set theory, number theory, linear algebra... all of these things matter when you're trying to create software that actually does something useful. Just because it doesn't look the same as it did on the final exam of that class doesn't mean it isn't the same kind of math.

      --
      Under capitalism man exploits man. Under communism it's the other way around.
    339. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I've done (more than) my share of optimization, and have never had a use for calculus for this. Can you detail where you think this is useful?

      Just to make sure we're not just talking past each other: Calculus was in my opinion not particularly useful for understanding the O-notation and algorithm analysis, and I've not found it useful for the little bit of numerical optimization I've done - computing power beat analysis to death. I assume it's useful for a bunch of scientific work, just none of the work I've come across. I've been doing work fairly broadly (games programming, broad operating systems (kernel) programming, web apps from small to lead programmer for one of the top-100 sites in the world, operations for same, some network design, regular business software development, statistical analysis, and language development), and haven't come across a need for it - neither a case where I've used it, or where somebody else that I've worked with has applied it.

    340. Re:Field dependent requirement by highphilosopher · · Score: 1

      Must Be a PC then.

    341. Re:Field dependent requirement by MrResistor · · Score: 1

      Video game programming is mostly trigonometry, but there's some calculus in there too. Physics engines of course use calculus and a lot of matrix math. You may use those as packages, but I think if you want to do something the library designers (who are mostly focused on physics and execution speed) didn't conceive of, it would be good to know the math that gets you there.

      Actually, graphics is pretty much all matrix math. Yes, there are packages, but you're going to be quite screwed if you try to use any of them for anything beyond what could easily be accomplished with WinForms without knowing matrix math. You'll also understand quaternions and afine transforms, since that's the basis of the most common execution speed optimizations.

      There's a reason why that stuff is on the programming test of every single game company that I know of. You probably won't even get an interview if you don't know it.

      --
      Under capitalism man exploits man. Under communism it's the other way around.
    342. Re:Field dependent requirement by MrResistor · · Score: 1

      So how much math are you going to require a liberal arts major to take?

      I was required to take 9 units of upper division humanities (for "Lifelong Learning" and "Cultural Diversity") in order to graduate. Turnabout is fair play, I say. It would do those fields no end of good to see what actual rigor looks like.

      --
      Under capitalism man exploits man. Under communism it's the other way around.
    343. Re:Field dependent requirement by mcelrath · · Score: 1

      A reasonable perspective, I think, but your knowledge of statistics will be very poor without calculus. The PDF and CDF are related by an integral. The moments of a distribution are integrals over the PDF, as is the "expected value" of a function. Bayesian prediction requires integrals. Just a few examples.

      --
      1^2=1; (-1)^2=1; 1^2=(-1)^2; 1=-1; 1=0.
    344. Re:Field dependent requirement by mcelrath · · Score: 1

      No, but I agree with everything he says!!! Everyone needs more statistics!

      I'm flabbergasted every time I turn on the news just to hear the results of some poll (never quoted with appropriate errors), the true implication of which will be lost on the populous because they don't know enough statistics... It's not a matter only for programmers, it's for humans.

      My field is physics, and physicists display exactly the same attitude as Zed Shaw: they think they're smart enough to make up or figure out the statistics along the way. Unfortunately for them, this is often true, and I think physicists even contribute meaningfully to the statistics literature. But even physicists would be better off with more statistics courses and less "winging it". My biggest pet peeve: why do particle physicists decide on 5 sigma for the "discovery" of a particle (e.g. the Higgs at CERN a few weeks ago). Most physicists cannot answer that question, or answer it incorrectly. Every single media article on the topic addresses that question incorrectly. The correct answer is that we don't know the probability distribution out on the tails, and 5 times the 1-sigma error is taken as a community "rule of thumb". It is not a 5-sigma gaussian probability (5.7e-7 "probability of being wrong" -- which is what everyone quotes).

      --
      1^2=1; (-1)^2=1; 1^2=(-1)^2; 1=-1; 1=0.
    345. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      (if you are a programmer, you dont; otherwise you would be a mathematician, not a programmer; and some people would get confused, you know? and besides most programs do not need it, just add a GUI and cut a few things around; beware if all programs you think begin needing math....) ;)

    346. Re:Field dependent requirement by Em+Adespoton · · Score: 1

      Depends on what you mean by overworked... the code monkeys end up being kept really busy doing brain numbing activities that could be done just as well by a competent secretary. Their brains, on the other hand, will be underworked, as they won't be doing anything really new or novel.

      By underworked, I was referring to having to spend all day doing mindless junk when you've got the education to see how the whole workflow could be optimized to make the entire unit more productive... but you'd have to actually DO that on your own time, as there's not enough time to do extra work like this with the drudge-level coding expected of you during a regular workday.

    347. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I'm wondering how you're going to model memory effect and other natural degradation and how you're going to populate the lookup table to begin with.

    348. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      I think both you and the submitter are missing the point. Even though you might not sit down and run actual math calculations, that doesn't mean that you haven't benefited from your ability to recognize complex patterns in life. That's what math really is- a language to describe patterns in nature.

    349. Re:Field dependent requirement by ImprovOmega · · Score: 1

      Programming changes the way you think.

      At least until some Brandy shows you a pic of Snowcrash and then you don't think at all...

    350. Re:Field dependent requirement by ImprovOmega · · Score: 1

      The great thing about combinatorics is how deceptively simple it is. Honestly I think it should be a require high school course. At least the parts that I took in combinatorics 1 in college, maybe stretch it to a year long junior level high school course. Cover counting, permutations, combinations, n-choose-k, and all that other neat stuff. I never did understand why it required calculus in college though, nothing in there is fundamentally rooted in calculus (maybe some background in infinite series helps...some...for the notation?) but it teaches you to think kind of sideways to the way normal math works and really helps with a lot of real-world applications.

    351. Re:Field dependent requirement by uninformedLuddite · · Score: 1

      You mean complex math like R=LU+S? radical stuff that.

      --
      The new right fascists are bilingual. They speak English and Bullshit.
    352. Re:Field dependent requirement by uninformedLuddite · · Score: 1

      The wright brothers didn't invent flight either.

      --
      The new right fascists are bilingual. They speak English and Bullshit.
    353. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      While I suspect that you are correct I've actually had much of the same math as a technician (i studied electronics technology in the county vocational technical school) using algebra II as the highest math taken before starting my undergrad. I think a lot of the electronics I studied in high school that also included discrete logic was somewhat helpful but that does not exactly require calculus. While I went the calculus route through college I found that my degree, being more information systems than CS, didn't require calculus but left it as an option but required either calculus or discrete mathematics at the students option. Statistics was mandatory.

    354. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Number theory, set theory etc are all useful for programming, calculus less so. Unless the subject of the programming involved calculus of course. There are arguments that for some game programming calculus would be useful for physics emulation, but I suspect it'd be more getting simplified computing optimized fudges to closely match the results someone else gives you from their calculus.
      But as bannable says, discrete maths, number theory etc doesn't tend to get taught to students until after calculus, vectors (which ARE useful) and so on. More than the actual math, the thinking the maths encourages is probably worthwhile. Compared to any of the other crap they teach in school anyway. Most high school subjects are focused on remembering stuff, and while maths involves some of that, it leans heavily on processing and problem solving.
      (FYI: I did Mech Engineering and then Applied Math at Uni and now work in network security)

    355. Re:Field dependent requirement by Austerity+Empowers · · Score: 1

      This strikes me as arguing evolution to a creationist - a giant waste of everyone's time, and more than likely going to start a fight.

    356. Re:Field dependent requirement by smellotron · · Score: 1

      http://www.doobybrain.com/blah/blah/blah

      Please link the original XKCD comic instead of some random blog. In addition to being more respectful to the original author, it preserves the mouseover text which is relevant to the conversation at hand.

    357. Re:Field dependent requirement by Austerity+Empowers · · Score: 1

      15 years later it has not once proven valuable to me, and given how much of what I spent on college it represented, it's money I wish was spent differently.

      Granted, some people in college have a far better idea of what they wanted to do with life. I knew pretty well what I wanted from about 12 years of age, all I did in higher ed is try to learn as much about it as I could, while filling my degree requirements and managing what money I could spend on education. Some people get a degree that generally suits their interests, but don't know what they're going to do with it. Those people may indeed benefit from a more well rounded education.

      I was never in a position where I needed "filler classes" to manage my workload or gradesl. The grades were not that hard, I loved what I was doing. I left college wishing I had been able to take a long list of items in the course catalog...but the money was spent and it was time to earn it back. Now there's just no time, that part of my life is over unless I strike it rich somewhere.

    358. Re:Field dependent requirement by Ol+Olsoc · · Score: 1

      Excellent Pedantry Mr Nemesis.

      But what I need from you at the moment is how many are in inventory right now, and can we fill this bulk order today or are we going to have to back order?

      And fortunately, that is all you'll ever need?

      I think the question, and all the replies I've seen so far, is that the lad is interested in being a programmer, so wants some sort of Programmer minimum needs kit.

      Problem is, that's assuming that he is always going to be a programmer, and that programming throughout his career is going to use the same skill set. Or even be in the same job his entire life.

      I've had around ten different jobs - even at one place - during my career. Some used a lot of math, and some almost none.

      My advice is, Get whatever math you are capable of getting. You might not need it, but if you do, you won't "have it" unless you took it.

      --
      The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
    359. Re:Field dependent requirement by Alex+Belits · · Score: 1

      There is also always a possibility that his advisor is a troll.

      --
      Contrary to the popular belief, there indeed is no God.
    360. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      > Does anyone say mathematic?

      Yes. The original title of the Bourbaki texts, for instance, is "Principles of Mathematic."

    361. Re:Field dependent requirement by dgux69 · · Score: 1

      I have to admit that in my actual job I don't use a lot of mathematics.
      As network engineer all kind of processor powered devices do that for you.
      Still my initial formation as electronician simply required a well knowledge of math !

      When people ask me how to calculate something in excel my answer is a formula and not an excel function.
      Am I old school when I prefer to know how to do it instead of just doing it ?
      Knowledge is an option, curiosity is mandatory to discover new things.

    362. Re:Field dependent requirement by nobodie · · Score: 1

      This is it, if people want to hear it. What the key the understanding why we need the higher maths taught is that they help us ( the students) to create complex ideational functions mentally. They give us the mental framework of understanding so that we can think multi-dimensionally, in curves and over time with change and other data constructs that have a real mental existance because of the maths that underlie them.

      Go back 4 or 5 hundred years in northern europe and almost no one could multiply. The multiplication table, being a table, is 2 dimensional. Most people lived in a world that was one-dimensional. There was themselves in a moment. Only a schooled and skilled person, in the classics and ancient languages, not in maths, could really do the complex work that required thinking about the future, the past and the strange world of "possibility."

        With the rise of maths education in the 17 and 1800s came the rise of the educated middle class and all the attendant changes iin expectation of education, in understanding possibilities and change. In short, the modern world. It is now possible for me to say, with you, as maths skilled individuals, that the result was not completely causation (as in math education led to higher level thinking) or correlation (as in math education grew together with higher level thinking) but that the two abilities are correlated and mutually causational: that math grows with higher level thinking. And you understand something that would have been opaque to everyone except people like Newton and Da Vinci 300 years ago: and they would have spent some time parsing the ideas before they really got it.

      That is the importance of math education, we grow, individually and socially, as we implement higher level/ math connected thinking.

      --
      Subversion of spatial scale luxury decoration ideas.
    363. Re:Field dependent requirement by nobodie · · Score: 1

      Jesus Christ on a pogo stick, I have spent the last 15 years traveling around the effing world teaching English trying to get the idea into the heads of foreign students that the spelling and pronunciation differences between to most common Englishes are minor and unimportant. ANd every effing time a bloody Brit has to jump up and say "but it's our bloody language, not yours."

      Let me apologize to all those people in the world that are trying to learn a new language and want to learn the American variety because:
      1) they want to talk to Americans
      2) They want to do business with Americans
      3) They want to travel in America
      4)They realize that there are 300 million Americans and 80 million people in the UK, including a large percentage of non-native English speakers or speakers of other non-Brit varieties (Scots, Irish, Indian, Kenyan, Nigerian, Aussie, Kiwi, etc)

        I want you to know that it must be a big mistake to learn American English for any of these reasons because we seem to have stolen the language from its proper owners, The British people (whichever British people the blessed P, GP, etc.meant, probably ones from Yorkshire, or Kent, or South London, damned if I know) must be the only people who own the language because it is their native language, not anyone else's. We Americans stole it from them in the 1600s and escaped by boat to Jamestown and Plymouth and other places on North America. So we have to stop using it and must begin to claim to use only our own language: American. It has two varieties, Canadian and US.

      OK? Now, that we have that straight, I feel really sorry for the British teachers of English who will now be out of work because they can't teach the varieties of American that the world wants to learn. They might, mistakenly, believe that everyone will flock to them because they have the only "true" English, but once the world discovers "American" is the one they really wanted to begin with (should take about... hmm five minutes in internet time) and the rebranding takes place, the game will be over.

      Look folks, I have taught with British, Scottish, Irish, Ozzie, Welsh, Kiwi, Kenyan, Canadian, South African and many other teachers over the years, and damn near every one of them has an inferiority complex about "their" English. Honestly, the lesson is easy, learn whatever the teacher has to teach, adapt it to your needs when you are in a new situation. That is it. Students understand that, they don't understand why a teacher has to insist that their English is the only "good" variety.

      The IDEA behind "math(s)" is the same. The same idea lurks behind "hood" and "bonnet", "dooner" and "quilt" (aussie eng) and tons of other vocab diffs. Also between the vowel sounds for "a" and "a", all these are simple, easy differences that students can understand. Why do you have to make them important differences when the IDEA is what is important, not the execution?

      --
      Subversion of spatial scale luxury decoration ideas.
    364. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Just because a term has different meanings in different domains does not mean that it is meaningless. As a description of an artistic style it has a different meaning than as a description of a philosophical theory.

      A lot of woolly nonsense is spouted about postmodernism, but if you want you can go back to the original texts and get rather clear definitions. Lyotard says that the key element in the postmodern condition is "incredulity towards metanarratives." What is a metanarrative? A good example is the concept of the Singularity.
      Postmodern ways of thinking are characterized by the rejection of overarching theories of any kind. If you think that moral truth is relative, or that there is no objective measure of the quality of an artwork, or if you think that the idea that human history has some kind of logic to it that is leading us inexorably towards neverending happiness or self-destruction is sort of suspicious, then you are a postmodernist.

    365. Re:Field dependent requirement by gregor393 · · Score: 1

      The English cobbled together a language from Celtic, Norse, and North German languages - then mixed in Latin and French. I think the idea of "standard English" hath had its day, forsooth.

      --
      Gregor Ronald Christchurch, New Zealand
    366. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      take a look at numerical methods. There are lots of algorithms for calculating a definite integral. Most revolve around the idea that a definite integral is a Reimann Sum. For more information see either http://en.wikipedia.org/wiki/Numerical_integration or
      http://www.nr.com/.

      If you are looking at calculating a general integral, symbolic computation is the place to start, for example http://www.symbolicnet.org/toc.html

    367. Re:Field dependent requirement by AK+Marc · · Score: 1

      The problem is that those equations only work for constant acceleration. When you have a variable acceleration, you *must* integrate (or know math well enough to estimate). Sometimes the equation itself must be derived, either from calculus or from the ones you gave (you want the initial velocity of a car that slid to a stop over 150 feet, with assumed Cf of .6 for a crash reconstruction).

      Knowing math helps a lot.

      For me, I am an expert in satellite communications now. Why? Because when an issue came up at work (I worked in IT), I was the only one that could do the math for link budget calculations in a timely manner. So I got everything wireless. Then, with lots of satellite experience on my resume, I ended up getting another job in satellite elsewhere, covering everything (including a little bit of orbital mechanics). Using lots of calculus (or calculus-derived equations which understanding of them helps when discussing the issues with bosses and clients) in IT. It happens. Of course, I could have been passed over, and gone on to do other things, but it all worked out really well for me in the end because I had more math knowledge than anyone else in that IT department when the issues came up.

    368. Re:Field dependent requirement by AK+Marc · · Score: 1

      Same reason the black sports stars are paraded about like trophies. They are the only success poor blacks can hope to achieve. Despair breeds revolt, so give them some hope, even if "some" is statistically none.

    369. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Liberal arts is not useless.

      Math is a beautiful thing, it helps us explain the world.

      So does philosophy.

      History teaches us about our past, inspires and frightens us.

      The liberal arts are a vital part of holistic education. Math and science are wonderful tools in a holistic education, but so are the liberal arts.

      It helps cultivate creativity and teaches people how to examine things from different perspectives, essential tools that augment the search for deeper scientific knowledge.

      Need them both; otherwise what are you doing with your ride on the merry-go-round?

      Such a lovely reply. I agree with you on every point.

    370. Re:Field dependent requirement by s.petry · · Score: 1

      Philosophy I agree with, though I did mention that my minor was in Liberal Arts so I do have a bit of a degree and years of education. Biochemistry requires knowledge of mathematics, so somewhat redundant with Mathematics. French is interesting, I'm not sure how you derive at that assumption. Perhaps for syntax, but not as much for problem solving skills.

      --

      -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

    371. Re:Field dependent requirement by Alex+Belits · · Score: 1

      Sounds like something a mom would tell her kid after he shown her a drawing of purple cow with seven legs, twice the size of a barn and a big red "F" written in the corner by an agent of oppressive society that insists on following overarching theories.

      --
      Contrary to the popular belief, there indeed is no God.
    372. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Aren't your comments on normal and outliers a matter of statistical math? I don't dispute a value in the teaching of Calculus; on the contrary I desperately wish I was more empowered mathematically by my public education. I'm only suggesting that maybe your misplacement of credit reinforces the breadth of available studies in the discipline of mathematics.

    373. Re:Field dependent requirement by nobodie · · Score: 1

      To be precise, the Celtic had little effect on ENglish except in place names in England. The effect of Latin was mostly through French, especially the influence of the French scientists of the 1700s who used Latin for scientific terms that were accepted worldwide.

      --
      Subversion of spatial scale luxury decoration ideas.
    374. Re:Field dependent requirement by WaywardGeek · · Score: 1

      Good guess. Actually, I worked at QuickLogic from 1990 to 1995, but I've been doing more ASIC related work for most of the last decade.

      --
      Celebrate failure, and then learn from it - Nolan Bushnell
    375. Re:Field dependent requirement by WaywardGeek · · Score: 1

      It is very cool. You have "nets" on chips which are copper or aluminum traces connecting components together. Each segment of these traces has resistance, capacitance, and inductance (though inductance is hard to characterize and model). We model simple nets with one driver and multiple destinations as a tree of resistors and capacitors. To determine delay from the output of one logic gate to the input of the next, you could use SPICE to simulate the net, but since chips have millions of nets, it's too slow. Instead, because of the tree structure, we're able to do what SPICE can't: directly compute the next set of voltages. SPICE has to make a good guess, and then refine it over several steps until the error is acceptable. Overall, it's at least a 1000X speed up. It's so fast, we don't even report that it's running to the user, and it's literally more accurate than SPICE (no error in each step other than round-off errors). However, some nets have multiple drivers in parallel, and clock nets can have drivers which are far apart. These nets are almost trees, but not quite, so the simple original algorithm fails. The IIT grad figured out how to add cut points to the near-tree to turn it into a tree, and then solve the whole system at the future point in time with a single matrix inversion who's width and height is the number of cut points, which is usually small. It involved some very cool math. Backward Trapezoid is just means we compute the future point in time such that if we took a step backwards in time, we'd get to the current state. That helps keep the system mathematically stable while taking large steps. Trapezoid just means we use the average of the slopes on voltages at the current state and the future state, rather than just one. This is exactly how most SPICE simulators work. So, now we can simulate all the interconnect on the die with better than SPICE accuracy, and even take non-linear effects into account. The solution from the IIT grad is the coolest math hack I've seen from any coworker, and it exceeds the best math hacks I've coded, and I've done some very cool shit.

      --
      Celebrate failure, and then learn from it - Nolan Bushnell
    376. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Did the OP say he was going to be involved in EE or focusing on videogame design?

    377. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      Here's the American argument for disregarding Queen's English conventions: we don't give a shit.

    378. Re:Field dependent requirement by Anonymous Coward · · Score: 0

      According to my books, postmodern means lots of brushed stainless steel and concrete.

  2. Optimization by Anonymous Coward · · Score: 5, Interesting

    If you want to be an efficient programmer in some specific domains, an understanding of higher math allows you to optimize your code. In game development this becomes important when you are trying to have your cutting edge game run on older hardware.

    1. Re:Optimization by Anonymous Coward · · Score: 4, Insightful

      Also, if you can't handle the math, you aren't cut out for the job. Even if you don't use it daily. Same reason that premedical students take physics (to keep morons out of medical school).

    2. Re:Optimization by SQLGuru · · Score: 3, Informative

      This.

      If you are just using libraries and assets, you won't do as much math until you need to tune a section of code. If you are writing the lower level graphics libraries, math will be important. Same for other programming areas -- the high-level programmer doesn't need to know the complex problem domain but the low-level programmer does.

      Oh, and learn Linear Algebra (as a simplification, Matrix Math) if you're doing much in a graphics field. It's not in the straight line of "important" math (Algebra --> Trig --> Calculus) but in a branch from there. It's quite useful in graphics, however.

    3. Re:Optimization by DJ+Jones · · Score: 5, Informative

      i work in Finance so perhaps I'm a little bit of an outlier but I use high-level mathematics every day. The other day I caught two programmers (who lacked mathematical backgrounds) attempting to use a binary solver to find a solution to a polynomial algorithm. They had spent two months of time and energy trying to figure out why their model sporadically failed. I had to pull a numerical methods textbook off the shelf and show them the Newton-Raphson iterative method.

      You don't use it often but there are definitely occasions when a lack of understanding leads to pitfalls.

    4. Re:Optimization by Anonymous Coward · · Score: 0

      Linear algebra is probably really important as a programmer, as you'll use it for all kind of algorithms - graphics, physics engines, compression, video encoding, signal processing, etc.

    5. Re:Optimization by Kiaser+Zohsay · · Score: 5, Insightful

      Hear, hear.

      You don't necessarily do a lot of math as a programmer, but being able to think like a mathematician will be a great help. General problem solving involves logic and inference, in much the same way as proving theorems does. Some concepts from Discrete Math become so commonplace (decimal to bin,oct,hex,etc) that you hardly even notice them anymore, but will glaze the eyes of a non-programmer. I have also had to explain floating point evilness to more than one accountant.

      The most hard-math thing I have done recently in programming was double linear regression to project the time required for a file copy operation to complete. Some quality time with Wikipedia, a couple of pages of algebra, and a couple of days of debugging later, and I had a "time remaining" display that counts down like a clock. Take that, Windows Explorer.

      --
      I am not your blowing wind, I am the lightning.
    6. Re:Optimization by Tough+Love · · Score: 1

      If you are writing the lower level graphics libraries, math will be important.

      Also keep in mind that that guy (gal?) writing the low level library is probably making more money than you.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    7. Re:Optimization by Tough+Love · · Score: 1

      The other day I caught two programmers (who lacked mathematical backgrounds) attempting to use a binary solver to find a solution to a polynomial algorithm. They had spent two months of time and energy trying to figure out why their model sporadically failed.

      And why did it sporadically fail?

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    8. Re:Optimization by zlives · · Score: 1

      I am interested, as i am sure lot of other people. do you have this available for download?

    9. Re:Optimization by Anonymous Coward · · Score: 0

      Although I don't use calculus directly (although I do love me some calculus), the tools I use in the workplace for financial analysis were built by very intelligent programmers who understood financial math and applied it to a business need. Also, several actuaries I know much prefer to use programming to complete their job for them, using higher level mathematics. I will admit, it's mostly statisctics though.

    10. Re:Optimization by Anonymous Coward · · Score: 0

      Binary? You mean bisection? Er. Bisection always converges. Perhaps they were using secant method instead?

    11. Re:Optimization by Anonymous Coward · · Score: 0

      Suddenly I feel like Dr. Zoidberg when he was told that most doctors are rich.

    12. Re:Optimization by idontusenumbers · · Score: 1

      If anything Logic is a much better indicator for programming skill. Math skills does not imply good programmer and good programmer does not imply good math skills. As for premedical students taking physics, that depends on the school. Medicine and physics are both largely logic/diagnostic/causal-relationship based. Depending on the school or program, there are *many* classes one needs to take for a degree. For many of these classes there is no deliberate decision made as to why it is required. It's more likely that physics is science related and so is medicine.

    13. Re:Optimization by Genda · · Score: 1

      AND What about signal processing... sweet jebus, VOIP??? Can you say Fast Fourier or Wavelets? This little dance makes all those nice mpegs possible. There's just too many aspects of the physical universe and how it interfaces with our digital technology to describe, and at every turn, you bang flat into higher math.

      Even being able to tell if your problem can be solved in polynomial time, and whether your solution scales linearly or exponentially, demands having the grasp of being able to see your problems in terms of mathematics. Consider the heart of all programming is abstraction, and that the purest forms of abstraction are invariably mathematical in nature. There, 'nuff said.

    14. Re:Optimization by rmstar · · Score: 1

      And why did it sporadically fail?

      I guess because their screwdriver fell into the soup durig wrestling.

      Or at least, that makes as much sense as "attempting to use a binary solver to find a solution to a polynomial algorithm". So I think that was a subtle joke.

    15. Re:Optimization by Em+Adespoton · · Score: 2

      Think of it as being a carpenter with one hand saw, one flat-head screwdriver, a bottle of wood glue, some clamps and one hammer. Sure, you can put things together, but you're never going to really create anything new.

      Having a full maths education ensures that you have the right tool for the job, whatever area of computing you actually end up going into.

      And you can never have enough statistical training. That's often what gets you making significantly more money, and tackling significantly more interesting problems.

    16. Re:Optimization by Kiaser+Zohsay · · Score: 1

      I have previously posted a snippet. It's not ready for direct reuse, but all the required moving parts are there.

      http://forums.xkcd.com/viewtopic.php?f=7&t=42724&start=80#p1693071

      I told my father I want to be a musician, so he bought me a blunt instrument. He gave it to me and said "Knock yourself out".

      --
      I am not your blowing wind, I am the lightning.
    17. Re:Optimization by deapbluesea · · Score: 1

      If you are writing the lower level graphics libraries, math will be important

      It's funny that the general advice I've seen has been that math is useful and good, but there are APIs for that, so you're OK. Let's put this into another famously divisive /. subject and see how it goes:

      • You don't need to know how to program, just use the tools that Apple gives you and you'll be fine.
      • You don't need to know statistics to understand climate science, just trust the data that random people hand you and be sure to flame anyone that doesn't.

      At a minimum, it's important for no other reason than to be able to think independently, arrive at conclusions based on facts, and understand why you support or don't support something based on something other than "everyone else thinks so". Also, if you want to do fun stuff in computer science, you'll probably need to have some math. It's one thing to know how to use coordinate frame transformations from a library and another thing entirely to know what it means to use coordinate frame transformations. The former will be able to get the job done provided the spec is well written, the latter will be able to write something that is both elegant and correct for the desired purpose. The latter will also be able to point out all of the shortcomings of the spec before baking in all kinds of fun bugs.

      --
      Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.
    18. Re:Optimization by Tough+Love · · Score: 1

      ...that makes as much sense as "attempting to use a binary solver to find a solution to a polynomial algorithm".

      Eh, no. Actually, he just described Newton iteration and you outed yourself as one of those who can't... but perhaps not for very much longer?

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    19. Re:Optimization by SQLGuru · · Score: 2

      I'm not saying that you shouldn't understand the underlying logic......but there's a huge difference between calculating a Fourier transform and knowing what one is and why you would want it. Or whatever other math subject you want. I took Calculus and Differential Equations, but I don't use any of it in my daily programming tasks. I understand them and could get a refresher if I needed to code it, but it isn't important to my ability to do my job. Which is ultimately what the OP asked.

      If you want to write the libraries, you need to KNOW the math. If you want to use the libraries, you need to know the math. In your oversimplification, you make it sound like you go out and hand build your computers from the silicon up because you can't trust the chip makers or the OS or the programming language or the.......well, you get the point. In order to be productive, you use tools. Better programmers understand the underlying principles and can identify when a tool they rely on isn't working properly (and files a bug report so that it's fixed) but they don't reinvent the tools that exist just because they have some high and mighty attitude towards APIs.

    20. Re:Optimization by rmstar · · Score: 1

      Eh, no. Actually, he just described Newton iteration and you outed yourself as one of those who can't... but perhaps not for very much longer?

      Sorry, but I know my stuff rather well. "Attempting to use a binary solver to find a solution to a polynomial algorithm" is just gobbledygook.

    21. Re:Optimization by gnasher719 · · Score: 1

      I had to pull a numerical methods textbook off the shelf and show them the Newton-Raphson iterative method.

      Challenge: Find a third degree polynomial and a starting point where Newton-Raphson fails.

    22. Re:Optimization by Anonymous Coward · · Score: 0

      I hate to say it, but in the situations in which a neton raphson solver is guaranteed to converge, a binary solver will also converge.

      If their simulations are taking too long, newton raphson will help.

      If their simulations are *failing*, they should look elsewhere for the solution.

      As a fairly experienced programmer, I too would use a binary solver for something non performance critical. It's just more general purpose and simpler and easier to code, debug, and maintain.

    23. Re:Optimization by Tough+Love · · Score: 1

      A) Does the phrase "binary cut algorithm" mean anything to you? B) Hubris is best indulged in in small measure, preferably never.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    24. Re:Optimization by rmstar · · Score: 1

      A) Does the phrase "binary cut algorithm" mean anything to you? B) Hubris is best indulged in in small measure, preferably never.

      Oh, he meant bananas and wrote apples. That makes him smart I guess. And his pals are still solving a polynomial algorithm with a model sporadically failing because of that binary thing.

      He's talking bullshit and you are an idiot.

    25. Re:Optimization by Tough+Love · · Score: 1

      Here's a test for you: describe how Newton iteration works. Do not look it up in Wikipedia first. Do not post your description here because I don't care, and anybody who does care can look it up in Wikipedia. This is just for you. If you like, you could call this an "idiot test".

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    26. Re:Optimization by DJ+Jones · · Score: 1

      The algorithm was trying to optimize a model (i.e. find the maximum value attainable). The binomial or bisection method works well for linear and binomial equations but with polynomial equations, there can be multiple local min/max apexes in the curve. Using a binomial solver may work some of the time but often it will give a false positive by becoming "trapped" into a localized root and ignoring the larger, more optimal solution.

    27. Re:Optimization by rmstar · · Score: 1

      Here's a test for you, smartass: how do you solve a polynomial algorithm? Don't come with roots of a polynomial, as that is something completely different that would actually make sense. And google for "binary method", please.

      Of course, you can be an idiot and pretend he meant something else than the bullshit he actually wrote.

    28. Re:Optimization by tehcyder · · Score: 1

      The other day I caught two programmers (who lacked mathematical backgrounds) attempting to use a binary solver to find a solution to a polynomial algorithm.

      The dirty, DIRTY bastards. I bet they were foreign..

      --
      To have a right to do a thing is not at all the same as to be right in doing it
  3. Read More by Anonymous Coward · · Score: 1

    Try to read a serious book on graphics or game engine architecture then tell me how much math you need.

    1. Re:Read More by Anonymous Coward · · Score: 5, Insightful

      Follow-up:
      Math is nothing more than a language that allows the speaker to make very precise statements. If you can't see how this is useful in programming then no-one can help you.

    2. Re:Read More by luis_a_espinal · · Score: 1

      Follow-up: Math is nothing more than a language that allows the speaker to make very precise statements. If you can't see how this is useful in programming then no-one can help you.

      I'm re-tweeting this in a post-quoting-whore fashion. If I could mod this more, I would.

  4. How Many of You Actually Use Math? by thePowerOfGrayskull · · Score: 4, Funny

    How Many of You Actually Use Math?

    Last I added it up, three of me.

    1. Re: How Many of You Actually Use Math? by Anonymous Coward · · Score: 0

      I use math all the time at work, Monday through Friday. That's a whole 3/4 of the week right there!

    2. Re: How Many of You Actually Use Math? by Anonymous Coward · · Score: 0

      I see, does that imply that English is neither complete nor consistent, or does it just seem that way when you try to apply the language to your use of mathematics as it relates to your profession?

    3. Re: How Many of You Actually Use Math? by Anonymous Coward · · Score: 0

      See? This is why you need calculus. Once you know that, it's easy to integrate.

    4. Re: How Many of You Actually Use Math? by Anonymous Coward · · Score: 0

      You, Yourself, and Yi?

    5. Re: How Many of You Actually Use Math? by Kidbro · · Score: 1

      Last I added it up, three of me.

      It's just me, myself and I.

      (actually just came home from a De La Soul concert! couldn't help myself:)

    6. Re: How Many of You Actually Use Math? by Anonymous Coward · · Score: 0

      So you're the adder?

    7. RE: How Many of You Actually Use Math? by Anonymous Coward · · Score: 0

      I asked this same question when I first started my CS degree. The best answer I ever received was "It's not about the actual math, it's about the problem solving used in math."

  5. It will limit you by Anonymous Coward · · Score: 0

    Knowing advanced math increases opportunities available too you. If you do not choose to use what you learned, you still have the opportunity to choose. If you never learn the math then you will encounter situations where you will not be qualified to understand or perform the task you are presented with.

    1. Re:It will limit you by MrEricSir · · Score: 1

      The problem with that line of thinking is that there's no stop condition; it's inherently a slippery slope. Yes, knowing more of anything is good and may have unanticipated benefits. But you can't stay in school forever.

      At some point, we have to draw a line.

      --
      There's no -1 for "I don't get it."
    2. Re:It will limit you by Anonymous Coward · · Score: 0

      Why?

    3. Re:It will limit you by Smidge204 · · Score: 2

      The only time it's really appropriate to stop learning is when you're dead. (Though I suppose if you think learning can only happen in a school you may as well be...)

      The point is whether or not the math they teach in high school is useful for anything and should be taught. The problem with this thinking is the high school years are rather formative for many people - the subjects they are exposed to and their experience with them can have profound impact on the decisions they make that will form their lives and professional careers.

      So take math. It may not be "useful" but it will influence you and your worldview, and that's important.

      BUT! If I were to change anything, I'd shift Calculus later and put more focus on Prob & Stat - A better understanding of prob & stat will make your life better and really help keep your bullshit detector well tuned.

      Also, this comes to mind and is worth watching, tangentially related.
      =Smidge=

    4. Re:It will limit you by Anonymous Coward · · Score: 0

      The only time it's really appropriate to stop learning is when you're dead.

      ....

      I'll add the following: If you believe in an afterlife; then death is not a valid excuse to stop learning.

    5. Re:It will limit you by Anonymous Coward · · Score: 0

      stop condition...slope...point...line

      I'm pretty sure he was making a joke.

    6. Re:It will limit you by Miseph · · Score: 1

      Because the kind, generous people who have been helpfully cutting you student loan checks for the past 8 years are starting to get sick of your bullshit, that's why.

      If you're independently wealthy and have no need for something so banal as a job to pay the bills, then you're right, studying forever so you can simply learn everything there is to know is an excellent course of action.

      --
      Try not to take me more seriously than I take myself.
    7. Re:It will limit you by mike4ty4 · · Score: 1

      "The only time it's really appropriate to stop learning is when you're dead." I suspect they mean "when can we stop doing 10 hours of schoolwork every day".

  6. YES by Anonymous Coward · · Score: 0

    .. especially if you want to do game development. Game development is VERY math heavy.

    Computer Science is a mathematics discipline. The more math you take, the more your brain will be trained in the logic, reasoning and other skills necessary to be a good software engineer.

    If all you desire is to be a code monkey, do CIS.

    1. Re:Yes by Nugoo · · Score: 3, Insightful

      Agreed. Any graphics engine uses a ton of linear algebra under the hood, so you'll need that if you ever want to modify one or write your own. Also, if you want to do any kind of physics simulation (which you probably will, if you're doing games), you may need calculus (but maybe not, since video games fake as much as they can get away with).

      --
      I explicitly release the above into the public domain.
    2. Re:Yes by djdanlib · · Score: 3, Insightful

      Also, you'll never be able to verify that your algorithm is working by manually processing sample inputs. That's a tremendously useful ability to have. See the following thought process:

      >> "See if I give it A, it should give B, but instead it gives C"

      >> "Let me try it by hand"

      >> "My algorithm is wrong" or "My implementation of the algorithm is wrong" or "I'm using the wrong algorithm to solve this problem" (knowing the difference saves you notable amounts of time)

      >> "I now have an understanding of the actual problem and can solve it"

    3. Re:Yes by Nugoo · · Score: 1

      That's a good point. A lot of math in computer science is used behind-the-scenes, so to speak. It doesn't show up directly in the algorithms, but it's used to show that an algorithm is correct, or that one algorithm is faster than another, or that an algorithm cannot take more than so long, or that an algorithm will take so long on average.

      --
      I explicitly release the above into the public domain.
    4. Re:Yes by careysub · · Score: 1

      Absolutely. You always need a math background at least a bit deeper than what you actually use in practice, so that you really understand what you are doing.

      Discrete math and statistics are essential. I would never hire a software developer who did not have a good understanding of algorithm analysis (time complexity, etc.) and any kind of technical field calls for literacy in statistics if you are any good.

      You will never solve a calculus problem on a software job, unless in a scientific field, but the discrete analog of calculus is called for not infrequently, and so you need to understand what it is you are writing the analog of.

      Partly it is a matter of how broad a career you want, how many career options you would like to have, and how high you want to rise in technology (as opposed to management). I am at the top level of my profession as a software/enterprise architect/development lead and I could not have gotten there without a solid, broad math background.

      --
      Starships were meant to fly, Hands up and touch the sky - Nicky Minaj
    5. Re:Yes by Anonymous Coward · · Score: 0

      If you want to work on interesting problems you will need math. At some point the algorithms just become black magic if you don't understand the mathematical underpinnings. Also, if you don't understand the algorithm, you'll never be able to know when it isn't well suited to your task.

      Worse that that, you won't understand when the implementation of the algorithm is giving you bad results (code has bugs after all) or you've exceeded the limits of validity for the implementation you're using. Much like those people who drive into a ditch just because their GPS tells them there's supposed to be a road there.

    6. Re:Yes by bladesinger · · Score: 1

      The above poster is correct.

      Please do not listen to anyone here telling you that you do not need *any* knowledge of mathematics to be a programmer. Critically, you should have knowledge of a branch of mathematics known as discrete math. Discrete math includes everything from probability theory to advanced algorithms. Knowledge of algorithms is extremely important. If you do not know anything about algorithms, chances are you will have a hard time advancing your career. You can always learn on the job, but it is a subject you should start learning immediately if that is the path you want to go down.

      The misunderstanding here is the question: Do I need a Computer Science degree to become a Software Engineer?

      The answer is no, but- it helps a lot.

      Additionally, if you plan on doing graphics and/or physics engine work as a game designer, you need more than discrete math and you should also be versed in multivariable calculus and linear algebra. The theory of computer graphics (cameras, rotations, and all that) is grounded in those branches.

      You also implicitly ask a question: which degree is better for me, being interested in OGRE and Unity3D? And I'd say the answer is Computer Science. There are excellent game design programs but if you're interested in engines you are better off with a computer science degree. Many schools have clubs where you could contribute to those projects with other students on your own time.

  7. You should learn discrete math by Anonymous Coward · · Score: 0

    So that you can have a better understanding of algorithms and recurrences

  8. Mostly just discrete math by Anonymous Coward · · Score: 0

    Basic set theory and some discrete math for writing proofs, that's basically all you need to complete a CS curriculum. There is no calculus at all unless you search it out.

    1. Re:Mostly just discrete math by jedidiah · · Score: 1

      One of my mid-level undergrad CS courses was nothing but applied calculus.

      --
      A Pirate and a Puritan look the same on a balance sheet.
  9. Depends whether you include discrete math by MrEricSir · · Score: 4, Interesting

    The only math course in college that I felt applied directly to software engineering was discrete math. It's all about logic, graph theory, etc. and provides the basis for computer science.

    That said, most software doesn't really require calculus, geometry, or even trig. But certain fields (AI comes immediately to mind) require a significant math background.

    --
    There's no -1 for "I don't get it."
    1. Re:Depends whether you include discrete math by AlphaWolf_HK · · Score: 1

      Only non-gaming, non-engineering application I've seen for trig is doing disk parity in RAID arrays.

      --
      Careful with names containing L slashdot.org/~AiphaWolf_HK slashdot.org/~AlphaWoif_HK slashdot.org/~AiphaWoif_HK
    2. Re:Depends whether you include discrete math by FranTaylor · · Score: 1

      Never heard of google earth?

      Never used a sundial?

    3. Re:Depends whether you include discrete math by rrohbeck · · Score: 2

      How is RAID related to trigonometry?

    4. Re:Depends whether you include discrete math by Anonymous Coward · · Score: 0

      and even AI is far more likely to use linear algebra.

    5. Re:Depends whether you include discrete math by Anonymous Coward · · Score: 0

      That said, most software doesn't really require calculus

      That's weird... It seems obvious to me that one must first understand a function, then a function that takes a function as input, before one could be expected to understand how to write a function that takes a function as input, and then outputs yet another function (which may or may not also take a function as input, and output a function).

      Call me skeptical, but I would never trust a computer programmer that said they don't have at least a basic comprehension of calculus.

    6. Re:Depends whether you include discrete math by SGDarkKnight · · Score: 1

      I made a medical robot semi-autonomous in my final robotics project back in my college days. Basically, it was able to teach itself locations, detect objects, determine the shape of the object, determine the best way to pick it up, identify the object and sort it; all using nothing more than simple math. I never needed to go into any advances mathematics to make it all work. I thought I was biting off more than I could chew at the time, but once I found out that simple math was all I needed, the program was simple to write.

      --

      ...A no smoking section in a restaurant is like having a no peeing section in a swimming pool...
    7. Re:Depends whether you include discrete math by QID · · Score: 1

      Calculus has indeed been basically useless for my career so far (5 years doing software engineering), even in school I never used it after I finished calculus courses. Discrete math is definitely useful, but probability and statistics has proven surprisingly useful as well. Any time you're collecting a lot of data and want to analyze the results, which is not uncommon, statistics comes in handy, and a good understanding of probability isn't just useful at work, it's surprisingly good knowledge for life in general.

    8. Re:Depends whether you include discrete math by slew · · Score: 1

      Only non-gaming, non-engineering application I've seen for [trig] is doing disk parity in RAID arrays.

      I don't think that it is fair to say high-school [trig] is used for this. The error "distance" used in typical RAID is only "tangentially" related to what most folks would call trigonometry... ;^)

    9. Re:Depends whether you include discrete math by Anonymous Coward · · Score: 0

      "You, sir, are a monkey! So quit typing and do...do whatever it is monkeys do! Pilot hybrid automobiles and eat bananas! With your monkey reality TV serials."
      -- mcelrath (8027)

    10. Re:Depends whether you include discrete math by fermion · · Score: 1
      The difference is between requires and is extremely helpful. For example, one can code with extremely limited abilities to read and write, but both are extremely helpful skills. It increases the number of different fields one can excel in. MIT seems to me if you want to be a programmer you are either a problem solver or code monkey, and math helps you be the former, though there is nothing wrong with the later.

      The programmern I know who make the most money, we are talking the top 1% type of money, are math people. This, IMHO is simply because so many people are afraid of math and therefore justify their life around math being not very important. I OTOH attribute my reletively casual lifestyle to the ability to do math. it simply makes a difference.

      There has been a few cases in which math has allowed me solve problems that were giving others difficulty. On one project we were working on drawing charts from scratch. The code, several years old, would routines,y break when scaling the axis. It took me a day to debug and a couple to refactor code. Another was retooling a line and needing to create a model for inputs and output costs to determinie which improvements could be justified. This could be done without maths, but was much easier, meaning I had more time for side projects, with it. Then there was all the automation, I.e. robotics, stuff that would have been impossible without it.

      --
      "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
    11. Re:Depends whether you include discrete math by Anonymous Coward · · Score: 0

      My last application had to compute approximate distances between geographical points (i.e. find stuff close to me) using the spherical law of cosines.

      There's probably a ton of other instances where you'd have to use trig. The problem is that even if you mastered trig in high school, the vast majority of us will still be googling for the formula and copying it from wikipedia or wherever we find the it rather than actually figuring it out for ourselves. There's very little need to actually understand the trig you're using.

    12. Re:Depends whether you include discrete math by reiisi · · Score: 1

      Agreed. If you can't handle summing a series, you're going to have a hard time getting the database queries right, and summing a series correctly is already calculus.

      --
      Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
    13. Re:Depends whether you include discrete math by Miseph · · Score: 1

      I would guess and, given my utter lack of experience with coding RAID or even really dealing with hard drives, I would like to emphasize the word "guess," that it is related to the movement of read/write heads.

      Either that or he meant to say calculus.

      --
      Try not to take me more seriously than I take myself.
    14. Re:Depends whether you include discrete math by SlashDev · · Score: 1

      please give an example. Any software that provides statistics, problem solving, etc.. can make great use of higher math, did you know you can solve word problems in complex math equations, fairly easily actually vs writing countless lines of code.

      --

      TOP DSLR Cameras Reviews of the top DSLRs
    15. Re:Depends whether you include discrete math by MrEricSir · · Score: 1

      That's weird... It seems obvious to me that one must first understand a function, then a function that takes a function as input, before one could be expected to understand how to write a function that takes a function as input, and then outputs yet another function (which may or may not also take a function as input, and output a function).

      Sort of like how you have to have a degree in physics to drive a car, right?

      --
      There's no -1 for "I don't get it."
    16. Re:Depends whether you include discrete math by Anonymous Coward · · Score: 0

      * discrete math: for organization and logic. You use it to create and understand the structure of programs themselves.
      * calculus: for the real world. Anything you do related to the continuous variables is going to require calculus.
      * geometry: data display (games) want a lot of this.
      * trigonometry: for simulations you use it a lot.

      But there are a lot more fields in mathematics, and many apply to computers too. Formal Languages, Group Theory, Combinatorics, Statistics... you name it.

    17. Re:Depends whether you include discrete math by tehcyder · · Score: 1

      But certain fields (AI comes immediately to mind) require a significant math background.

      I thought most AI research required a background in wishful thinking?

      --
      To have a right to do a thing is not at all the same as to be right in doing it
  10. Comment removed by account_deleted · · Score: 5, Insightful

    Comment removed based on user account deletion

  11. graphics programming uses math extensively by parshimers · · Score: 5, Insightful

    go google quaternions, or rotation matricies
    properly understanding these sort of techniques that are used widely in 3D programming applications without having knowledge of linear algebra is damned near impossible

    1. Re:graphics programming uses math extensively by Anonymous Coward · · Score: 0

      Understanding quaternions is damned near impossible. Using them it fairly easy.
      Calculus is needed for physics. FYI.

      I guess I'm in an interesting boat. I do 6 degree of freedom guided airframe simulations. So I use all sorts of control theory which is based on calculus.

      YMMV

    2. Re:graphics programming uses math extensively by Anonymous Coward · · Score: 0

      Even better, check out Geometric Algebra, without which quaternions are just plucked out of thin air, with no idea where the rules come from.

  12. Study math by Anonymous Coward · · Score: 5, Insightful

    It doesn't matter if you use it in practice. You'll learn to think critically to solve abstract problems. Don't buy into the hype that you don't need math.

    1. Re:Study math by fustakrakich · · Score: 1

      Don't buy into the hype that you don't need math.

      Ignorance is strength!

      --
      “He’s not deformed, he’s just drunk!”
    2. Re:Study math by Tweezak · · Score: 1

      Indeed. Calculus is often the first hard math that takes time to solve. In addition to teaching problem solving skills it weeds out a lot of people who just won't grind through the pain. They give up too easily and in my opinion aren't cut out to be engineers/scientists/programmers, etc. Problem solving is hard...if you don't have the determination to get through a fairly complex math problem then you probably should consider other career choices.

    3. Re:Study math by n7ytd · · Score: 1

      Yes. More than anything, to be prepared for your future you need to know how to learn things. When faced with a problem, you can only solve it with the knowledge you have. The more knowledge you have, the better your options to adapt and lead those who do not.

      Math was never my favorite or best subject, but along the way to the degree I wanted (Electrical Engineering) I had to take enough math classes that I found myself just one class shy of qualifying as well for a minor in Mathematics. Since then, I can count on one hand the times in my career I've needed to use more than the Algebra that I learned in high school, but in those few instances it's been quite handy knowing how to do a bit more.

      "That which we persist in doing becomes easier - not that the nature of the task has changed, but our ability to do has increased." --Ralph Waldo Emerson

      Think of your English classes. You probably won't need to quote Shakespeare or spell obscure words perfectly each day of your life. We learn those things because after your formal education, most people find a comfort zone in their day to day lives that is less than their absolute best. Most people get along just fine day-to-day using only a vocabulary of only 300-400 words, but on certain occasions having that expanded vocabulary available to draw on is important when an idea just can't be expressed any other way.

      Someone who bench presses 300 pounds regularly will have no problem benching 200 any time. Someone who gave up training being satisfied with being able to push up 200 pounds once will struggle with it every time.

      Only super geniuses work at their peak all the time, so for the rest of us chugging along at 70% effort, our best chance for success is to peak as high as possible so that our everyday performance is good, too.

      If you're satisfied with the level of math that you know, push yourself one level more. You've got to be in school all day anyway, right? Might as well make it worthwhile. You can be bored in class going through the motions on things you find easy, or you could challenge yourself by doing something new. You'll never again have the chance to do that for free. As a bonus, my experience in high school was that the classes where the students had to choose and strive to be there were also more enjoyable because of the attitudes of both the class and teacher.

    4. Re:Study math by tehcyder · · Score: 1

      It doesn't matter if you use it in practice. You'll learn to think critically to solve abstract problems. Don't buy into the hype that you don't need math.

      It is not only mathematicians who can think critically. A lawyer, civil engineer or army officer has the same need for critical thinking to solve problems.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
  13. Instead of calculus by Skapare · · Score: 2, Informative

    Calculus is virtually unused in computers. It was designed as a shorthand for a world that didn't have computers. What you need to be learning instead is Linear Algebra.

    --
    now we need to go OSS in diesel cars
    1. Re:Instead of calculus by White+Flame · · Score: 4, Insightful

      Calculus is pretty much a modeling language when it comes to programming, not an implementation language. When it's appropriate, calculus is generally done outside of the program implementation, its output being the algorithmic shortcuts and validations that you can rely on when writing the actual code.

    2. Re:Instead of calculus by tazan · · Score: 1

      I wish I had taken a statistics course and some accounting courses instead of all the calculus that I've never once used. I suspect most programming jobs are like that.

    3. Re:Instead of calculus by Anonymous Coward · · Score: 4, Insightful

      This is completely backwards.

      Calculus is used to describe nature in the most fundamental way. Computers simply work with approximations to nature that are reasonable for most types of predictions.

      So computers are the ones using a shortcut that is faster. Finding analytic solutions to differential equations is the most fundamental way of understanding nature that we have in science, but this is often much more difficult than using a numerical approach with a computer.

      In any case, most people need to learn the full way of doing things (ie the typical calculus way) before they can move on to shortcuts that may be faster.

    4. Re:Instead of calculus by Anonymous Coward · · Score: 0

      Meh, I don't agree. You definitely need linear algebra for handling things like matrices and the various algorithms involved in operations, but you have to remember that all of those interesting linear algebra (i.e., digital) representations of physics equations, etc. all came initially from the world without computers. Short of quantum mechanics, the classical world is analog, so to do anything interesting in simulating the analog world on digital computers, you need a good grasp of both calculus and linear algebra, and then maybe a computational engineering course to learn how to get from one to the other.

    5. Re:Instead of calculus by Princeofcups · · Score: 1

      Calculus is virtually unused in computers. It was designed as a shorthand for a world that didn't have computers. What you need to be learning instead is Linear Algebra.

      Agreed that it is not used practically, but it is very useful to understand calculus. There are many situations where the intuitive understanding of differentials can be useful. For example, the difference between location, velocity, acceleration, and the change in acceleration.

      --
      The only thing worse than a Democrat is a Republican.
    6. Re:Instead of calculus by Frequency+Domain · · Score: 1

      I agree that Calculus is not directly useful in CS, but disagree about linear algebra being the go-to tool. Anybody who wants to do computer science should be learning discrete math.

    7. Re:Instead of calculus by FranTaylor · · Score: 1

      Calculus is virtually unused in computers. It was designed as a shorthand for a world that didn't have computers. What you need to be learning instead is Linear Algebra.

      Linear algebra is mostly unused in computers, too. Computers are executing pre-computed formulas. What you really need to know is floating point analysis.

    8. Re:Instead of calculus by Frequency+Domain · · Score: 3, Insightful

      You need calculus to actually understand statistics for continuous random variables.

    9. Re:Instead of calculus by DarthVain · · Score: 1

      Blah.

      I took Linear Algebra and I don't see how it relates to anything really. Ditto with Calculus, though yes technically optimization and such could fall into that, however I never think to myself, "gee I'm using calculus", I am simply optimizing.

      I did take Binary Algebra which would seem to lend itself to CS, but unless you are working with low level hardware design, I don't see it...

      I think my two bits of crappy advice would be to look at where you want to go to school, see what their requirements are for math, and take those. Extra credit if you can use the credit in university and then take something interesting, or that has a cute chick in it that you like or something. At the very least it will allow you to get a better mark than you might normally get which may help down the road. The second bit is know what math might be required for your field of study. From my perspective geometry and statistics are much more useful (GIS and such). As for gaming, I have no idea. Considering what I have heard your best training would be to get a job getting paid less, and working longer hours than your peers, with no job security. I hear it is a very high demand field (who doesn't want to design games), so lots of compitition for few jobs. I would look at seconday skills. Like if you plan on doing programing for the space industry, get some physics, if you are going to code for industry some CNC, for gaming, something like artwork might be worthwhile.

    10. Re:Instead of calculus by Anonymous Coward · · Score: 0

      You can't get to the formulas necessary to write the program without the calculus.

      When I took Differential Equations the instructor put it to me this way:

      "Differential equations feels and operates as if it were designed by engineers, not mathematicians. They are techniques necessary for solving engineering problems."

    11. Re:Instead of calculus by Anonymous Coward · · Score: 0

      Oh. Gee. Then I wasted my time learning sampling based approximations of multivariate integrals so that I could write global illumination algorithms.

      It was useless to learn ODE (Ordinary _Differential_ Equation) techniques to solve pursuit problems, and I should not worry that I never got to implement my ideas for global physics and fluid simulations because I skipped vector calculus and found the course I took on modern PDE techniques in grad school to be beyond my ken.

      You really need to understand calculus and linear algebra if you want to model and simulate the real world. You need to understand it at a fairly high level if you want to do it well. You need to learn discrete numerical methods to implement those techniques on a computer. Anything less and you don't know what you're doing.

    12. Re:Instead of calculus by Anonymous Coward · · Score: 0

      Sorry, I have to call bullshit on this. You need calculus for things as seemingly trivial as "pointing an Asteroids-style spaceship with a limited angular acceleration toward a desired angle". And well, control theory is used pretty much everywhere and you need calculus to understand it.

    13. Re:Instead of calculus by careysub · · Score: 1

      The discrete analog of calculus is not uncommon, and you need to understand what it represents to use it correctly.

      --
      Starships were meant to fly, Hands up and touch the sky - Nicky Minaj
    14. Re:Instead of calculus by careysub · · Score: 1

      Excellent point.

      --
      Starships were meant to fly, Hands up and touch the sky - Nicky Minaj
    15. Re:Instead of calculus by Anonymous Coward · · Score: 0

      Data Servers are useless. You can't play games on them. They relate to nothing at all in the real world.

      That's equivalent in stupidity to what you said.

    16. Re:Instead of calculus by Anonymous Coward · · Score: 0

      Seriously, you are a goddamned idiot. Don't talk about shit you don't know. If you are going to do ANY engineering programming of any significance, you WILL need to understand linear algebra. Absolutely. AND calculus.

      Go fuck yourself, you arrogant, stupid bastard.

    17. Re:Instead of calculus by ceoyoyo · · Score: 1

      Nonsense. You may seldom actually program something that depends directly on continuous calculus, but computing is founded on it's cousin, discrete calculus. New algorithms are also frequently expressed in continuous math and translating them into discrete math for implementation is an art in itself. Actual computers (and the networks that connect them) are, of course, electrical, and depend heavily on calculus.

    18. Re:Instead of calculus by amirishere · · Score: 0

      Even better than linear algebra is probability theory and statistics. This has applications in Gui design, databases, ... I can't think of any more applications, but I am sure it is more useful than Linear Algebra. :) We don't do as much optimization or linear algebra in our work as the amount of time we spend deciding between two or more choices. Also probability theory and statistics is something that we can use everyday.

    19. Re:Instead of calculus by Anonymous Coward · · Score: 0

      How this statement got 5 (informative) is beyond me. It couldn't be more wrong!! Calculus is used very extensively in computers every day. Let's take design software: computing surface areas and volumes use Riemann sums. Ever looked at Cubic splines or Bezier curves in drawing programs? Newton's method is used in almost any Finance software out there. Photoshop is packed with numerical algorithms that are based on Calculus. How do you think color gradients are computed? Surface detections? Simulations that run on the largest computer clouds solve PDE's. Please do your homework before you make such ridiculous statements!

    20. Re:Instead of calculus by Anonymous Coward · · Score: 0

      Well, the reason they teach continuous calculus to programmers is because people like you would probably be a bit upset if you had to take discrete exterior calculus on day one. You need the calculus, and making it discrete doesn't make it easier.

    21. Re:Instead of calculus by Anonymous Coward · · Score: 0

      You Mean Calculus is virtually unused in WWW computers.
      Computers where developed to do math. Babbage for sine tables. The U.S.A. for Artillery tables, That would be Physics 1.
      Computer Simulations? That is all math. Random Numbers? The formulas to test your random numbers.
      Then there is embedded computers. Oscilloscopes? Math, and Then would you like an FFT with that? Motor control, P-I-D ( Proportional, Integral, Differential) controller. A Common way to go. Calibration, That's Y=mX+b. What it is non linear? Piecewise approximation, Or some curve fitting.

      Yes many computer jobs require just simple math. Plenty require more. So as a student, which one will you get after graduation?
      Plus look where the computer department sits at your school, Math Dept, or Science Dept?you take it along with all the liberal arts that can not be of any possible use. So yes take it and hope it was not a waste of time. You never know what you will need in the future.

    22. Re:Instead of calculus by 91degrees · · Score: 1

      True, but I do find that having the mindset that you're dealing with calculus, or at least a related problem space can be quite useful for conceptualising what you're doing.

    23. Re:Instead of calculus by ImprovOmega · · Score: 1

      And boolean algebra. I would argue that if you don't have a fundamental understanding of boolean algebra then you really have no business coding (at least, anything serious).

  14. Mostly Yes by Anonymous Coward · · Score: 0

    Depending on what sort of programming you end up doing, you'll likely use some higher math. I've used linear algebra for some graphics works and stats for a whole bunch of stuff. Haven't had occasion to use much calculus though. It's worth learning to keep your options open for sure.

  15. Must read more carefully by _DangerousDwarf · · Score: 1

    I clicked because I thought the topic was "Ask Slashdot: How Many of You Actually Use Meth?" I was looking for a support group :(

    1. Re:Must read more carefully by skids · · Score: 1

      Sorry, this thread is for higher order meth users only.

    2. Re:Must read more carefully by formfeed · · Score: 1

      Judging by the comments, you are not the only programmer who doesn't know the difference between Mathlab and a Methlab.

  16. Logic by Anonymous Coward · · Score: 0

    I think learning higher level math helped me learn the logic necessary to do my job. I don't ever use the higher level math, but the logic required to do such math is invaluable. I'm not saying you need it to write code well, but I think it helped me.

  17. Short answer by Anonymous Coward · · Score: 3, Insightful

    Others do what they can, mathematicians do what they want.

  18. What a piece of work is man... by Impy+the+Impiuos+Imp · · Score: 5, Insightful

    You are probably not gonna use what you learned in Huckleberry Finn or History, either.

    There's a reason these are taught, and it's not all about pure facts.

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    1. Re:What a piece of work is man... by Spritzer · · Score: 2

      True. It's about revenue.

    2. Re:What a piece of work is man... by Anonymous Coward · · Score: 0

      Mark Twain is famously quoted as saying, "I never let my schooling get in the way of my education." Those are some words to live by.

    3. Re:What a piece of work is man... by Anonymous Coward · · Score: 0

      You are probably not gonna use what you learned in Huckleberry Finn or History, either.

      There's a reason these are taught, and it's not all about pure facts.

      In fact, Huckleberry Finn teaches you that it is perfectly acceptable to call somebody a ni**er.

    4. Re:What a piece of work is man... by Anonymous Coward · · Score: 0

      You are probably not gonna use what you learned in Huckleberry Finn or History, either.

      There's a reason these are taught, and it's not all about pure facts.

      By way of analogy...

      I'm a fiction writer. Learning about history has broadened my perception of how mankind interacts on both an individual and state level. It's given me a deeper understand of human nature, which allows me to write better, more realistic fiction. I simply think differently now than I did before I took those courses.

      Likewise, you may not use calculus directly in your programs, but calculus will help you think about your algorithms differently and find better ways to write your code.

    5. Re:What a piece of work is man... by roman_mir · · Score: 1

      No, in fact Huckleberry Finn teaches you that society will condescend to a person it doesn't like that much, call him a nigger, while the society will kiss ass of the most rotten individuals, who pass for 'gentlemen'.

      The Nigger in question was the only honest and honourable person in the book (not counting Finn).

    6. Re:What a piece of work is man... by Anonymous Coward · · Score: 0

      No, in fact Huckleberry Finn teaches you that society will condescend to a person it doesn't like that much, call him a nigger, while the society will kiss ass of the most rotten individuals, who pass for 'gentlemen'.

      The Nigger in question was the only honest and honourable person in the book (not counting Finn).

      Which is to say, HF is a slam on capitalism

      The gentlemen - business owners and job creators who produce things that keep society going - are depicted as "rotten individuals" while Finn - a jobless unproductive leech - is depicted as the hero of the story

    7. Re:What a piece of work is man... by tehcyder · · Score: 1

      True. It's about revenue.

      You are a moron. Any proper degree teaches you how to think for yourself, irrespective of subject. The idea that a university is just there to train people to get better paid jobs (and earn money for itself) is frankly juvenile.

      If you're an English or Fine Art lecturer, you know that 99% of your students aren't going to get jobs having anything to do with English or Fine Art..But that's not the point.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    8. Re:What a piece of work is man... by Spritzer · · Score: 1

      You, sir, are the moron if you truly believe that you need any of the following in order to learn "how to think for yourself" while in pursuit of any degree.

      FILM 1005(Intro to Film)
      GEOG 1101(Human Geography)
      SOCI(1101(Intro to Sociology)
      ARTS 1100(Art Appreciation)

      Perhaps YOU needed classes such as these to teach YOU to think for yourself. The majority of the rest of us around here are intelligent enough to have gained that basic skill well before college and to have further developed it without the need for art appreciation classes.

    9. Re:What a piece of work is man... by TemporalBeing · · Score: 1

      You, sir, are the moron if you truly believe that you need any of the following in order to learn "how to think for yourself" while in pursuit of any degree.

      It all depends on your perspective...and the professor...
      <sarcasm>

      FILM 1005(Intro to Film)

      Oh, so that's how I make a YouTube video...

      GEOG 1101(Human Geography)

      To my ancestor lived where?

      SOCI(1101(Intro to Sociology)

      Now you're telling me I need to be a communist...no, wait...a Capitalist?...wait...what was that again I'm a racist, bigot, and sexist because I don't agree with you?

      ARTS 1100(Art Appreciation)

      That's for the Picaso, and yes, I like those models too...but did you really have to do that with the replica of Michaelango's David? It may be anatomically cororect, but we didn't need to see that.
      </sarcasm>

      Perhaps YOU needed classes such as these to teach YOU to think for yourself. The majority of the rest of us around here are intelligent enough to have gained that basic skill well before college and to have further developed it without the need for art appreciation classes.

      Well, they can be quite entertaining, no?

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    10. Re:What a piece of work is man... by Anonymous Coward · · Score: 0

      That's half right. You are going to use what you learned in Huckleberry Finn or History, but that's because you (are supposed to) learn more than just pure facts, which as you said is why these are taught.

  19. Very little, frankly. by gestalt_n_pepper · · Score: 1

    Once I had to program a cursor to move diagonally across a window. While unchallenging, it was probably the pinnacle of my mathematics programming. Sometimes I have to remember to divide by 1024 instead of 1000. There you have it. Most of my life centers around multiply nested loops peppered with if-then statements plus regular expressions.

    --
    Please do not read this sig. Thank you.
    1. Re:Very little, frankly. by jones_supa · · Score: 1

      Most of my life centers around multiply nested loops peppered with if-then statements plus regular expressions.

      Makes me wonder if exactly some of that stuff could be replaced with some clever math.

    2. Re:Very little, frankly. by nogginthenog · · Score: 2

      Nobody divides by 1024!

    3. Re:Very little, frankly. by gestalt_n_pepper · · Score: 1

      From what I'm reading, I'm thinking you're right.

      --
      Please do not read this sig. Thank you.
    4. Re:Very little, frankly. by Anonymous Coward · · Score: 0

      And I doubt any high school student dreams of having your job.

    5. Re:Very little, frankly. by ciurana · · Score: 1

      Most of my life centers around multiply nested loops peppered with if-then statements plus regular expressions.

      Makes me wonder if exactly some of that stuff could be replaced with some clever math.

      Yup, it could. Geometry FTW!

      --
      http://eugeneciurana.com | http://ciurana.eu
    6. Re:Very little, frankly. by Em+Adespoton · · Score: 1

      Once I had to program a cursor to move diagonally across a window. While unchallenging, it was probably the pinnacle of my mathematics programming. Sometimes I have to remember to divide by 1024 instead of 1000. There you have it. Most of my life centers around multiply nested loops peppered with if-then statements plus regular expressions.

      I take it you didn't program it with a recursive loop defined in some lambda calculus in a LISP statement... that would have made it much easier.

      Of course, with out a solid math background, unerstanding what I just said or what it actually means, beyond lambda constructs and recursive statements being "black boxes" becomes decidedly non-trivial.

      And of course, everyone uses C instead of LISP ;)

    7. Re:Very little, frankly. by Darinbob · · Score: 1

      Makes me wonder if we can eliminate the need for that programmer with an algorithm.

    8. Re:Very little, frankly. by gestalt_n_pepper · · Score: 1

      I take it you didn't program it with a recursive loop defined in some lambda calculus in a LISP statement... that would have made it much easier.
      Oh heavens no. It was more like a recursive macro that terminated when the lower bound of the vertical axis was reached. The only thing "lambda" about it was the fact that I didn't wrap it in a named function so in one sense, the equation was anonymous. Not that I thought about *any* of this at the time. I just needed to get the cursor to do something so we could capture a consistent bitmap, so I hacked together a formula.

      --
      Please do not read this sig. Thank you.
    9. Re:Very little, frankly. by n7ytd · · Score: 1

      Nobody divides by 1024!

      Except those who don't have an understanding of binary numbers (i.e., "math").

  20. Screening by Anonymous Coward · · Score: 0

    I think they say that to keep idiots out of programming... Prime example, Apple developers require no math skills because all their programming is done by clicking on pretty icons that are pre-configured for each function they want to do. Programming for Microsoft requires no skills what so ever, as demonstrated by how well Microsoft programs run.... If you happen to be good at math and interested in programming you may be interested in trying to figure out how to develop a really basic software suite and getting Microsoft or Google to buy you out of it... That may be the best use of your math genius yet...

  21. It depends what you work on by NixieBunny · · Score: 2

    I don't use much math in my work on radio telescopes, which is mostly making gizmos to control physical stuff. Someone else worked out the algorithms long ago, and I do the hardware end of it.

    But I work with coders who have to do some rather intense math to solve problems (mostly coordinate transformations or path generation) that had been solved poorly in the old software.

    --
    The determined Real Programmer can write Fortran programs in any language.
    1. Re:It depends what you work on by Anonymous Coward · · Score: 0

      I'm an astronomer who writes a lot of code to process the data from radio telescopes. When I'm doing something that others have done before, I can apply existing libraries in a monkey-see monkey-do approach - but when something goes wrong, or I'm trying something new, I need to get deep into the maths. Coordinate transformations are there, but only a small part of it: mostly it's about knowing Fourier transforms really, really well, and occasionally non-linear methods (for deconvolution, etc.). And even when everything goes right, you need to know a fair bit of statistics to understand the significance of your results.

    2. Re:It depends what you work on by Anonymous Coward · · Score: 0

      You're probably only a few metres away from some very hefty signal processing hardware. Audio and video processing is probably the source of some of the most obtuse mathematics on the planet. Not understanding the maths results in really poor audio amps and nasty-looking video processing.

  22. Problem Solving by MatrixCubed · · Score: 5, Informative

    While programming is not necessarily math-heavy, mathematics gives you experience with problem solving, sometimes in unconventional ways. It's really the only technical problem-solving you do in school, and it's an important learning step, for what it teaches indirectly as well as what it teaches directly.

  23. All the time by Anonymous Coward · · Score: 0

    If doing fourier transforms isn't math, I don't know what is

    1. Re:All the time by 91degrees · · Score: 1

      You don't know what mathematics is then.

      A fourier transform is just a tool. Mathematics is understanding what the data is and what operations you need to get the information you want.

  24. Concepts versus skills by addie · · Score: 5, Insightful

    It's not necessarily the actual math skills that are important - it's the understanding of the concepts behind it that will increase your understanding of any kind of process, job, or task - programming being one of them. Knowing what the area under a curve means is probably more important than knowing how to calculate it.

    I don't use calculus or any kind of advanced algebra in my day to day work (in communications, far from programming) but I'm sure glad that I understand the basic concepts, thanks to a first degree in engineering.

    1. Re:Concepts versus skills by CityZen · · Score: 2

      I second this. While actually having to perform calculus might be a rarity in daily life, understanding concepts like the rate of change and integration often come in handy when solving problems. Heck, just knowing the difference between a linear function and an exponential one should be important to anyone who thinks about using a credit card or saving money.

    2. Re:Concepts versus skills by Darinbob · · Score: 1

      I don't need to take English classes, I was born knowing English.
      I don't need to take arithmetic, we have calculators.
      I don't need to learn history, I have wikipedia and politicians who can tell me how to vote.
      I don't need to learn science, it keeps changing all the time anyway.
      I don't need to learn how to write, I can just talk into my smart phone.

      In fact I think I don't need to learn anything! Real world, here I come!

  25. Thinking differently by ubergeek65536 · · Score: 3, Interesting

    Although you might not use a lot of advanced math learning it changes how you solve problems. I found it abstract algebra and formal logic the most useful.

    1. Re:Thinking differently by hendrikboom · · Score: 1

      In many ways, programming is applied formal logic.

  26. Mathematical maturity by billakay · · Score: 2

    If you really want to get into game programming, the advanced math will be your friend. Supposedly even some ancient (and infurating) concepts like quaternions are coming back in computer graphics. For anything else, it still isn't going to be a waste of time. The analytical skills and "mathematical maturity" obtained by taking a good calculus course (and actually applying yourself rather than just trying to pass) will go way further than the actual calculus will for most people.

    1. Re:Mathematical maturity by Tough+Love · · Score: 2

      Supposedly even some ancient (and infurating) concepts like quaternions are coming back in computer graphics.

      Quaternions absolutely dominate game programming. However, the vast majority of game programmers do not understand quaternions, they know about quaternions. There's a difference. For example, they may be able to program an interpolation or quaternion additions using the library API but not have any clue how to write or debug the library functions. For most game programmers, quaternions are just a temporary representation for an expression or two, and the quaternion expressions are sandwiched between matrix operations with incoming and outgoing conversions. Usually, the result is quite disgustingly inefficient compared to actually understanding quaternions, thus being able to minimize the conversions between matrices, quaternions, Euler angles and so on.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
  27. Occasionally by Anonymous Coward · · Score: 1

    I work on a 3d modeling package, I'd say math is a very occasional thing. And then it's not math, it's math concepts. And it's trig + matrix math. The vast majority of the time you use the pre-existing methods other people have created and there's no need to understand what they do. The best way to learn that sort of math would probably be to go and buy a book on 3d game programming and work your way through it.

    And the vast majority of the programming you do has nothing at all to do with math. Which is good, because I struggled with math.

  28. Data Mining/Big Data/Machine Learning.... by swframe · · Score: 2

    Checkout ai-class.com to see some of the ways in which Math gets used in computer science. That class touches on just a few topics and doesn't go very deep. When you work in the machine learning field, there is a lot more math that you'll find helpful.

    1. Re:Data Mining/Big Data/Machine Learning.... by mugurel · · Score: 1

      I second this. Working in a research area that involves machine learning, I can say that it's *very* useful to be familiar with linear algebra and calculus. I wish I had taken more of that stuff when studying.

    2. Re:Data Mining/Big Data/Machine Learning.... by Anonymous Coward · · Score: 0

      There's no math explained in ai-class. All there is is "mathematicians have come up with this formula, now let's apply it".

  29. If you want to write games, you need calculus by damn_registrars · · Score: 4, Insightful

    Realistic physics requires it. On top of that, the more math you learn before entering the field, the more opportunities will be available to you as a programmer. Don't cripple yourself while you're still young.

    --
    Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
    1. Re:If you want to write games, you need calculus by Baby+Duck · · Score: 2

      All of the Halo games were among the most successful entertainment products of all time -- at the time they were released. Most of the physics was handled by a blackbox physics engine they bought from another company. That's why they couldn't fix the jump hacks in Halo 2 ... the glitch was in the physics engine that spared Bungie needing any advanced math to make great games. It was more economical for them to enjoy their ignorance and let the glitch stand.

      A lot of game compamies do this. Just buy the latest Quake/Unreal/Serious engine and get on with your game.

      --

      "Love heals scars love left." -- Henry Rollins

    2. Re:If you want to write games, you need calculus by safetyinnumbers · · Score: 1

      Not just full physics simulations, even something simple like a bouncing ball. Or you need an npc to throw a projectile so that it hits you, smoothly rotate a camera to aim at something, find the closest point on a path to your current position....

    3. Re:If you want to write games, you need calculus by damn_registrars · · Score: 1

      All of the Halo games were among the most successful entertainment products of all time -- at the time they were released. Most of the physics was handled by a blackbox physics engine they bought from another company. That's why they couldn't fix the jump hacks in Halo 2 ... the glitch was in the physics engine that spared Bungie needing any advanced math to make great games. It was more economical for them to enjoy their ignorance and let the glitch stand.

      A lot of game compamies do this. Just buy the latest Quake/Unreal/Serious engine and get on with your game.

      To me that sounds like a great argument in favor of learning calculus, so that you can avoid that pitfall.

      --
      Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
    4. Re:If you want to write games, you need calculus by igny · · Score: 1

      Truly realistic physics requires quantum and relativity theories too.

      --
      In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
    5. Re:If you want to write games, you need calculus by muridae · · Score: 1

      The author mentioned using Unity, I would suppose for game development. No physics is required to do basic physics in that engine, everything is built into the engine by default. Tell it what direction gravity is, and it handles the rest. Now if the author is comfortable doing drag-and-drop development, and never touching the code behind the scenes, they could still do game development without ever needing calculus.

  30. Yes it helps by Anonymous Coward · · Score: 0

    I have had to dust off trig for programming biz apps, such as location searches. (Remember the earth is not flat)
    I have needed some stats for modeling. Did I need calculus??? Its hard to say, I think having a couple semesters helps with stats and understanding trig. Although it did make me have a health hate for Newton.
    I would say:
    Trig
    Differ and Integral Calculus
    Stats Class
    Discete Math
    Linear Algebra (For graphics)

  31. Better question by need4mospd · · Score: 5, Insightful

    How many of you use the problem solving skills that were developed in math class? I may not use math everyday, but I certainly solve complex problems that I'm sure others with less math education would struggle to solve.

    1. Re:Better question by Anonymous Coward · · Score: 1

      How many of you use the problem solving skills that were developed in math class? I may not use math everyday, but I certainly solve complex problems that I'm sure others with less math education would struggle to solve.

      I would also add that solving and understanding difficult math problems helps you exercise perseverance which really helps on the non-trivial challenges in life.

    2. Re:Better question by Anonymous Coward · · Score: 0

      I can say as someone that doesn't have a strong math background, that I wish I had taken more math classes for this very reason. Rarely do I see difficult math problems at my job, but I have seen many scenarios where someone with a stronger background in math and computer science is able to see a simple solution managing complexity where I'm stuck.

      If you don't really care to be a "great" programmer, then you'll be fine without much math. For me personally, I look back at my education as a missed opportunity as learning math and stats after the fact is not trivial.

    3. Re:Better question by Em+Adespoton · · Score: 1

      How many of you use the problem solving skills that were developed in math class? I may not use math everyday, but I certainly solve complex problems that I'm sure others with less math education would struggle to solve.

      I would also add that solving and understanding difficult math problems helps you exercise perseverance which really helps on the non-trivial challenges in life.

      I'll add that learning to show all your work and keep a log book also comes in handy, no matter what desk job you end up with.

    4. Re:Better question by Anonymous Coward · · Score: 0

      Can I get in on this circle jerk?

  32. Depends by bigredswitch · · Score: 1

    It depends on what you want to do. Here's a simple example: if you want to write games with Unity then basic maths will see you just fine, but if you wanted to write your own competitor to Unity, then you'd need a higher level of maths. Same applies to OGRE, and Bullet, and... the list goes on.

    --
    After about three months of relentless Willy action I reckon I'm now as good as when I was 10.
  33. I extensively use advanced math. by Anonymous Coward · · Score: 0

    I work with data acquisition and signal processing, and yes, we absolutely use a lot of math. We use advanced calculus, and DSP tools and all sorts of other things.

    Yes, there are computer tools that do much of the heavy-lifting and heavy-thinking for us, but without the foundational math, we would not understand what the tools are actually doing.

    Also, I've found that the types of engineering jobs which require more math generally get paid more.
    Compare for instance, the average salaries of video game software devs to DSP experts to physicists designing new transistors.

  34. Logic is Math by Hatta · · Score: 4, Insightful

    Logic is math, and EVERYONE needs logic.

    Even if you never write a proof or solve an integral in your working life, it's important to understand how math works. Life, all of it, is one big word problem. If you don't have a basic understanding for the mathematical nature of the universe, you're simply not going to be able to navigate it as well. If you don't understand how mathematical arguments work, you won't be able to offer useful opinions on the matters of the day.

    I'm not sure that everyone needs to know calculus, but everyone needs to know what calculus is and what it's used for. Everyone needs to be numerate.

    --
    Give me Classic Slashdot or give me death!
    1. Re:Logic is Math by djdanlib · · Score: 1

      That's a really interesting thing to say. It's hugely abstract. So much so that at first, my reaction was akin to "check out this guy slashdottin' from the looney bin" but upon further reflection, it gets really deep and is actually quite intelligent. Well done.

    2. Re:Logic is Math by Hatta · · Score: 1

      Thanks. With that said, I do think we need to reapproach how math is taught. Understanding the why is more important than understanding the how. I'm not exactly sure how to do that though.

      --
      Give me Classic Slashdot or give me death!
    3. Re:Logic is Math by dkf · · Score: 1

      Logic is math, and EVERYONE needs logic.

      Serious logicians say that math is a branch of logic (just like physics is a branch of math, chemistry a branch of physics, etc.) Serious philosophers say that logic is a branch of their discipline. Myself, I recommend math in school because it helps you think in an organized way, and that's ever so useful whatever you're doing with your life.

      Well, unless your life plan is to sit around at home in your underpants eating cold instant ramen while watching Star Trek marathons.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    4. Re:Logic is Math by Anonymous Coward · · Score: 0

      Tell that to my Girlfriend. When I tell her how illogical she is being... Nothing good happens.

  35. The more math you learn, the more tools you have by Anonymous Coward · · Score: 0

    The more math you learn, the more tools you have with which to approach solving life's problems (and programming too). Why would you want anything less than a full toolkit? Learn all the math you can, it will serve you well as a programmer.

  36. If you don't know any math... by John+Hasler · · Score: 2

    ...then you certainly won't use any. If you do know some and are comfortable with it you will find many uses. On the other hand if you struggle resentfully through the minimum required math certain that you will find no use for it, you will be right.

    --
    Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
  37. I use it when ... by smooth+wombat · · Score: 1

    I use the phrase, "If I had a dime for every time these morons keep asking the same question." I keep adding up how much money I would have if I did charge a dime per dumb question.

    --
    We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
  38. Don't restrict yourself by Anonymous Coward · · Score: 0

    I personally use advanced math (well beyond simple calculus) every single day.

    Sure, most programming jobs (or jobs in general) don't require nearly that much math. However, I have access to many jobs that are simply not available to most people because of those additional math capabilities. Basically, I am qualified for all the typical jobs that don't require much math, plus a bunch of other jobs. And the kind of jobs that do require lots of math tend to be high paying, highly stable jobs that aren't in danger of getting outsourced to some cheaper guy in India.

    So while you don't need to know lots of math in the strictest sense to be a highly skilled programmer, you are really cutting back your options at a very young age if you blow it off while you are still in your teens. For example, you aren't going to be able to do any kind of physics or engineering based programming if you don't know something about differential equations.

    I also recall seeing a study a while back showing that income was more strongly correlated with mathematical abilities than any other school subject. Maybe that was just some kind of propaganda being passed around my department. But math heavy jobs sure do seem to pay well and be fairly stable.

  39. Most Programming Jobs... by Anonymous Coward · · Score: 0

    90% of programming jobs are business logic for companies to use in order to run or operate services. It nearly never requires any knowledge of math (more often than not the guidelines describing the business logic of the flow are so strict you don't have much freedom in design).

    Among the rest of the programming jobs, you have user-facing applications which, again rarely require anything complicated (they just have to look nice and be stable).

    The principle area where you will need a high degree of math competency is if you are programming/working on model simulators. Representing real life objects, movement, trajectories, 3 dimensional fields, etc, on computers can be incredibly complex.

    Note that this is actually (from my point of view) where the most interesting work actually lies. I personally hate web development and user-facing applications, and business logic can be interesting because it varies greatly depending on what you're working on, but simulators are where the truly ingenious programming is I would say.

    I am, of course, over generalizing, but I think the point is valid.

  40. I misread the headline. by bennomatic · · Score: 5, Funny

    Clearly I've been watching too much Breaking Bad.

    --
    The CB App. What's your 20?
    1. Re:I misread the headline. by ed1park · · Score: 1

      Me too. But it raises a good question. How many people out there use illegal stimulants to help them code?

    2. Re:I misread the headline. by bennomatic · · Score: 1

      ALL OF THEM!! HAHAHAHAH!!!1!

      --
      The CB App. What's your 20?
  41. One data point (me) by ukpyr · · Score: 4, Interesting

    Trig as you already know is great for 3d stuff.

    Calc is great for decision logic and business intelligence

    Stats are great for business intelligence type work

    As someone who did horribly in high school and college math, I did the minimum for my degree. I've retaught myself much of stats and calc because I found them useful in my personal projects. I find them more rewarding now that I have applications to use them in. I was a bad student though early in life. YMMV

    Most of the math in the corporate programming world is really elementary. Basic algebra or less.

    1. Re:One data point (me) by dr_leviathan · · Score: 1

      In my opinion math knowledge definitely comes in handy for understanding the world, but then I trained as a physicist. Studying math (and physics) opens up a whole new area of "metaphor" and language -- an extra set of memes at your disposal, if you will. I agree with most of the summaries above but I would add Linear Algebra to the list:

      Linear Algegra is good for understanding natural phenomena and systems in general.

      My career is more or less "game programmer" so I use a lot of 3D vector math and rotations at work. In my personal day-to-day experience I've used linear algebra only twice (financial estimate and carpentry design), calculus twice (proof of optimal pinewood derby strategy and some other "find the local max/min", the details of which I forget), and algebra and geometry a great deal, monthly if not weekly.

      --
      Religion is poison to rationality, and we lose sight of that at our own peril. -- Lurker2288
    2. Re:One data point (me) by Anonymous Coward · · Score: 0

      Why use trigonometry? It's encoded into vector algebra, which is much easier to use.

    3. Re:One data point (me) by fermion · · Score: 1

      I recall in high school learning basic trig so I could write a video game usinng shape tables. My teacher whose independent stuy course I was Inc was given a significant stipend to write a projectile motion game, also using trig and shape tables.

      --
      "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
    4. Re:One data point (me) by muridae · · Score: 1

      You can do vector math without basic algebra? This sounds very zen, solving for [X,Y,Z] without solving the equation or using real numbers.

    5. Re:One data point (me) by gl4ss · · Score: 1

      I think the argument was more about higher math than that.

      it can be argued fairly easily that you need math when doing anything in kitchen too, but that doesn't take 5 years of university level maths and imaginary numbers.

      --
      world was created 5 seconds before this post as it is.
    6. Re:One data point (me) by Anonymous Coward · · Score: 0

      Until you understand the subject sufficiently to prove the theorems you use from axioms, your understanding is elementary.

  42. now go and make your own game engine by alen · · Score: 1

    making simple games in UNITY doesn't require much math, but doing stuff like creating new engines or modifying the engine like in the AAA titles requires math. or actually creating the engine and coding in NEW FEATURES in for the first time requires math. how do you think all those new features get into UNITY and UNREAL in the first place?

    not like the boxes to add a light source and have it bounce off water appears by magic

  43. Re:Did anyone else ... ? by kelemvor4 · · Score: 1

    Did anyone else read that as 'How many of you Actually use Meth?'

    I did, actually. Not that it's a bad article, but it was a little anticlimactic when I though I was going to read about some doper on here.

  44. Bioinformatics by Fwipp · · Score: 2

    My current job title is "Bioinformatics Analyst," and I need to at least understand a good bit of math that I didn't learn in highschool. While it's rare that I directly need to implement complicated mathematical programs, much of my job involves tuning parameters for specialized software.

    I need to have a good understanding of the changes that are likely to result from adjusting parameters X, Y and Z before I submit a job that takes upwards of a day to complete. To do that, I need to read the papers and understand the algorithms.

  45. You need the byproduct by gilgo_22 · · Score: 2

    You don't really need math. But the thought processes learned through math training are really useful.

  46. Navigation Air and Sea by Anonymous Coward · · Score: 0

    I use more math doing air and sea navigation than almost anywhere in my life. At sea I use a sextant which requires some easy worksheet math and some tables, dead reckoning with the air speed and a stopwatch is used at sea and in the air, also measuring the angle from VOR beacons.
    Otherwise it seems to be figuring out the grocery budget.

  47. If you want to be a well paid game programmer... by Anonymous Coward · · Score: 0

    I'm the CTO of a game studio that makes console and pc games. Multivariable Calculus, diff EQ, and most importantly Linear Algebra all come up on a regular basis- we have our own game engine, so we build the graphics, animation, physics, AI etc libraries that require this stuff. When I'm hiring leads, I look for ones that understand higher math. It's true that you can get by fine as a gameplay programmer without understanding math, but if you want to be an engine programmer, or a lead, then you'd better learn this stuff.

    For what it's worth, learning calculus teaches you a new way of thinking that's valuable in many aspects of programming- not just when writing code that does calc.

  48. Least Squares by DeeEff · · Score: 2

    I use linear algebra and calculus everyday.

    As a geomatics engineer, my programming often involves using and understanding different levels of vector calculus as well as some basic linear algebra.

    By the time I'm 30, I probably won't use it as much. In the meantime, I use it everyday to solve different problems.

  49. Don't limit yourself by BlindRobin · · Score: 1

    Your plans may change, either because your interests change or because of circumstances beyond your control. Also learning higher maths helps your problem solving skills and mental agility. If you dislike educating yourself just for the knowledge or simply want to take the path of least resistance towards what you perceive as a fun profession perhaps you should re-evaluate your motivations.

  50. Re:Did anyone else ... ? by BronsCon · · Score: 2

    Reading Slashdot headlines is not normal.
    On Meth, it is.

    Meth. Not even once.

    --
    APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
  51. Depends on the realism you want to achieve by markdj · · Score: 1

    If your game needs to simulate physics and your programming library and tools don't do that, you will need the appropriate equations. Proper physics equations can be complicated and involve calculus. A good example is moving a vehicle around a curve realistically. There you need math to simulate the equilibrium between forward motion in the curve and centrifugal force that want you go straight.

  52. Opportunities by KalvinB · · Score: 2

    The more you know the more opportunities you will have and the more earning potential you will have. I've used college level math in programming projects before. I have a friend who's a PhD making buckets of money doing very high level math. So if you want to make buckets of money doing high level math related programming, you will need to learn high level math. If you're comfortable making decent money limited to projects going no higher than high school math, then that's all you need.

    So Trig is like 3 houses in Monopoly. You've made a huge leap in earning potential but you're not at the top yet.

  53. And of course, the obligatory XKCD by bennomatic · · Score: 4, Insightful
    --
    The CB App. What's your 20?
    1. Re:And of course, the obligatory XKCD by Kidbro · · Score: 1

      http://xkcd.com/1050/ would be much more relevant to this topic, methinks.

    2. Re:And of course, the obligatory XKCD by Anonymous Coward · · Score: 0

      Partial credit.
      Full credit answer would have included Forgot Algebra

    3. Re:And of course, the obligatory XKCD by bennomatic · · Score: 1

      I bow to you. Good pull.

      --
      The CB App. What's your 20?
  54. Re:Money by Skapare · · Score: 2

    If you can't do the maths up through at least a year of linear algebra, and didn't make at least a B, I don't want to hire you for any of our technical jobs.

    --
    now we need to go OSS in diesel cars
  55. Yes. by Anonymous Coward · · Score: 0

    > will I actually use calculus and above, or is it just a popular idea that you need to be a mathematician in order to program?

    An error in the question: assuming that knowing calculus makes you a mathematician. Calculus is to modern mathematics as "Force equals mass times acceleration" is to modern physics.

    Most programming jobs won't require things like calculus. But not learning it now will effectively [i]shut you out[/i] of those jobs where you do need it. And while technical knowledge quickly becomes obsolete, learning how to do (for example) proper differentiation will never become outdated. So it remains a good investment.

  56. More maths = bigger toolbox by cyborg_zx · · Score: 1

    Just because you don't necessarily use those tiny little watch screwdrivers everyday doesn't mean you aren't helped out by knowing a bit about how to use them.

    Either way acedemics is not about learning exactly what you need to do your job it's about proving you have the ability to learn and reason full stop.

    The end of your formal education is not the end of your learning. Most of what I need to do day to day is not stuff I learnt in school but I imagine it would be considerably more difficult for me to pick it up if I tried to focus incredibly narrowly on specifics as if things could be so neatly deliniated.

  57. Need Math? by Anonymous Coward · · Score: 0

    In my experience, the time to get the math background is not when you need it, but before. I was able to teach math and science at the middle school level because I added a math minor to my education degree (it also meant more money, but that's another story). My advice to high school students is to get all the math they can in college (at least as much as they can afford). It simply increases your options when looking for employment.

  58. Innumeracy makes people easy victims by Anonymous Coward · · Score: 0

    People are throwing numbers at you all the time in the media. Most people can't tell whether what they are hearing is BS or not. That's not good for democracy.

  59. Shut up and do your homework by Anonymous Coward · · Score: 0

    I don't care if you don't like it. If you can't handle a little math, I'm sure as hell not going to hire you. Quit your bitching.

  60. Calculus: JUST DO IT. by Anonymous Coward · · Score: 0

    I'm a math professor, so yea...I use it a fair bit :)

    As to the calculus question (and to follow up on a previous post): you really need linear algebra. But typically it is taught at a level that requires you to have gone through calculus. Not necessarily because you need the calculus, but more because you need to be a mature thinker and two semesters of university calculus will help train you.

    I dabble in a little graphics programming for research visualization, and I actually find myself using calculus a fair bit. For example, if I'm trying to find tangents or normals to a curve or surface, I will use results about derivatives. In the full 3d world you need to marry this with linear algebra to properly express the multivariable stuff, but for 2d, a single semester of calculus will probably suffice.

    So take linear algebra, and calculus up through multivariable. Even if only some parts of each course are useful, it'll make you a better thinker.

  61. Beyond the most basic Calculus, none. by aoeu · · Score: 1

    There was that one time I was able to do a Group Transform. It was mostly lucky and it made no difference.

    --
    All your database are belong to U.S.
  62. Algebra and Statistics are key by crow · · Score: 4, Interesting

    The key areas for math in general computer science are algebra and statistics. Even if you are not actively using algebra, the thought processes in programming are very similar. Statistics are critical for analyses of system behavior. Linear algebra is useful occasionally, but mostly it's just something that is nice to have been exposed to.

    I never use calculus, but it was in taking a calculus class that my algebra skills solidified, so the coursework was not wasted. In general, you should always progress one step further in coursework than you expect to actually need.

    Also, there's a big difference between knowing enough to get an entry-level programming position, and knowing enough to have a career where you end up designing major projects.

    1. Re:Algebra and Statistics are key by ceoyoyo · · Score: 1

      If you want to know anything more about statistics than which button to press, you need to know calculus.

  63. You MUST actively apply knowledge by Anonymous Coward · · Score: 0

    The question implies the person expects math to use or manifest itself. The individual must ACTIVELY look for problems to understand in mathematical ways.

    The parts of your program that change, find ways to express them in calculus. The parts of your program that have unknowns, find ways to express the knowledge in algebra. Math offers you elegant ways to express yourself, mathematics doesn't appear as a passive knowledge that you can just do a few problems on paper and expect math to leap onto your computer screen.

    Do you need Math? Absolutely not, you are free to be as mediocre as you want. You can write out 16+16+16+16+16 every single time. Do you need art? Nope, you can make everything in your world as simple, functional, and mechanical, as devoid of color and beauty, as you want it to be.

    You create your reality, and you are free to create it without applying mathematical concepts. The people who can't see the value of knowledge and collect it just for the sake of saying "I once took math, not really good for anything..." or "Oh, I took french in high school. I can say 's'il vous plait'." we call them dilettantes.

    At first you won't see the ways your knowledge applies without hard examination. Eventually patterns will appear subconsciously and you can move on to actively seeking more complex patterns. If you can't see any patterns where mathematics can be applied you're not really looking for them.

  64. Manifesto by ahoffer0 · · Score: 1

    I am not particularly talented in math(s). Math is hard for me.
    I do not use much math(s) in my day job.
    I consider math(s) the single most important subject I studied in my education, from third grade through Master's degree.

    Education is not the same as training.
    One can train for a vocation.
    Coding is a vocation.
    Do not study math(s) or attend a university if training, not education, is the only goal.

  65. Good to Stay Mathed by Anonymous Coward · · Score: 0

    I'd just say Calc keeps you on your toes.

    Trig, Multiplication, Long Division, Addition, Subtraction, Optimization. All good to know/remember... I'd say I use'em all on a daily basis.

    Plus, when there's that one instance where it would be really worth it to use optimization and no one else knows it, and you can do it in a couple of minutes... feels pretty good.

  66. High school level programming. by khasim · · Score: 5, Insightful

    The bulk of programming jobs have nothing at all to do with math beyond the high school level.
    Its mostly counting beans and keeping records. Really, it is.

    Which is also why there is a lot of high school level code out there.

    If you never learn more than you need then you'll never know if you have learned as much as you need.

    Learning more math won't always make you a better programmer. But it will show you whether you can do something better than someone who knows less math.

    1. Re:High school level programming. by fredprado · · Score: 5, Insightful

      And that is also why most programmers can't even choose which sort algorithm they should use, and have no clue about why their SQL queries are taking 100x the resources they should take.

    2. Re:High school level programming. by Anonymous Coward · · Score: 0

      "If you never learn more than you need then you'll never know if you have learned as much as you need.

      Learning more math won't always make you a better programmer. But it will show you whether you can do something better than someone who knows less math."

      This, I have always had some pity towards the less educated colleagues of mine, either it was math logic or statistics or integrals. They may not be needed, but they give you a new way to think.

      p.s. I do not have a bachelors even, but the courses I have taken on mu (futile) attempt to do so, did help.

    3. Re:High school level programming. by Anonymous Coward · · Score: 0

      It sounds like someone missed an ON clause in a join statement and got a cartesian. The most interesting way to join things is the correlated subquery. It's very powerful when implementing weird business logic.

    4. Re:High school level programming. by SeanFromIT · · Score: 1

      At RHIT we had to do relational algebra and relational calculus by hand so that we could never say we didn't know what the SQL query was doing...

    5. Re:High school level programming. by Anonymous Coward · · Score: 0

      That, and "taking math" != "learning math"

    6. Re:High school level programming. by HapSlappy_2222 · · Score: 1

      If you never learn more than you need then you'll never know if you have learned as much as you need.

      Best quote ever. Kudos.

    7. Re:High school level programming. by Shoeler · · Score: 1

      I'm a programmer. Took three semesters of calculus, differential equations. I work at a government civilian engineer agency and I use math all day long and twice on Sunday. When I'm debugging the mass of data I have to use (mostly from computer models), I have to be able to do quick math in my head as well as translate that to something I can check my work with. It's not good enough to just write an algorithm that runs - it has to do exactly what it's supposed to.

      I use statistics every day. My knowledge of statistics is hugely valuable when I'm in a discussion with a scientist or engineer and can suggest a different way to get at the data they want with a stats function, or understand why they want the R^2 value in a function.

      If you can't do at least some of the math you have to program, you're not as useful as you can be. It's not insurmountable, but the guy that knows it will program circles around you, assuming the same level of programming efficacy.

    8. Re:High school level programming. by Bob9113 · · Score: 1

      And that is also why most programmers...have no clue about why their SQL queries are taking 100x the resources they should take.

      Speaking as mostly a middleware programmer who spent too many years expecting the database guys to "fix the database" when my shoddy queries ran slow, let me say, "Hallelujah, brother!"

    9. Re:High school level programming. by Anonymous Coward · · Score: 0

      ... and have no clue about why their SQL queries are taking 100x the resources they should take.

      That one's easy. The customer required I use Oracle.

    10. Re:High school level programming. by Monkeedude1212 · · Score: 2

      At first I thought you were joking.

      Most programmers don't even know about sorting algorithms.

      They just throw everything into an Array or List or Vector or some random collection class that they first looked up how to use, and just use myList.Sort()

      The only thing they bother doing in SQL is a
      'select * from table where id =' + strId;

      I think you're giving them more credit than is due.

    11. Re:High school level programming. by Anubis+IV · · Score: 1

      Exactly correct. How can someone expect to adequately analyze algorithms without some understanding of the concepts involved in post-high school math? Granted, you don't usually need to sit down and work out all of the math for them, but at the very least, having an understanding of the various series you'll learn in Calc 2, the ideas behind convergence and limits, and a basic understanding of statistics will take you a lot further in a software development career, particularly when you're the one making architectural-level decisions.

      As for linear algebra, differential equations, and much of Calc 3 or beyond, they all have their uses (e.g. graphics, simulations, etc.), but I wouldn't classify them as being quite as general purpose for programming. I wouldn't say that I have to use their concepts on a regular basis, but having some familiarity keeps me from being ignorant of what is or isn't possible. And that's exactly the sort of ignorance that leads to a programmer being proud of shoddy code. If someone knows what's possible, not only do they settle for less without any further consideration, they'll oftentimes be able to self-teach themselves the concept from some reference material, allowing them to implement the better way of doing things. Someone earlier gave a great example regarding calculating battery life in laptops, where a linear approximation may suffice, but more advanced math could produce significantly better approximations.

    12. Re:High school level programming. by ZeroPly · · Score: 1

      You do not need calculus to optimize your SQL queries any more than you need to understand fluid dynamics in order to adjust a carburetor. Other people have done the heavy lifting for you already. If you buy a book on SQL optimization, you are not going to see a lot of integral signs in there. The reason programmers who understand heavy math are generally better than programmers who have never taken calculus is because they are SMARTER. In other words, an auto mechanic who understands complex analysis would probably be better at analytical diagnosis than another mechanic who failed algebra. That does not mean that complex analysis is required to work on cars.

      --
      Support microSD: in a post 9/11 world, it is unwise to carry your data on media that you cannot comfortably swallow.
    13. Re:High school level programming. by Anonymous Coward · · Score: 0

      Not the whole story.

      Many of my queries take orders of magnitude more resources then the one it is replaces, but run in a fraction of the time.

      Its the ability to determine what your target metric is and being able to optimize for it that makes a difference.

      Random theoretical speculation: Which is Better?
      Query A, takes 10kb memory and 2 minutes to complete
      Query B, takes 100mb memory and 0.5 seconds to complete
      Output of A === Output of B
      Answer: All dependents on which metric is most important for the application, think mars rover or server farm?

    14. Re:High school level programming. by tibman · · Score: 1

      I must have missed the math class with sorting algorithms and efficient stored procedures : /

      --
      http://soylentnews.org/~tibman
    15. Re:High school level programming. by bill_mcgonigle · · Score: 1

      Speaking as mostly a middleware programmer who spent too many years expecting the database guys to "fix the database" when my shoddy queries ran slow, let me say, "Hallelujah, brother!"

      no EXPLAIN on your DBMS?

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    16. Re:High school level programming. by Anonymous Coward · · Score: 0

      More on that point, it seems your standard individual is not truly competent with the material in course n until n+1 is taken.

    17. Re:High school level programming. by Bob9113 · · Score: 1

      Too terse, don't know what you're saying. The databases had explain.

    18. Re:High school level programming. by Deep+Esophagus · · Score: 1

      OK, someone finally hit on an issue that I face every day in my job. I work on a web-based application so my job is a mix of client-facing HTML/JavaScript and backend vb.net / SQL. At best I'm mathematically middleweight -- I know my way, albeit clumsily, around trig and algebra but my brain freezes up at the first mention of integrals and derivatives; calculus is completely alien to me.

      Frequently, optimizing those SQL queries to ensure the user's page doesn't get a script timeout error makes a lot of difference. How would a better handle on math beyond the high school level help me find a more efficient SQL query? This is genuine curiosity, not a cloaked setup for arguing the point. I always assumed when we hit delays it was because the servers were overloaded (we have thousands of customers) or because there's just no way to speed up a query that returns 50,000 records.

  67. You'll need it for the GRE by Mondoz · · Score: 2

    If you want to get into post-graduate studies, this means taking the GRE test. There's a lot of math on the GRE that you have to do quickly.
    None of it is terribly difficult, but I found that I was very out of practice, which slows me down quite a bit.
    If you can do high school math in your head quickly, it vastly improves your score.

    I've been in the CS industry for nearly 12 years and offloaded nearly all my high school era math off to calculators and spreadsheets. Very rude awakening when I took my first practice GRE.

    --
    /sig
    1. Re:You'll need it for the GRE by Anonymous Coward · · Score: 0

      I scored 800 on the math portion of the GRE. (But only scored a 2 on the essay; apparently three single-sentence paragraphs don't make for much of an essay...)

      There's no calculus on the GRE. None.
      I don't even remember if there's any trigonometry.

      However, the questions are very... interesting. You'll be looking at some of the more challenging (not in a cumbersome sort of way) algebra problems you've ever seen. Not obnoxiously long equations to solve for, but conceptually challenging problems. I found it to be a very fun test, personally.

      That being said, I believe that having a healthy exposure to higher-level mathematics tremendously helped me to score so well. I had previously taken courses in discrete math, linear algebra, statistics, and four semesters of calculus (through differential equations). Although none (or very little?) of the subject matter covered in these courses was actually on the GRE, I feel that simply having been exposed to so many different fields within mathematics has helped me become a better analytical thinker and enabled me to secure admission to an awful graduate program and now this shitty poorly-paying mind-numbing "developer" position where I write Java and SQL code that makes me want to hang myself.

      Moral of the story is... FML. But you should learn yourself some maths, boy! It's actually fun to know (although god knows I hated learning it when I was younger), trust me.

      Captcha: Bearded

  68. Algebra is critical for me by MadAnalyst · · Score: 1

    PhD chemist here, just to give an idea of my work and complexity level. I do a huge variety of algebra regularly. I also do occasional trigonometry and a lot of statistics. Simple linear regressions are always important, and a certain amount of other curve modelling. Calculus? Never. Haven't touched it since grad school, but I did have some use for it then in error analysis studies (multi-variate derivatives to be specific). Then again, I think studying calculus helped me in algebra. It got used so often in manipulating the equations that it became second nature while the calculus remained more challenging.

  69. An Example by Bill+Dimm · · Score: 1

    Whether or not you need math really depends on the type of programming that you're doing, but it can creep up in pretty mundane areas. For example, suppose your program is doing some sort of tedious calculation and you want to display a progress bar or an estimate of the amount of time remaining. If things are somewhat complicated, you may need to fit some parameters to estimate time remaining. Fitting generally means finding parameter values that minimize some quantity (like squared error), so now you're into calculus (take partial derivative, set to zero, solve for parameter value). Of course, you can probably find a formula in a book but you may not truly understand it, or when it is applicable, if don't have a basic math background.

    1. Re:An Example by Bill+Dimm · · Score: 1

      P.S. Calculus is (in my opinion) conceptually way cooler than any of the math that comes before it, so you are really depriving yourself if you skip it. I strongly advocate taking calculus and physics at the same time. Calculus was invented to solve physics problems, and you'll understand it much better if you do them together. Complex analysis (calculus with complex numbers) is also very cool -- some surprising and powerful things happen (Cauchy's residue theorem).

  70. It Teaches How to Play Ball and Complete a Project by eldavojohn · · Score: 4, Insightful

    Yeah, you'll notice that a lot of the richest and most successful people never completed college. And that's fine but in my humble opinion, that's a risky bet to take. I've done interviewing for developers for a fortune 500 company and seeing a college degree on the resume doesn't cause me to kick back and say "Oh thank god, they have taken Multivariate and Differential Equations calculus, now all my Spring applications are going to be able to compute the triple integral (by parts) of a toroid in three dimensional space as it passes through a fluctuating field exerting a force on it!" (Yes, I know that makes no sense at all) No, what that tells me is that we're going to be able to throw you in an environment where you have no clue what to do but resources to go out and find what to do. On top of that, you're going to be able to digest the driest and shittiest of documentation (like a calc book) and come back to me and have gleaned some working knowledge from it. Sure, you might have to go to the next cubicle and say "What is up with this stack dump?" And you may have to seek out an authority (like a professor) but you're going to come to some answer for our problems.

    In short, it tells employers that you know how to play ball and high order concepts don't frighten you. I'm not going to throw integration by parts at you on the job but it is good to know that you stepped up to that challenge -- even if it was just to get to a final, pass it and move on. In short, I went to a liberal arts college, I took classes on music theory, calculus, physics, Native American studies, advanced literature, etc and in those classes I created four part inventions, mounds of calculations, papers, powerpoints, etc and I have used little if any of that in my day to day job post college. But in mastering those processes I learned how to play ball. Now, I'm not saying you need to go take music theory and Native American studies. But the thing with Calculus is that all software development is logic and math. So don't you think you'd want to get all your i's dotted and t's crossed so that any employer that looks at you knows you have studied beyond the requirements of math for writing software into a realm so lofty they won't even be able to use it? I'm sure glad I did.

    --
    My work here is dung.
  71. Cull the herd by travdaddy · · Score: 1

    Advanced Math simply isn't used. The college math requirements are just there to cull out the weak members of the herd. This is why Computer Science Majors don't have as many idiots running around as Business Majors do. (or Political Science, Marketing, etc.)

    --
    Adidas To Bring Back Sneakernet
    1. Re:Cull the herd by Anonymous Coward · · Score: 0

      You obviously weren't in my program. .... or, you were. Cause those idiots never understood they were idiots.

  72. Math makes you competitive by hisperati · · Score: 1

    Computational complexity theory requires knowledge of set theory, number theory, abstract algebras, logic etc. You certainly don't need to know computational complexity theory to be a programmer, but is a good example of the kind of deep fascinating knowledge that will make you a cut above a code monkey. And big O notation, how long will that algorithm take? In reality is that these mathematical skills are not necessary for most jobs, but they make you more competitive in the job market. They make programming richer too. And, yes, I use math all the time even calculus as I do astrophysical simulations.

  73. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  74. Depends on what you want to do by paulpach · · Score: 3, Informative

    I developed a game using Unity3D.

    I make heavy use of trigonometry, and a very small part of calculus.

    Your question really depends on what you want to do:

    • * For game development (what you seem to be particularly interested on), calculus is almost irrelevant. You need trigonometry.
    • * If you work in operations research, then algebra and linear programming are a must.
    • * If you work on average database backed web applications, just some basic algebra is enough.
    • * If you work on AI related field, calculus is very important.

    There are other fields that are not typically taught in math courses but in CS that are heavily math related. Like performance analysis. This I use a lot, but once again, it really depends on what you work on.

    1. Re:Depends on what you want to do by SwedishPenguin · · Score: 1

      * If you work on AI related field, calculus is very important.

      It depends on what you mean by "AI". If by "AI" you mean machine learning, I would say statistics is much more important than calculus. If by "AI" you mean game AI, then I'm guessing you mostly just need a good understanding of search algorithms.

    2. Re:Depends on what you want to do by Anonymous Coward · · Score: 0

      Calculus is almost irrelevant for game devs if you want to make crappy games with crappy middleware. If you actually want to make real games, you better know calculus, because your physics sim isn't going to write itself, and even if you use an off the shelf solution (Havok or something), you probably will want to know something about how it works so you know what you did wrong when the sim explodes. Some basic understanding of PDEs helps too.

    3. Re:Depends on what you want to do by Anonymous Coward · · Score: 0

      Looks like you should have spent a bit more time learning to be creative...

    4. Re:Depends on what you want to do by Anonymous Coward · · Score: 0

      There is a bug on your website that renders it unusable for me. The site detects my IP address and decides to show me the Russian language version, because my home country is in Eastern Europe and westerners presume everyone speaks Russian here. Even if I choose English from the drop-down menu, it redirects to the Russian page.

    5. Re:Depends on what you want to do by paulpach · · Score: 1

      Thank you for reporting it. I believe it is fixed now.

  75. set theory math by magarity · · Score: 3, Informative

    I do a lot of database work so it's set theory all day long. It's in a bit of disguise as it isn't what normally is though of as math but set theory is a math field.

    1. Re:set theory math by Anonymous Coward · · Score: 0

      We share the same practical application of mathematics. It is always amusing to see the expressions on the faces of those without the mathematics background when you describe why their SQL statement failed to produce the expected result set. And it keeps the PHBs from trying to toss in their "insight."

  76. once by TheSync · · Score: 1

    I once used differential equations to solve a problem of how to optimally transmit parts of an on-demand video program on multiple multicast addresses to minimize the start time to view the program. I'd say that was the only time I ever solved a differential equation outside of class.

    As someone with an electrical engineering degree, I have to say that you really need to understand vector calculus to understand electromagnetic fields. But frankly unless you are designing microwave circuits or antennas, even that knowledge is rarely tested in a work field.

    If you need to read any scholarly papers to pick up on new technological ideas, most will contain some calculus equations. Generally you don't need to really know how to solve the equations (as they will solve them in the paper), but you may need to at least understand what is going on. Kind of like knowing how football is played allows you to enjoy a game, even if you haven't thrown a football in 20 years.

    Most knowledge of error-correcting codes and cryptography is more algebraic and number theory rather than dealing with calculus or differential equations.

    On the other hand, every day I seem to have to convert from bits to bytes and back again.

  77. Signals are important by Lynal · · Score: 1

    A lot of people applying for the jobs you want will have taken many math classes. Think about what your resume says if you don't have those same difficult classes. Can you replace them with something that will tell the employer you are even more qualified?

  78. Discrete by Anonymous Coward · · Score: 0

    Discrete Math and Linear Algebra have been the most important to me. However, proofs classes and calculus do help, such as when making those game engines calculus is involved, (at least when it comes down to proper physics in the game itself). So if you want to advance your career beyond using game engines into creating them, it is a must.

  79. Mu by Anonymous Coward · · Score: 0

    Many other posters have said that you don't use math beyond basic arithmetic in programming—especially if you are working on "information systems" also known as CRUD applications and I agree with them.

    This may be true, but the reason that I think we should still insist on math being a part of a comp. sci. curriculum isn't because you will use it in your day to day work but because learning it reorganizes your brain.

    Leaning math has side benefits that generalize to computer science and programming: an ability to think abstractly, the ability to break problems down into logical units, frustration tolerance...

    Once you have gotten through a 2nd year multivar calculus class successfully, you will have developed a lot of the mental habits that are essential to day to being successful in a programming career.

    1. Re:Mu by JDG1980 · · Score: 1

      This may be true, but the reason that I think we should still insist on math being a part of a comp. sci. curriculum isn't because you will use it in your day to day work but because learning it reorganizes your brain.

      Is there any actual evidence for this, or just speculation and tradition? They used to say the same thing about Greek and Latin, but those were dropped years ago with no perceptible adverse effect.

    2. Re:Mu by V+for+Vendetta · · Score: 1

      They used to say the same thing about Greek and Latin, but those were dropped years ago with no perceptible adverse effect.

      Just look what a perverted meaning "liberal" now has and you know that dropping Latin and Greek perhaps wasn't such a good idea after all. ;-)

  80. I recommend that you take no courses in Mathematic by k10quaint · · Score: 2

    You should not waste your time with it. Otherwise, you might end up competing with me for the interesting jobs. Neither of us wants that. ;)

  81. Generic Problem Solving by joebok · · Score: 1

    Being good at math often means you are a good, creative problem solver. Even though I very rarely need any specific knowledge from the math courses I've taken, I use the skills I developed solving and proving all kinds of math problems every single day. With computers and without - just make sure that whatever you study, you learn how to think.

  82. It's problem solving. by circletimessquare · · Score: 1

    If you have the ability to look at a problem and say "oh yeah, 3 variable calculus", you will be able to be more effective than the guy or gal who goes "I don't see how we can make much progress here, let's shelve this."

    Granted, this differentiation (get it? get it?) only occurs in rare scenarios in real life. But I will submit that those 1% of scenarios might decide the difference between success and failure on the project that makes you a success or failure.

    Much of life is about having that extra edge. Math is an edge that is worth the investment. Not everyone can swing it though, but I have no problem impressing on as many kids as possible as much math as they can stomach. Like eating your greens, it's good for you.

    --
    intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
  83. Ob. UK Anti Drugs Campaign Reference: by Tastecicles · · Score: 1

    Don't do math. Talk to Frank.

    --
    Operation Guillotine is in effect.
    1. Re:Ob. UK Anti Drugs Campaign Reference: by funwithBSD · · Score: 1

      This is your brain.

      This is your brain on Math...

      Any Questions?

      --
      Never answer an anonymous letter. - Yogi Berra
  84. Digital World by Thelasko · · Score: 1

    In a digital world, classical calculus isn't used very often. To be honest, I forgot most of it. The big thing you should know how to do is integrate. Instead of an integral, you will typically use a Riemann sum in programming. However, Riemann sums are taught in most calculus classes, and you should be aware of how it works in comparison to an integral.

    I'm not a software engineer, but I do a lot of programming for data analysis purposes. Yes, I think you should take calculus. Not because you will use it directly, but because of the more abstract concepts you will learn while taking the class.

    --
    One of our competitors trademarked the term "hypothesis". From now on, we will call them "boneheaded ideas".
  85. How much CS is used in IT desktop / admin jobs? by Joe_Dragon · · Score: 1

    How much CS is used in IT desktop / admin jobs?

    Same idea people are put off by the 4 years pure class room when at a tech school you can get the needed skills in 2 years or less.

  86. You use what you know by Anonymous Coward · · Score: 0

    You can't use what you don't know.

    Generally speaking you don't really know a math class until you've taken one or two more classes.

    I've taken a lot of math and I routinely use up through pdes as well as probability and statistics. Linear and abstract algebra I use constantly. Topology is rare but I do use it periodically.

    If you bother to really learn the stuff, math will be invaluable to you. If you don't bother to learn it, then you can still muddle through. You'll just have fewer tools in your tool box.

  87. It depends by kubernet3s · · Score: 1

    It depends what you want to do (not just what you discipline is, but exactly what you are doing. Do you want to develop a rendering engine? Yes, calculus, and probably linear algebra. Do you want to just use existing libraries to animate stuff? That requires considerably less)), and how good you want to be at it. I do some scientific software development, and almost every package I use involves calculus in some way. But icebike is right, I usually never see the calculus, or have to do actual differentiation or anything like that. However, if something goes wrong, I DO need to use my knowledge of calculus to understand exactly what is up.

    Interpolation, functions, and linear algebra seem pretty usefule for anyone doing graphics, and are covered (Aside from the LA) in most calculus courses: again, not because you will be using them all the time, but because when something goes wrong it is often attributable to some error you made in understanding these principles. Think of it as being a pit mechanic versus working in a repair garage: usually a member of a pit crew doesn't have to rebuild a transmission, but they should at least know how it works and be able to tell where subtler problems are coming from, and usually they know much more than that. Programming is composed of tools: you don't need to know how they work to use them, but you really should.

    That said, calculus is something everyone should really have some experience in. It's a freshman level course at most unviersities and isn't that much more difficult than algebra. And yes, most people won't be using calculus in the sense that they can take a homework problem and use it on the job, but again, education is not training, and you need both to succeed.

  88. Depends by sydneyfong · · Score: 2

    Depends on the Maths, depends on the CS.

    "Logic", if it can even be considered a branch of Mathematics, is always important. The various topics under "Discrete Maths" often overlap with CS. The habits of rigorous thinking, proofs, use of counter-examples, etc. are all indispensable to proper programming.

    That being said, my personal experience in web and systems programming is that as long as you don't go into game and graphics programming, you don't really need to apply any "mathematics" beyond high school level, if even that. The curious thing is even though you may not really consciously use mathematics, better programmers generally do have a pretty good grasp of higher mathematics....

    But then, I've really never done any damn calculus in my programming career (not that it's particularly long). In fact, unless you're doing something very domain specific which needs the actual maths, usually an approximate solution will be simpler, easier to maintain, and less error prone. (It's not always easy to resist the temptation to implement the fancy solution though)

    (PS: And I speak from personal experience -- as a programmer it's often helpful to have friends that actually know their maths very well :-p)

    --
    Don't quote me on this.
  89. Routinely by introp · · Score: 1

    It depends on the field you end up in, really. Writing $randomSmallSocialWebApp requires only a moderate understanding of algebra, statistics, and numerical methods. (You can get by with less, but you won't be as good a programmer and won't float as high.) Writing $randomControlApp requires considerably more math, depending on the job.

    In my job I write a lot of embedded software and use a lot of my math training. From control theory to simple things like calculating rise times and ring on a bus.

  90. Yes and no by Nethemas+the+Great · · Score: 1

    Will you directly use the Calculus in your day to day? Probably not. However, before you feel justified in rejecting further math education there are a few things to consider. First, limiting your education is limiting your future career options. What you as a youth believe you will want to do in your adult life is more than likely shortsighted if not plain wrong. The more choices you have--by way of an education--generally speaking the better off you will be. Second, while it isn't likely that you will directly use advanced mathematics in your day-to-day learning these maths is exercise and training for your brain. Much like learning a second (or third,...) language you expand your potential for creativity and problem solving. Techniques and ways of thinking used to tackle these advanced concepts ARE directly applicable. To phrase it another way, if the only tool in your toolbox is a hammer, then everything starts to look like a nail.

    Even if software development isn't going to be your future career choice, but especially if it is, I would encourage you to push yourself as much as you possibly can to learn as much math as you have opportunity to learn. In the same vein I'd also recommend learning a second language, particularly one that does not resemble your first language. Will it be hard? Will it be a pain in the ***? Of course. However, at the end of the day, you will be stronger, far more capable, and justifiably confident than your slacker peers providing you with a distinct advantage in a highly competitive job market.

    --
    Two of my imaginary friends reproduced once ... with negative results.
  91. In the academia yes by godrik · · Score: 1

    I am working in the academia doing High Performance Computing, Scheduling, Multi-Pbjective Optimization, Approximation Algorithms and Graph Analytics. I am using mathematics all the time.

    Some part of it is actually straitght up mathematics: find a parameter set that optimize function f(x). Some part of it is linear algebra (dense, or sparse). A lot of it is combinatorial optimization: (e.g. counting or estimating the number of objets that have a given property). A significant part of is probability and statistics to perform result analysis.

    Though most of it is not mathematics as OP probably means provided he is in high school. Most of the time you do not compute things yourself. You plug it in a mathematical software that does it for you. Thought some times the operations you need are not available and I need to write them. But the importance of knowing mathematics is to be able to pick the right tool, understand what it says, and, most importantly, understand what it DOES NOT say.

    The training you get in mathematics is CRUCIAL to any kind of system analysis activity. Not necessarily because you will have a lot of equations to deal with, but because it trains the mind to see what is right and what is wrong. "Implication is not equivalence", "correlation is not causation", "monotonicity is not linearity", "random is not uniform" are the most classical example of simple mathematic mistakes people do all the time when they lack proper mathematical training. In CS or IT, such mistakes can cause a lot of pain...

    1. Re:In the academia yes by badkarmadayaccount · · Score: 1

      Your last paragraph describes well the source of problems with buffer bloat and unoptimized TCP implementations.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  92. Stunt programming by benjfowler · · Score: 1

    For building cool, advanced stuff, and being an elite coder generally (e.g. sophisticated apps, or competitive coding), you certainly need a level of mathematical maturity.

    I certainly had to pick up a little for graphics; a mate took some machine learning classes in college without a mathematical background and it melted his brain.

    Likewise, the world-class coders who win international programming contests have heavy maths backgrounds and can bring it to bear on problems real fast. The real ninja competitive programmers I've met all seem to have dual maths/computer science degrees.

    For well-paying jobs in the finance domain, good maths is VERY useful.

    Certainly, for everyday development, you don't need maths. But for anything particularly intense, e.g. graphics, machine learning, anything that used to be called "AI", you certainly need it.

  93. Math is Unavoidable by Anonymous Coward · · Score: 1

    If you want to get educated in college, you cannot avoid math.
    If you want to be an engineer, you cannot avoid math.

    If you want to be an electronics engineer,
    you will become a proficient mathematician for certain...
    I recommend electronics if you like mathematics.

    I recommend lumber grading over programming.

    If you want a good job with the math skills you mentioned,
    become a machinist.

  94. Calc good to know but stats is more widely useful by sjbe · · Score: 1

    This makes me wonder: will I actually use calculus and above

    Probably not unless you are in some fairly specific areas of engineering or academia. I've almost never used calculus in my professional life though I've used software that does lots of it for me. I have however used the crap out of statistics. For most people they are much more likely to utilize statistics in their jobs and day to day life. Frankly I think it is terribly under emphasized in most curriculums.

    or is it just a popular idea that you need to be a mathematician in order to program? What are your experiences?"

    It's important to understand it even if you don't actually use it. You can't really understand a lot of things unless you have at least a basic appreciation of calculus. I'm glad I learned it even though I don't actually use it much.

  95. Just the other week by OzPeter · · Score: 1

    I wanted to build a better shake detection routine for an iOS app and dug into my background of digital filter theory in order to craft (and then implement) some specific band pass and high pass filters based on a set of defined frequency characteristics, as well as understanding the RMS (not that RMS) calculation of a continuous waveform in order to trigger set events. All so that when the user shakes my app pretty things will happen.

    --
    I am Slashdot. Are you Slashdot as well?
  96. One thing's for sure by Anonymous Coward · · Score: 5, Funny

    You won't command much credibility if you can't even spell "orthogonal" right.

    1. Re:One thing's for sure by gorzek · · Score: 4, Funny

      You don't have to be able to spell it in order to say it!

    2. Re:One thing's for sure by mattack2 · · Score: 1

      Nor if he can't even spell "math" right.

      (JUST KIDDING, I know it's a Britishism.)

    3. Re:One thing's for sure by geezer+nerd · · Score: 1

      Disagree! "Orthagonal" would be pronounced quite differently from "Orthogonal". But I hope you wouldn't try, because "orthagonal" is not a word.

    4. Re:One thing's for sure by ChrisMaple · · Score: 1

      My 11th grade math teacher used "osculate" instead of "oscillate". Both have mathematical meanings, but this is silly. Spelling matters.

      --
      Contribute to civilization: ari.aynrand.org/donate
    5. Re:One thing's for sure by RaceProUK · · Score: 2

      That's what I don't get about the US word 'math' - like the UK word 'maths', it is short for 'mathematics', which is a plural. Conventionally, plurals end in 's'. Therefore, by convention, 'maths' is the correct abbreviation.

      *waits for the inevitable counter-examples like sheep and data*

      --
      No colour or religion ever stopped the bullet from a gun
    6. Re:One thing's for sure by tompaulco · · Score: 1

      That's what I don't get about the US word 'math' - like the UK word 'maths', it is short for 'mathematics', which is a plural. Conventionally, plurals end in 's'. Therefore, by convention, 'maths' is the correct abbreviation.

      Yes, just as 'gyms' is the proper abbreviation for 'gymnastics'.

      --
      If you are not allowed to question your government then the government has answered your question.
    7. Re:One thing's for sure by RaceProUK · · Score: 1

      Good point, but surely most people use gym = gymnasium?

      --
      No colour or religion ever stopped the bullet from a gun
    8. Re:One thing's for sure by RockDoctor · · Score: 1

      most people use gym = gymnasium?

      Americans might not.

      Which has very little to do with what is correct English. I believe that making a verb directly out of a noun is popular in American ; that doesn't make it right. It's the "four million American housewives can't be wrong" syndrome - of course they could ; four million Albert Einstein clones can also be wrong, but about most technical matters they're less to be wrong than the housewives. Or four mega-house-husbands.

      --
      Birds are not dinosaur descendants;birds are dinosaurs, for all useful meanings of "birds", "are" and "dinosaurs"
    9. Re:One thing's for sure by RaceProUK · · Score: 1

      I don't see anything wrong with verbing a noun, and I'm British.

      --
      No colour or religion ever stopped the bullet from a gun
    10. Re:One thing's for sure by Anonymous Coward · · Score: 0

      And you don't need to know how to say it or to spell it to be able to recognize its significance.

  97. using math by Anonymous Coward · · Score: 0

    The thing about math is that it teaches you to think logically, analytically, and rationally. It is also completely objective. Either you got the right answer or you did no get the right answer. Unlike writing an essay which results in a grade that is influenced by things other than student skill (such as teacher skill, relationship with teacher, etc), you can either do the math or you can't.

    Being able to think through and solve complex math problems gives you the skills to think through and solve other complex problems.

    Furthermore, by understanding things like feedback and control loops (which require math to fully comprehend), you can have a better idea of how the world works in general. You will better be able to understand the effects of exponential growth constrained by finite supply because the math involved makes sense to you. You will have the numerical analysis skills to understand why socialism doesn't work (feedback loop plus running out of rich people long before you run out of poor people).

    Sure, some people may argue that math is not necessary. I counter-argue that it is more necessary than ever and that it can be taught to anyone provided you break the learning steps up into small enough chunks.

    http://opinionator.blogs.nytimes.com/2011/04/18/a-better-way-to-teach-math/

    http://www.huffingtonpost.com/judy-boltonfasman/math_b_1751060.html

    http://www.huffingtonpost.com/david-h-bailey/algebra-is-essential-in-a_b_1724338.html

  98. CS is science and requires maths by cpghost · · Score: 1

    Speaking from experience: if you're interested in a computer science career, a good mastery of maths is absolutely necessary and definitely not optional. You can't do without in this field. Period. As a software (games?) developer, you may or may not need deep skills in math, depending on whether you want to be creative with new algorithms, or whether you want to be the kind of coding monkey that does some plumbing of pre-canned components and libraries without giving much thought on the underlying concepts and algorithms.

    --
    cpghost at Cordula's Web.
  99. Numerical Analysis by typo-lfm · · Score: 1

    One math course particulaly comes back to me again and again when I am programming. It was called "Numerical Analysis" when I took it but might be called something different elsewhere/now. It involved analysing the errors inherent in computer arithmetic and calculations. Especially floating point inaccuracies and aproximations. Whenever people tell you to not use floating point it is usually because they don't understand this subject and don't know the techniques to work with it and avoid the problems.

  100. Linear Algebra by Teppy · · Score: 5, Informative

    I do most of the design and programming on A Tale in the Desert and Dragon's Tale and I've seldom/never needed to do an integral or solve a system of differential equations. Understanding those concepts does frequently influence game design, however, so having taken those courses was important, at least for the kind of games I do. (Giving specific examples would require that you are familiar with gameplay for each of those games, but feel free to contact me directly if examples would be helpful.)

    But on to specific branches of math: You'll certainly use linear algebra doing 3D programming, and IIRC that's considered "beyond" calculus. (If you're using OGRE or Unity 3D, at least at the API level then I'm surprised you haven't run into this.) Applied Math, which is often a college freshman course for a CS decree is crucial to all sorts of programming, especially games. Combinatorics is critical for game design, though if you're just planning to be a programmer, not so much. Numerical Methods will teach you exactly when and why rounding errors to happen, how they can compound each other, and in general help you write squeeky-clean math code. The game I'm working on now is a gambling MMORPG - I probably don't even have to say how important statistics is, if this sort of thing is in your future :)

    Notice how different each of the math subjects above is? A lot of this comes down to learning how to learn, and that's the one thing that in my experience differentiated high school academics from college.

    1. Re:Linear Algebra by dkf · · Score: 1

      Numerical Methods will teach you exactly when and why rounding errors to happen, how they can compound each other, and in general help you write squeeky-clean math code.

      Numerical methods is the course that all programmers should take and hardly any do (or at least not and think about what they've learned afterwards).

      The one discipline that you don't mention that you perhaps should have done is logic. Programmers tend to be very good at logic, as programs are always logical constructions. A working programmer will deal with logic (especially boolean logic) day in, day out for years, so knowing what's going on with it will help a lot. I suppose programmers mostly think it's obvious and so forget to mention it...

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    2. Re:Linear Algebra by Anonymous Coward · · Score: 0

      I love linear algebra but have never had to use it programminG since I I wrote my own circuit modeling stuff in college. That said I think most people who work in oil and gas modeling, structural modeling, etc do use this as the basis of the software. Of course you no longer need to know how to manipulate the equations, but you do need to know how to set them up properly, what the results mean, and to get those results in linear time how to Take advantage of sparse matrices.

    3. Re:Linear Algebra by disi · · Score: 1

      I do pure mathematics at the university at the moment and for fun, I try to recreate the functions etc. in Java. For one thing, you can do most of the calculations using loops or existing API without bothering to optimize anything or proof something to infinity. Then there are also existing languages like R to help you out if you want to check a result.
      My tutor always says, programming cannot proof anything, maths can :)
      This is where many bugs come from, especially if it comes to larger values...

  101. Depends on your view of "education" by Anonymous Coward · · Score: 0

    There are a lot of fields for which calculus won't make much of a difference. Even in some scientific and technical fields, you may only use it occasionally. On the other hand, I've never used my American Literature, Philosophy, Psychology, Western Civilization, Spanish, and a variety of other general education requirements in my professional life.

    Yet, I don't regret having taken any of those classes. Personally, I view education as a development of the individual into a well-rounded and knowledgeable person. An education should result in a "well-educated person." Education should not be job training. To be educated in language requires a familiarity and an ability to understand and analyze literary pieces. To be educated in culture requires a knowledge of one's cultural history, the nature of various events, the way they interact, and it requires the ability to think through those events, define them, and discuss their significance in the development of the world. To be educated in science requires a familiarity about the nature of life, the building blocks of living and nonliving material, and the laws that govern the way those building blocks act. A truly educated person will understand science not just as its own entity but as a way of understanding life and nature and how the fundamental and material nature of things impacts our culture. To be educated in mathematics requires not just a familiarity with numbers and the basic relationships between them but also with the meaning of mathematical principles in every area of life. While it's most intimately connected to physics, math is fundamental to every branch of science. But math (particularly when expressed as symbolic logic) also governs language, art, and culture.

    So, ultimately the question is, do you just want to learn the things you'll need in your job, or do you want to be an educated person? You'll probably discover uses for calculus in a computer-science field. Certainly calculus will give you tricks that simplify a number of problems you may face. On the other hand, if you want to learn for the sake of learning, then calculus is essential.

  102. Necessary by Anonymous Coward · · Score: 0

    Linear Algebra and Discrete Math are probably the most relevant, depending on your field. (Number, ring theory are also useful, sometimes.) That said, there is something to be said about the way mathematics can bring structure and rigor to a person's thought process. After raising 2 teens I'm convinced that the 2 most important things to helping someone learn how to think are math and expository essay writing; after that the rest is just data.

  103. Re:If you want to be a well paid game programmer.. by aarku · · Score: 1

    This is spot on. Also if you want to be a shader guru, not knowing higher math will prevent that. Games are probably rare in the software world in that math is actually used a lot.

  104. Science and Engineering-Yes by idbedead · · Score: 1

    With a background in Engineering and currently a Biologist I would say that calculus and differential equations are absolutely necessary. Things (objects, fluids, heat, proteins, etc.) move over time. There is no way to describe or model these things without calculus.

  105. I use a fair bit by QX-Mat · · Score: 1

    It depends on what you're trying to do. Not knowing what you're doing can be hurtful, for example, not knowing very basic algebra means you can't do simple things. Recently I noticed my colleague couldn't determine the row and column for given an index. Quite trivial stuff.

    Fairly recently I've implemented a 3d cone curl for iBooks style page flipping and countless interpolation functions where an API doesn't give enough control. Being able to work with a continuous principle and derive a discrete function is very important in animation.

    I guess it comes down to 3 things: how well you understand the subject, how well you can program and whether you can apply relevant maths in a way that won't obscure your code or make it more difficult to maintain. I don't want to tweak random values, and if you don't understand these random values and start exposing them, you're going to make spaggetti code.

    Understand your chosen coordinate system and swap when you need to! Take an arrow with a head - you can place a static arrow head at the end of a line or you can derive the arrow head's position and and shape as a function of the line - the latter looks really nice if you understand the coordinate system. If you don't, you'll end up making a horrible mess.

    But alas, your mileage may vary - if someone hadn't done the hard work for me, I wouldn't be able to implement many of the things I'm asked to as I'm merely an engineer (and yes, I have a few of those mid-level textbooks with titles like 'Maths for Engineers' or 'Somethingtotallypointlessbutitsyourjob Theory For Engineers'). Once you've solved a couple of matrices most of what you'll do in Unity is state orientated, so with the help of a good model you don't need to think, ie: in some model context, model->modelToWorldMatrix will transform model coords into wordspace, use modelToWorldMatrix.

    Hope this helps!

  106. Lots of Math by bziman · · Score: 1

    I use lots of math. Mostly trigonometry and geometry (software deals with mapping and displaying positions), probability (for the AI stuff), linear algebra (for drawing, calculating intersections, etc), discrete math (for dealing with data structures and database query optimization), and formal logic (for figuring out computer languages).

    I have very occasionally used calculus, but mostly to prove optimality of algorithms and sometimes for physics stuff, but mostly as a software engineer, someone else already did the calculus, and you just need to be able to use the results. I cross the line a bit between research and application, so I do a little of both.

    But the overwhelming majority of software people (even in my R&D organization) don't use math at all, beyond basic arithmetic and simple logic. Most software is just data storage and retrieval with a pretty interface. The libraries, languages, and operating systems do all the heavy lifting for you. But I would seriously hate my life if all I did was glue together parts built by other people, and had to tell myself that my area of expertise was "business logic", so understanding how the underlying stuff works is unimportant. I build those underlying parts, and that's why I need and know math.

  107. Applied Mathematics by Anonymous Coward · · Score: 0

    We use statistics and linear algebra on a daily basis in manufacturing. Don't limit yourself by not knowing how to apply mathematics.
    However, no one has ever come up to me and asked me to solve for the first derivative. They want to know what are the optimal dimensions of a box or something like that.

  108. All the time by notea42 · · Score: 1

    I work in the defense industry, writing software for both fielded systems and the modeling and simulation used to define and design such systems. I constantly use algebra, trigonometry, FFTs, logarithms, complex mathematics, statistics, probability, and a bit of calculus underlying many of the models. I do a fair amount of data analysis, which has me thinking about the various ways to condense and display data. My coworkers who can't understand the math are relegated to building UIs and writing messaging interfaces. Those of us who can understand the math create all the underlying code doing the real work. The former are much more likely to be viewed as replaceable and laid off in the bad times.

  109. Math is mandatory by GeekBoy · · Score: 1

    Linear Algebra and Discrete Math are probably the most relevant, depending on your field. (Number, ring theory are also useful, sometimes.) I've never used Calculus in my job; but there are probably folks who do, it's just rare.

    That said, there is something to be said about the way mathematics can bring structure and rigor to a person's thought process. After raising 2 teens I'm convinced that the 2 most important things to helping someone learn how to think are math and expository essay writing; after that the rest is just data.

  110. what about other NON college education. by Joe_Dragon · · Score: 2

    what about other NON college education.

    http://articles.chicagotribune.com/2012-03-11/news/ct-oped-0311-page-20120311_1_college-costs-rise-kayla-heard-college-attendance

    "Yet, give Santorum his due. He touched on a reality that deserves more public discussion: College isn't for everyone. Some very bright students thrive better while learning a hands-on trade, for example, than they do in a classroom. Others simply can't afford the time or tuition of college because of their personal circumstances."

    College is not for all and there others ways to learn then going to a big 4 year plan. College needs to be cut down / cut up into small chunks that can better fit fasting moving tech and can work for people who are working and want to gain more skills but can't fit into the college time table.

    http://articles.chicagotribune.com/2012-03-25/news/ct-oped-0325-page-20120325_1_collegiate-learning-assessment-college-students-richard-arum

    "I recently wrote about the possibility of testing and certification for what I called a "college-level GED." Like the current GED test for high school equivalency, it would award certification to bright, hardworking job applicants who want to show potential employers how much they know, even though they never graduated from college/"

    community colleges and trade schools are not the party schools that some colleges are.

    "Ohio University's Richard Vedder, my former economics professor who gave me the collegiate GED test idea, is even more blunt in his assessment of today's academia: "Universities are becoming more like country clubs," he said, with climbing walls, indoor tracks and other luxuries that give students "something else to do with their free time besides drink and have sex."

  111. Lots of math by GryMor · · Score: 1

    Experiment design and analysis uses math. Systems monitoring uses quite a bit of math (or pages you for false alarms at 2am). Scheduling uses math. Stress test analysis uses math.

    For game programming, physics uses LOTS of math, and since that math is expensive to perform, you often end up needing to do even more of it to come up with alternatives that feel 'right' while being better adapted to your physics processor. Then there is analysis of what your players are doing, AI (and learning!).

    --
    Realities just a bunch of bits.
  112. Physics by Verdatum · · Score: 1
    I consider calculus crucial in order to really wrap your brain around even basic physics. Once you really grok the physics, it changes the way you think about the world around you. In that sense, I consider it the case that I use calc all the time.

    Calc is also lovely for understanding financial/economic graphs. I look at price curves all the time when shopping for quantitative things, like picking what size hard drive to buy.

    I don't know if it is directly applicable to the job, but in the world of software engineering, I generally find it easier to work with people who have made it through all the required math than the ones who didn't. Even if that's not a causation, it's still a filter, which can be useful.

  113. Until I had the hammer by EmperorOfCanada · · Score: 2

    I didn't use math much past counter++; until I learned some hard core math. Then I had a new hammer and the math in my code grew to the point where I now need GPUs to keep up. I love OpenCL.Discrete math rocks. I look back at my old pathetic basic algebra self and shudder.

    Often it is useful for either figuring out what is going to happen when some set of algorithms get pounded (instead of just coding up a script to bash them) or in cool analysis of data that otherwise just sat silently in some log file.

  114. Depends on how versatile you want to be by MumbleStumbleGrumble · · Score: 1

    My experience is that advanced mathematics is not needed every day but it is needed sometimes. In my career I've worked in the chemical industry, biomedical engineering and telecom; all as a software engineer. In each I have used calculus at some time. Sometimes it just added insight and others it was absolutely required to do the job. Understanding advanced math certainly doesn't hurt and often helps your career by making you more versatile to your employer.

  115. Odd question by jgotts · · Score: 1

    Computer programs are mathematical expressions, so I am using math virtually all the time at my programming job.

    I have never solved a differential equation for my work, or even while programming for fun, but techniques I learned while taking Calc I-IV I no doubt use in my work without even thinking about it. Practice solving difficult math problems both stimulates and creates the areas of the brain you use when programming.

    Discrete math and digitial logic design? Yes, I use what I learned there sporadically. The most important part of discrete math for most programmers is understanding computational cost. You don't need to take a discrete math course to learn Big O notation, but it might put it in better context with other ideas. I don't do hardware, but digital logic design was my course in logic. In order to read someone else's code and fix his stupid mistakes, you have to understand his flawed logic and fix it.

    Signals and Systems and Probability and Random Processes? I got a terrible grade in the first class, but when what the professor was trying to teach finally began to sink in 10 years later signal processing became a lot clearer. Much software can be thought of as a signal processor. You have an input, you process it, and you have an output. Basic probability is also quite handy when programming. Pretty much the only thing I think about is a normal distribution. The ideal piece of software is correct in all cases, but you always have to consider the probability of situations when making cost trade offs or pitching an argument with management about the importance of something you want to work on.

  116. Calculus and HR by drerwk · · Score: 1

    Hmm, the slope of my benefits with time is negative, and the slope of the slope is negative. Time to get that new job.
    Mod me true.

  117. A job or a calling? by Terje+Mathisen · · Score: 4, Interesting

    If you just want to make a living, then you'll probably never need any higher math.

    OTOH, if you are at all serious about programming as something you want to be really good at, then you need a _lot_ more.

    I've worked with low-level game code (Quake asm), with video & audio codecs (MPEG2, h.264, ogg vorbis), with crypto (one of the AES candidates) and I wrote most of the code for the compiler sw workaround for the Pentium FDIV bug.

    I doubled the speed of a Computational Fluid Chemistry code base, so that simulations ran in half a week instead of 7 days.

    I've also won a couple of international code optimization contests.

    The key here is that except for the h.264 optimization all of this has been pro bono, my daily job at a Norwegian IT company has almost never _required_ me to know a lot of math, but having math as a hobby means that I tend to spot all the bogus calculations in Powerpoint presentations. :-)

    Terje

    --
    "almost all programming can be viewed as an exercise in caching"
    1. Re:A job or a calling? by Genda · · Score: 3, Insightful

      Wouldn't you also say, that having heavy math chops allows you to see clearly when the line from problem to solution is non-optimal? Wouldn't you say that because you've grown your mathematical mind you can clearly see natural symmetry to problems and their data sets? Wouldn't you agree that the rigor of mathematical thinking is precisely the kind of mental ecology in which to couch programming problems? A football player might spend thousands of hours running through obstacle courses lined with tires... I've never seen a single tire on a football field, and yet they keep running them in training. Because those tires exercise the precise muscles those football players will need in the competition in the real world. Grow you math chops. Its worth it.

    2. Re:A job or a calling? by Terje+Mathisen · · Score: 1

      Genda wrote:
      > Wouldn't you also say, that having heavy math chops allows you to see clearly when the line from problem to solution is non-optimal?

      Oh, absolutely!

      Big O notation/thinking becomes instinctive after some years, making it physically painful to code a brute force/O(n*n) algorithm when you can almost always get to O(n*log n) or even better.

      Terje
      PS. My MSEE was in fiber optics and required solving the Schrödinger equation for the light coming out of the end of a mono-modus optical fiber. I don't think I've ever needed this level of math since then. :-)

      --
      "almost all programming can be viewed as an exercise in caching"
    3. Re:A job or a calling? by Anonymous Coward · · Score: 0

      having math as a hobby means that I tend to spot all the bogus calculations in Powerpoint presentations. :-)

      A simpler method for spotting bogus PowerPoint presentations is to note that they are typically given by marketing and sales people.
      Q: How do you know that someone in marketing/sales is lying?
      A: His lips are moving.

    4. Re:A job or a calling? by Anonymous Coward · · Score: 0

      I've also won a couple of international code optimization contests.

      This comment deserves to be modded at least +6.

  118. Requirements go beyond simple utility by Anonymous Coward · · Score: 0

    There are some courses of study that require that you take certain subjects to weed out those likely to fail. One requirement in college is Freshman Composition (Frosh Comp).

    Assuming you are studying to be a computer programmer or a physician, you may never need to write a composition like what is required in Frosh Comp. nonetheless, this test for mental organization is a good requirement. If you cannot order your thinking, you ought not be holding a scalpel over a live body.

  119. I work in research you insensitive clod by WillAffleckUW · · Score: 1

    My floor and the floor below are filled with statisticians and genetics researchers.

    Now go back to making crayon drawings like a good boy and stop bothering the female-dominated hard working biostatistical and medical research fields that solve your problems ..

    --
    -- Tigger warning: This post may contain tiggers! --
  120. Depends entirely on the field by neminem · · Score: 1

    I went to a specialized and rather rigorous science/tech college for undergrad, in which I took introductory classes in linear algebra, multivariable calculus and differential equations. It's rather depressing that I haven't really used a single bit of any of it since graduating (or even, for the most part, in any of my post-everyone-takes-these classes), but indeed, I haven't. But I imagine if I were doing anything particularly engineering-like, or anything having to deal directly with any sort of physics (which would include game development, as well as many sorts of graphics or audio manipulation), I would.

    I haven't even had to use anything from the second half of my high school algebra class. Though, programming is all -about- everything from the -first- half of high school algebra... (i.e. arithmetic done on variables. ;))

    I've had to use some basic geometry/trig all of once in the past 5 years of coding, and that was on an image manipulation question.

  121. Game developer for 10 years; little math required by Dixie_Flatline · · Score: 1

    So the title says a lot. I've used only a small bit of the whole field of mathematics over the years. Quaternions, trig and some linear algebra are most of what it comes down to. I think I may have used a derivative ONCE. Stats can come into play, depending on what you're doing.

    But I'm going to recommend something to you: take a bunch of math, and dive into a scientific field of endeavor that leverages that math. Most of the natural sciences require a good understanding of statistics. Physics obviously requires a lot of interesting math. Even if you decide to really study computing science itself, you'll need an enormous amount of abstract math knowledge; computing is little more than applied mathematics.

    I've got a minor in Earth sciences (meteorology, geology, etc.), and it's rapidly becoming obvious to me that the most interesting problems for a programmer to work on are in the scientific fields, not in the 'industry'. Climate modelling, economic models, terrain simulation, CERN and the LHC...those are places where math is completely requisite, and they're the fields that are either shaping the world or are significantly being shaped by the changing situations in the wold.

    Making games is interesting work, and I've enjoyed my time in this industry, but I'll probably make my way out in a few years to do more school in a physical science field. If you really want to have an interesting programming career--truly interesting and perhaps even world-shaping--you NEED math.

  122. It is about a way of thinking by Anonymous Coward · · Score: 0

    Mathematics is very important in IT.
    It is not that you directly haveto use it. Especially discrete mathematics is very important.
    With these mathematics you learn a way of thinking that will be very usefull in your career, assuming you do not want to be just the average joe. Being able to understand it shows also a lot about your competance in the field. You won need it to install software or put computers together but when it comes to designing and developping software it makes a big difference.

  123. Only if you want to by Anonymous Coward · · Score: 0

    I have found that you only use math if you want to... meaning if you don't want to use math you will almost always work on things that don't require it because you avoid math or you'll put some hack job together that is good enough without a thorough math review. However if will learn to enjoy solving math problems of any variety you will find opportunities to apply your skills and your job opportunities will expand. In the past I avoided calculus and got by just fine, but one time a problem that required calculus really intrigued me so I decided to really dive into it and refresh my calculus skills. I am really glad I did too because it's taken me down a different job path that I really enjoy.

  124. not specific knowledge but good testament by call+-151 · · Score: 4, Insightful

    Students who do well in the more advanced undergraduate math courses (real analysis, abstract algebra, etc.) may never specifically use those precise topics, but good performance in those courses serves as a strong testament about being able to deal with abstraction, work precisely, and construct correct arguments. Those skills will serve students well and may impress employers/managers that the student actually is pretty good at thinking and problem-solving.

    Linear algebra as mentioned above is probably more likely to be specifically useful in applications: modeling, graphics, science and engineering settings, as typically relationships are too complicated to be understood effectively by anything besides a linear approximation. But many linear algebra courses are technique-based and rather cookbook, missing an opportunity to take advantage of good more abstract approaches.

    --
    It's psychosomatic. You need a lobotomy. I'll get a saw.
  125. I've needed more calculus than I got in school by Animats · · Score: 4, Informative

    I have an MSCS from Stanford, but it's from 1985, when the logicians and expert systems guys were running things. So I have lots of number theory, combinatorics, automata theory, and mathematical logic. I even took "Epistemological Problems in Artificial Intelligence" from John McCarthy.

    So what did I end up needing? Tensor calculus. I realized that expert systems AI was stuck. The future of AI capable of dealing with the real world seemed to be in nonlinear control theory. Which is all calculus and statistics. I struggled with that, and got legged running over rough terrain figured out and patented. But this was 1994, and the simulators sucked, and I couldn't get any further without better simulators. So I spent a few years beating on that problem, and produced the first simulator that could do a ragdoll falling downstairs.

    By 1997, I had that solved, but it was kind of slow. A 200MHz Pentium Pro just wasn't enough engine to get it up to real time, and that was the top of the line in CPUs back then. By then I was burnt out on the problem, and it wasn't making much money, so I sold the technology off to Havok and went on to other things.

    I didn't see that what was needed was to couple nonlinear control theory to Bayesian statistics. That's what makes all those quadrotors zip around so precisely. Modern statistics barely existed when I was in school. Now it drives everything from finance to speech recognition to advertising, so it gets worked on and people study it. Nonlinear control alone never had that big a market, so the field didn't get enough attention to move it forward.

    So I needed more math, and different math, than I got in school.

  126. Signal Processing by ericcc65 · · Score: 1

    Pretty much every day, but I write digital signal processing programs in C/C++.

  127. Consciousness Expanding by Baby+Duck · · Score: 1

    Although in 12 years of programming I don't use math beyond geometry, trig, algebra I, and discrete mathematics -- taking 2 semesters of calculus expanded my consciousness. You see how numbers relate to one another in a whole new way. Learning about the kinds of problems the higher maths are meant to solve is also fascinating.

    --

    "Love heals scars love left." -- Henry Rollins

  128. Siggraph by Anonymous Coward · · Score: 0

    Go and get the latest Siggraph proceedings. You'll soon see that all sorts of math are useful if you want to do cutting edge graphics.

  129. Mathematics in games by jones_supa · · Score: 1

    I thought I'd add this little information piece. In this John Carmack interview the very first question asked is how much and what kind of mathematics is involved in game engines.

  130. You have to ask? by wermske · · Score: 1

    The fact that this question is being raised...is...disturbing. I'm talking early Bobcat Goldthwait, maniacal screaming, dark-acerbic comedy disturbing.

    Math is about much more than "solution." Math is also about how one arrives at solution. Math is about how one communicates the most fundimental ideas. Math is about proof, certainty, and understanding (individually and communally).

    Certain themes occur in our daily lives; themes that today, we "know" and "understand" (with certainty) because they are reduced to a mathematics. If there is no mathematics, one is left with faith-based, opinion -- hypothesis...speculation.

    One builds upon a foundation. If one's foundation is toolsets -- created by others -- then one's capability will forever be limited by said toolsets. However, if one's foundation is the underlying reasoning of toolsets, then one can transcend the toolsets and achieve excellence far beyond the imagineering of others. It was gaming, game theory, relativistic models, fluid flows, collision dynamics, vector mechanics... that grabbed me by my entrails and kicked my youthful ignorance, arrogance, and laziness into a new dimension of sympathy and love for the elegance (and necessity) of higher-order mathematics.

    The fact that the argument is evidenced by "Ogre" and "Unity3D" evokes an almost sympathetic, puppy-like pat on the head. Ugh... I see these kinds all the time at conventions. All gooey-eyed and heads filled with mush! I see their resumes and portfolios... and they go directly into the trash. I get their babbling phone messages and I route them to the bit bucket.

    Answer: If one is content with limitation; chained to the capability of others, unable to even communicate intelligently with pioneers in one's field... no, math is not important. But...trancendent excellence is forever denied to the willfully ignorant.

  131. Calculus and statistics by aclarke · · Score: 1

    I use statistics a lot. There's a lot of number crunching in programming, and data sets are getting bigger and bigger. Understanding statistics helps you understand trends, when they are significant and when they aren't, etc. I actually wish I understood stats better and should do some more reading on it.

    I must be a bit of a nerd, because I find calculus useful just in everyday life, let alone for my job. Understanding the difference between a change and a rate of change is something that most of us can intuitively grasp if we think hard enough about it, but being able to apply the language of calculus to that event helps me better understand and communicate it. Again, when applied to working with datasets, calculus becomes very important.

    Mathematics is a language that is used to describe reality. The better you understand mathematics, the better you can understand the world around you, and the better you can articulate that understanding, both to yourself and to others.

  132. Don't buy the hype by Cederic · · Score: 1

    Ignore the computer scientists. They tend not to be the best programmers anyway.

    Learn how to program. Learn software engineering. Learn how to deliver working software quickly, that meets the needs of its users. Learn how to re-use the work of others, in particular those nice computer scientists that did the research, wrote the standard libraries and included them in the basic language spec.

    It doesn't hurt to be good at maths, to be able to understand it, but it sure as hell isn't important to have a degree level understanding for most programming jobs. It certainly isn't as important as strong people skills. Linus isn't a living god because he's the best mathematician in the Northern Hemisphere, it's because he's able to coordinate and manage a large, diverse and intelligent team and get them working together.

    disclaimer: I didn't do computer science at university, it was too easy. I did financial analysis, where the computing element was merely automation of the complex analytics and mathematical models being used.

  133. Math is always a must by negativeduck · · Score: 1

    Yes,

          Depending on the field and where you your going you really should have it. CS covers a broad area, like many tech companies hiring an "computer guy" require a CS degree in the qualifications. The reality and they know it, that's not what they need, software companies love to say you have to have a CS degree but then you find out they are developing with perl. Really CS for a perl scripty job? Having the math base puts you at the bottom of the technology tower, that foundation where everything is put ontop of it.

    A pure example, while not 100% relative, ask your "IT guy" (admittedly many not all companies consider IT your desktop support) how a CPU truely works. While they are a smart man or woman and solve many problems they very often have no idea the foundation of how things a layer bellow works. But the stronger your base is the further down that tower you go, and the farther down it you are in the future you can easily move to any place above it.

  134. I've never had to use any math by Anonymous Coward · · Score: 0

    Let me guess, you never liked math and never were any good at it?

  135. Whew by Anonymous Coward · · Score: 0

    I first read the headline as "How many of you actually use METH"?

  136. Mind by wasabii · · Score: 1

    My view is that even though you might not need these skills, the very act of attempting to learn them alters the way your brain is capable of solving problems in a way that is indispensable.

  137. All day, every day by Anonymous Coward · · Score: 0

    First day, first job, a million years ago, before finishing my bachelors degree, I was programming a distribution optimization routine and needed to figure out great-circle distance between two cities based on their longitude and latitude, in order to estimate shipping costs. Used stuff I had learned in vector calculus.

    Fast forward, just finished a PhD in math, use stats/probability/etc every day, all day in my networking job.

  138. What level of programmer do you want to be? by Anonymous Coward · · Score: 0

    Having been a game developer, what level of game developer do you want to be? Will you always use predefined engines? When I was working as a game developer, we were working on early dev kits (really, glorified prototypes) for the PS3 and XBOX 360. Defined engines didn't exist (especially on the PS3). Doing anything interesting graphically required an extensive knowledge of Linear Allegra (which most colleges require Calculus to enter).

    Discrete Math is a definite requirement to understanding how machines work at their base levels. As for Calculus itself (aside from being a pre-req for Discrete and Linear Algebra), unless you are always going to use predefined physics algorithms, you need to understand calculus to create new physics algorithms yourself.

    So, how much math you need depends on what kind of developer you're planning on being.

  139. Biostatistical Programming.....Everyday by Anonymous Coward · · Score: 0

    Half my company are programmers with math or statistics backgrounds.

    Its a must.

    Obviously not all math is needed but you will never know what you need in high school so its good to learn it all.

    Also, math is self-supporting. If you learn a little Calc, you will know more about Stats.

  140. Not all maths are created equal by mcmonkey · · Score: 1

    I thought the original article was a troll. Math is hard, and causes kids who are otherwise good students to drop/fail out, therefor math requirements should be lowered.

    You could also say memorizing names and dates is hard, and causes kids who are otherwise good students to drop/fail out, therefor history requirements should be lowered.

    Grammar and spelling are hard (and unnecessary anyway since MS Word will do it for me!), and causes kids who are otherwise good students to drop/fail out, therefor language requirements should be lowered.

    Basically, the originally argument is "no one is great at everything, so therefor nothing should be required and grade school should have no minimum standards." It is a position I completely reject.

    The very premise is bunk--math is not that hard. If you are dropping out or failing to graduate high school in the USA because of math, then you aren't that smart and weren't a good student to begin with. As a math/science geek, this was never an issue for me. But I can relate, because my language ability lagged behind my peers, particularly when it came to learning a second language. I know what it is struggle in one particular area.

    So is that why I dropped out of school? Actually, no. I somehow managed to pass two years of Italian in high school (not required for graduation, but I felt I had no choice as a second language is expected on college applications.) Oh, and I also passed a year of Russian and a year of German in college. Some of the toughest courses I took. It was more of an effort for me to do two semesters of Russian over a summer than all the extra math courses I took in my spare time that eventually added up to a second major.

    So F you, boo hoo, math is hard. Yeah, if you're stupid and lazy.

    But that's not what I'm hear to say.

    What I want to say is, it's not just math, but which math. Our USA system is geared towards getting every one to calculus. Calculus is fun and all (no really, it's fun!), but not a relevant goal for everyone. I think this particularly applies to computer scientists and programmers.

    Most folks would be better off on discrete maths, such as abstract algebra, linear algebra, group theory, probably, etc. (Probability can include calculus (particularly when infinite series get involved) but there's a lot you can do with just high school algebra.)

    So to the OP here, I'd say, yes, math will do you good, it just might not be calculus.

    To the folks who can't even get over high school algebra, well, yes, I would like fries with that.

  141. Layman's perspective by grasshoppa · · Score: 1

    I am far from an expert on this subject, but it's shocking how easy it is to tell who has or hasn't made a study of math. Usually at any rate.

    Those that study math and really took the time to comprehend what they were looking at seem to be much more capable of the more abstract problem solving.

    --
    Mod me down with all of your hatred and your journey towards the dark side will be complete!
  142. Hmm let's see by Dunbal · · Score: 1

    Well, I'm a physician. So while I don't deal with differential equations on a daily basis, I certainly needed a lot of math just to understand things like pKa and reaction rates in biochemistry, things like stroke-volume and the Starling equation, to understand how a kidney works, to understand why a 4cm aortic aneurysm is not such a big deal and a 6cm one can be deadly (something about a 4th power in there), acid base imbalances, why in the trauma room I need to use the short catheter and not the long one, etc. I needed math just to understand all of those concepts. In my day to day work, well, I don't need THAT much math - mostly fairly simple arithmetic. Dose is 50mg/kg divided in twice daily, patient weighs 7 kg, so I need to give him 350mg a day which is 175mg twice a day... Not rocket science. You need to look at an arterial blood gas printout, glance at the pH, HCO3 pO2 and pCO2 and instantly decide if you're looking at metabolic or respiratory acid/alkalosis. There's math there but after a while it's not work - they are all numbers you have seen before. And then there's the math that has to do with billing, and figuring out if you're actually earning or losing money which is not as easy as it sounds. Then there's the math that you have to deal with from your banker, who wants to bill you $700 a month for that new equipment you just bought. Should you buy the other model and save $50 a month, or not?

    Then I go home. I have a mortgage. More math. Should I refinance, or stay as I am? How about retirement? How much money will I need to maintain my lifestyle, and how can I make sure I have it?

    Oh there's plenty of math in life. Not everything is a Taylor series, or trig, but think of it like running. You have to learn to sit, then to crawl, then to walk, and then to run. Most of your life will be spent sitting, some of it walking. Rarely will you run. But still it's good to know you can, and that you can do it when you have to. Math is the same way. If you're a fool you'll kid yourself into thinking that math isn't important. That's the same as going through life with your eyes shut. Things will happen to you and you'll get into trouble, because the ones who are good at math will rob you blind. Or you can open your eyes, and spot where the reasonable deals are and where the rip-offs are.

    --
    Seven puppies were harmed during the making of this post.
  143. designing an engine by lkcl · · Score: 1

    well... i'm designing an engine, at the moment: http://lkcl.net/engine for this project http://facebook.com/UltraEfficientVehicles. the actual complexity of the maths required to do a proper job is waay beyond my abilities, so i am using iterative programming with python, as a temporary substitute.

    to give you an example of the kinds of things i need to do: the design is a cross between a revetec and a bourke. if you've not heard of either of those: the revetec uses counter-rotating multi-lobate cams instead of a crank (2 tri-lobe cams shared across 6 cylinders), and the bourke used a scotch yoke to get a perfect sine wave. both designs have extended dwell time at TDC.

    so basically, the "bang" is longer, hotter and quicker than a standard crank. what that means is that the exhaust gases are *not* burning as the piston goes away from TDC. and, with the cams, it's possible to arrange them so that as the piston falls away, the pressure against the cam face is turned into a *continuous* torque. so then, the advantage of the cams therefore is not just that you can get a torque pressure for over 120 degrees (as opposed to only 40 for a crank), but that you can do *anything* - including tricks like the above.

    so the equation that i need to solve is that the rate of change of the face of the cam, acting as a lever to produce torque, where the lever is itself shrinking in length (because the cam face is dropping towards the centre of the spinning cam), equalises the torque as the amount of pressure falls off due to the expansion of the hot gases. luckily - and i say luckily - because "detonation" is being used (above 1800F you get the hydrogen burning as well as the carbon, so it's all over in under a microsecond) there's no burning gases so it's not as complex as it could be.

    as i simply haven't got the level of maths to express the equation properly, nor do i know what sort of pressures will actually be involved in a 70cc cylinder, nor do i yet know exactly what compression ratio it's going to run at (i've made some adjustments to the cylinder's stroke), i am having to do the best i can.

    so to calculate a first version of the cam, i ended up using a spline curve to roughly match a sine wave and then altered it slightly. even here, however, my first attempt to calculate the cam face was an O(N-cubed) algorithm, and i had to look up "line through circle" which is y=mx+c into y-squared + x-squared = r-squared and use that to reduce it to a more accurate O(N-squared) algorithm.

    bottom line is: hell yes you lucky bastard if you've got an opportunity to learn some more maths for god's sake do so. you're damn lucky: you could probably solve the equations needed to sort this stuff out in a couple of hours, whereas it's taken me two weeks of thought and experimentation to get as far as i have, not having access to the right level of expertise.

    btw, to the guy who said "instead of calculus, use linear algebra" - you're dead wrong. the iterative loops i'm using are a very poor substitute. when i zoomed in on the critical sections of the results (the DXF output) of what i'd produced, i found that they were wrong. i had to increase the number of steps around the 360 degree circle to 1,440 and the inner loop steps to 14,400 in order to get a level of accuracy that looked acceptable, and i don't actually know if it's going to be good enough.

    if instead i had the right maths, i could have used it to calculate the tangent of the roller-bearing as it drops against the face of the cam, and worked out properly, with an O(N) loop, what the cam face should be. the O(N-squared) loop is because i have to "simulate" a CNC milling tool the exact radius of the bearing going round, "shaving" the cam face away, taking a minimum distance (hence the line meeting the circle) as the bearing rotates through 360 degrees (inner loop, 14400 steps) as the cam rotates through 360 degrees (outer loop, 1440 steps). this iterative technique is *not* as accurate as using calculus.

    1. Re:designing an engine by lkcl · · Score: 1

      i forgot to mention: i also had to do a vehicle simulator. mostly that was using v-squared = u-squared + 2.a.s and all that, but i also had to do torque calculations, to force, back-caclulating to a maximum acceleration which was turned into a maximum power, limited, and turned back again. the reason for doing that is that you musn't over-spin the wheels by having too much acceleration. so it's quite complex stuff, but is definitely iterative loops and all. involves a hell of a lot of physics equations which luckily are all well-defined.

      the original that i did 18 years ago (called SpecManager, for Detroit Diesel), was far more complex. that we had to do automatic torque converters as well as manual gearboxes. uunnnfortunately, with torque converters there are *four* parameters: torque+RPM on one side, and torque+RPM on the other. but what you actually get given at any one time is only *two* of the four values! you either know the torque+RPM on one side or the other, or you know the torque on both sides but not the RPMs on either side.... it was absolute hell.

      anyway, i made a good guess, and picked an acceptable ratio that the torque+RPM would be at, and that turned out to be good enough to get the whole thing accurate to within 0.5% of real-world fuel economy (with one small error in the gear-change algorithm under very specific conditions).

      but, again, yes: all that was definitely iterative programming loops - luckily an O(N) algorithm (approximately. there was a bit of game theory thrown in which made it O(N*M) where M was much smaller than N).

    2. Re:designing an engine by badkarmadayaccount · · Score: 1

      Please consider opposed piston designs line the Napier deltic, double acting pistons (use both sides), sleeve or piston valves, and fuel preheating from engine waste, preferably pre-evaporated, with carburettor like mixing, possibly dry strokes similarly to six-stroke no-cooling designs.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  144. You're already "advanced" by rknop · · Score: 1

    You say you've used trigonometry. if so, then you're already "advanced" beyond the level that Hacker was talking about in his article where he said that Math Is Too Hard For Our High School Students. He was advocating dumbing things down past algebra and trigonometry.

    Now, mind you, I think of even trigonometry as high school math myself. But if you use it and know how to use it, you're already in the top half of the distribution of students in college.

    Will you ever *need* Calculus in computer programming? Probably night. I might recommend taking a class in linear algebra if you're interested in computer graphics, because some of that applies. You may not use it, but the underlying engines rely on it. And, yeah, the underlying engines rely on numerical approximations to calculus for things like physics engines. Linear Algebra doesn't require calculus as a prerequisite.

    However, Calculus is interesting and stimulating, and will stretch your mind to think in new ways. If all you're interested in is training for the job you want to do, then, no, you don't need it, but truthfully, except to match resume requirements to get through the door, you don't need most of college. If, on the other hand, you want to be broadly educated about the world and human intellectual achievements, then calculus is a good thing. Not necessary, but well worth the time.

  145. math is a way of thinking by Anonymous Coward · · Score: 0

    Probably said already, but its not math per se that you should know, rather a general understand of solving problems in a rigorous proof like way. Thats half of programming, making something that works all the time every time. The second half is being able to communicate what you've done to others. In this way, math is a wonderful example of both qualities, if not maybe being a bit too pedantic. But think about it, rigorous proof means that the building blocks you used and proved before will always work regardless of where they are used, so take your arithmetic, its always going to work. From their math branches out to many other more complex fields, but the basis of each is proven. So if one field takes a useful concept from another, it too will work, because its built on the same arithmetic and logic as their field. This is where communication can get a little hairy, but for the most part, as is evidence by the continued march of mathematical progress, is fairly well defined. Operators, and function are generally agreed upon, and for older concepts, have been for hundreds of years.

    Another thing you should not pigeon hole yourself in, is game development. You may like playing games, and as you are working your way through programming, making games may be fairly entertaining, but as toolkits and 3d graphics become more of the digital artists territories, game designers are getting more and more relegated to the debug, build, test, and if your lucking using a level editor. Video games I'm sad to say are become less the realm of programmers and more the realm of entertainers and producers.

  146. Math focus in university is not ideal for game dev by yerex · · Score: 1

    I work as a graphics and animation programmer in the games industry, and I found that in university the required math courses focus mostly on calculus, (for my cs degree I had 3 required calculus courses, 1 required linear algebra course and 1 required logic course), which maybe isn't the best focus for many people.

    Calculus still does come in handy in quite a few games related places like lighting equations and physics simulation, however, for the most part other areas of math apply much more directly to my every day work. Which is to say, math is used in my every day work, but maybe not the parts that are most frequently taught.

    Understanding geometry and linear algebra techniques used for modifying, blending, and interpreting spatial information (transforms, positions, directions) is a requirement for any game programmer, but little of it is taught in basic university math courses.

    Even in my first linear algebra course (which I looked forward to because I was trying to learn matrix math on my own), most of the time was spent on solving systems of linear equations, least squares etc, with very little time spent on geometric transformation... and I don't think any course I ever took covered quaternions at all, which is the most difficult to grasp, and useful math construct for storing 3d orientation.

    Anyway, yes of course you need to learn math! Learn whatever math they will teach you, it will help make it easier when you have to learn the really useful stuff yourself.

  147. GIVE UP NOW by Anonymous Coward · · Score: 0

    If you're already at the "well, will I actually USE this sometime" phase, you should get GET THE FUCK OUT of programming immediately. The last thing anybody needs is another lazy-ass hey-I-got-my-MCSE-so-now-I-don't-need-to-learn-anymore jerkoff in this business.

  148. who needs math? by Un+pobre+guey · · Score: 1

    If you're an engineer of any kind (including software), then guess what? You need math. Maybe a lot, or maybe a little (and it depends what you mean by "math"), but chances are the more math you can handle the better your work will be.

    However, that wasn't the question, it was in effect "how much math should the average person be forced to learn in school?" This touches upon the current fad of piling on more work, more STEM, making younger kids learn what their forebears learned at later ages, and insisting that everybody has to go to college. Algebra in middle school? Sounds like a great plan, but in practice it is utterly moronic and self-destructive. Much of the curricula, workload, "standards," and homework are there not so that kids learn more or become better citizens, but to con parents into believing that their kids are in a great school and have a shining academic future. It's bullshit. Well below half of kids who exit middle school successfully graduate from a four year college program (you'll have to look it up yourself), and it's worth asking what happens to those who actually made it a couple of years after graduation. Let's not even talk about the cost, which amounts to a colossal fine to be paid by those who dare to pursue higher education (unlike in most other societies).

    We insist on living in a fantasy world. Who needs manufacturing? We're in a {knowledge | service | innovation | blah blah blah}-based economy! If you don't go to college, you're on your own and nobody gives a shit about you, and you're likely condemned to a low wage forever. If your personality doesn't fit into the narrow demands of the school curriculum, then you must have some phantom mental illness and need to be medicated. Obviously it can't possibly be that the educational system is deeply flawed. If some vastly unhealthy diet is heavily promoted in commercial pop-culture venues and easily available at every single supermarket on the globe, then it must be good! Diabetes, heart-disease, obesity, lung cancer, etc. should be treated with pills that you need to take for the rest of your life, not by avoiding junk food, sugary beverages, smoking, etc. Try suggesting to people that they should only drink sweet soft drinks a few times a month. You yourself probably think it's a crazy suggestion. Next step: shift the discussion of the explosive growth of health care costs to hot-button political controversy where it will languish forever and never be solved.

    Believe it or not, all of these are consequences of a moronic, self-destructive educational system that successfully serves a small fraction of the population. What do people learn in school? To feed themselves in a healthy sustainable way? To earn a decent living? To be skeptical of whacko religious, political, and cultural figures and doctrines? To cultivate their minds and bodies to be wiser and more satisfied with life? To build an ever improving society and culture? To help make sure that this lifetime is as good as it possibly can be for themselves, their fellow citizens, and for everyone else on earth? Or do those things sound utterly idiotic and at odds with real life and the education we all end up with?

  149. Caclculus by Anonymous Coward · · Score: 0

    You probably won't use actual use calculus in your code. You'll use algebra and trig but you may still need to understand calculus.
    Simplified example: acceleration = dv/dt. Your code: a = (v2-v1)/(t2-t1)

  150. External Ballistics by Anonymous Coward · · Score: 0

    I would have to agree that it all depends on the kind of programming you are doing. Engineering programming is calculus heavy. Physics programming is calculus heavy. As an example, ballistics is a physics problem which is deceptively simple, but requires quite a lot of calculus to get right.

    It has been argued that packages exist to do all of this for you, which is true, but if that's the attitude you have as a programmer you will find yourself playing with other people's toys until you retire. If your attitude is to be the best programmer you are capable of being you may find yourself writing that package everyone else uses. The greater majority of people aren't in that role, and will therefore tell you otherwise. The minority who DO use the math skills are highly prized, and get to work on much more fun things than those who don't.

  151. Diff equations are key to modeling the real world by durdur · · Score: 3, Informative

    But a huge amount of computer science is not about modeling the physical world. It is about organizing data or doing accounting or serving up web pages. Advanced calculus does not help at all with that.

  152. I do by dskoll · · Score: 1

    Three jobs ago, I worked on electronic design automation that required knowledge of mixed integer/linear programming and graph theory.

    Two jobs ago, I needed calculus and vectors for a different EDA tool. Also needed quite a bit of hairy computational geometry.

    One job ago, didn't need that much math... just a bit of vectors and computational geometry.

    Current job, don't need calculus, but do need statistics.

    I would say that most interesting programming jobs require a fair amount of mathematics. The boring, crap, grunt-work IT programming tasks probably don't.

  153. Math is more than crunching numbers by Anonymous Coward · · Score: 0

    I don't do any calculus in my job. I don't do any linear algebra in my job. I didn't use any of either in my last job (scientific supercomputing).

    The advanced math courses I took (including much of the math I learned in advanced CS and chemistry courses) changed the way I looked at problems. I can look at a problem in terms of Euclidean geometry, spherical geometry, (maybe) hyperbolic geometry, or in terms of Newtonian calculus and depending on the situation in terms of predicate calculus or lambda calculus. I'm sure there's other approaches that I was introduced to that I don't know the names for.

    Seeing problems from multiple angles changes the way you build things. Some problems are complicated if you use a geometric approach, and utterly simple using lambda calculus. Others are a nightmare using a calculus/algebraic approach, but the geometric approach shows some ways to simplify the equations and get elegant solutions.

    I don't crunch numbers using any of the advanced math techniques, but I am a much better programmer for the math classes I took. More math would have made me better.

  154. My take by Anonymous Coward · · Score: 0

    Discrete Math, Linear Algebra are pretty useful in many programming tasks.
    Trig & some Calculus is pretty useful for 3D graphics.
    Design of Experiments and stats would be useful for optimization.

  155. Re:Money by jones_supa · · Score: 1

    Why?

  156. Depends on what you want to do by DaChesserCat · · Score: 2

    If you do not have a decent grounding in set theory, please do NOT attempt to do any significant database work.

    Basic select, insert, update and delete can be dealt with via modern ORMs. Anything beyond that, such as joins, intersections, unions etc. are almost entirely set theory. Where is that covered in the traditional mathematics curriculum?

    Yes, some ORMs purport to do that stuff, too, but they rarely do it well.

    True story: I was taking a database course as part of my college education. The professor introduced us to relational theory, including an algebraic notation which described subsets of fields in a record and subsets of records in a table. Then, over the course of three class periods later in the semester, he taught us SQL. It boiled down to "this is how you do xxx in SQL." From that, we got table creation/destruction, selects, views, subqueries, aliased fields and tables, inner and outer joins, the whole enchilada. I've been able to build on that and do some pretty heavy-duty SQL work but I had to know the underlying theory. Being subsequently trained in RPG, where much of the legacy code does NOT use SQL (and you invariably don't have time to replace it with code which does), that theory comes in very handy.

    We understood the underlying theory, all expressed via math. Learning SQL was a simple matter of learning how to express our desires in a language the computer could understand.

    You need at least algebra to understand O(n) notation. Without that, you're usually stuck either cluelessly gluing together someone else's libraries (a LOT of that in modern SoftwareDev) or continually recreating O(n^3) (or worse) algorithms.

    If you aren't going to learn calculus, one can only hope you never need to do any kind of Numerical Analysis. Any course where you're allowed to use Mathematica, because the calculus (such as taking the third or fourth derivative of a function) is "overhead" relative to the material being covered, is the very definition of "heavy duty." And, since physics is largely the application of calculus, avoiding calculus means you also need to avoid anything which involves physics. Stuff like game design (Angry Birds uses plenty, Angry Birds In Space uses more), putting rovers on Mars, wireless network design (wave propagation between obstacles and through different media is very calculus intensive); you know, the COOL stuff.

    For the typical web developer, creating shiny web pages which do extremely simplistic database work, you probably won't need calculus. Ever. Is that all you ever aspire to be? And how long can you continue to do that without being crowded out by graphics design wizards with increasingly intelligent design tools?

    --
    ... by the Dew of Mountains the thoughts acquire speed, the hands acquire shakes, the shakes become a warning
  157. Profs expect you to know math. by GodInHell · · Score: 1

    It sucks, but your professors will expect you to have a higher level of mathematical knowledge and design assignments that assume you know how to use advanced math. Generally, no, you can look up the forumlas and plug them in or use a package that does the math for you - but your prof may give you ambiguous assignments that you will not no how to solve unless you have the math chops.

    That's part of the reason I'm a lawyer and not a programer. Money was also a factor.

  158. It's true that it depends... by NeilBryant · · Score: 1
    It depends on how interesting you want your work to be, and how good you want to be at it.

    I have been through several levels of Calculus, and, admittedly, have never actually used Calculus in any of my programming jobs; but I didn't get high enough into the theory of things to need it. I did some work with biometric scanners, but not the theory end. I just missed a job programming laser cutters that sounded like it would use fairly decent math. I've had one boss and one teacher who worked at NASA; and I wouldn't expect anything that cool without some serious math.

    OTOH, I am pretty good at basic math through trig (partly from the calc classes), and it has been a huge help to me in most of my dev jobs. I've had a few positions alongside non-mathy programmers, and I ran circles around them. I once took a professional developer's code, and reduced dozens of complex lines down to three simple math equations. There was nothing exactly *wrong* with his code (except he was getting a logic bug he couldn't find), but three lines is way easier to maintain, and it's a lot more fun to write.

    If you want to do anything with networking, masks are easier to do if you understand boolean logic well. If you want to write games--especially graphics--you can be a lot more efficient if you're good at math (and more efficient=faster). Text manipulation is easier to do when you get things such as capitalizing a letter just means subtracting 32 from it. Twiddling the calendar is easier when you get that a month is 30.6 days, and how that reduces date math to a division and an addition.

    So, no; you don't need math--all of that is doable without, as long as you have the libraries, etc--any more than you need to be a good runner to enter a marathon. But being good at math will make you more competitive, and a better programmer, and will give you better tools for problem-solving.

    Hiring-wise, I would take a candidate that is good at math over a more experienced one who isn't.

  159. Calculus rarely, but other math always by Anonymous Coward · · Score: 0

    There are situations where calculus is very relevant (someone mentioned rates of battery use and estimating time remaining), but even if calculus isn't relevant, it's great practice for the algebra and statistics that is.

    I don't use calculus much in my own work, but algebra and statistics get used all the time. Not to mention geometry and trigonometry, but you apparently already know that's important. Also, although I rarely need calculus I do know enough of it to know when I need it. If I'd never used it, I'd probably flail around helplessly trying to come up with a solution for a seemingly "impossible" problem that is quite easy to solve with calculus.

    Think of it like an emergency toolkit that you don't use often, but when you need it you *really* need it. And if you don't have training with it, you won't even know how bad the situation is and how much time you're wasting.

  160. Oh boy! by zenyu · · Score: 1

    In high school I didn't think math was all that important to programming. I was astonished at how wrong headed I had been by my sophomore year in college and tried to learn as much math as I could. You don't need to be a super math genious or anything. But algorithms are really just math and most of what a programmer does is string together algorithms to solve a problem. Some math has direct applications like Linear Algebra, Complexity, Logic and Set theory, while others like learning the transforms (Laplace, Fourier, etc) and other Calculus stuff or Probability is only used heavily in some subsets of the field. But they all sharpen the mind in ways that are useful for a programmer.

    A programmer solves word problems. You get a sloppy problem defintion, you refine it and then you write out the formula for the computer to solve. The level of math required to come up with the formula depends on the complexity of the problem you are trying to solve. Most real world problems can be solved by simple algebra and logic, but the more math you have under your belt the more easily you can recognize problems that can be solved better. A transform can change an expensive O(n^2) algorithm into a O(n log n) algorithm. Knowing the math can tell you when that makes sense, and if you aren't good at that stuff you can at least know it and get the problem reassigned before you waste time on a bad implementation.

    BTW A Programmer also spends considerable time debugging. This is often just reading the math that others (or an earlier you) has written and figuring out the disconnect between the intention and the reality of the formula. Other times it is figuring out what base assumption is wrong or proving the harware is broken.

  161. Math is related to problem solving skills... by Anonymous Coward · · Score: 0

    I work with software that does Rotating and Recipicating Machinery Diagnostics in the Energy field and we use heavy math quit frequently. Calculating theoreticals curves of machinery performance, predicting failures and maintenance cycle times, and general balance of plant and critical asset assessments. TONS of MATH. It's awesome ;) As many other's have said it really depends on "where" you go in computer science and what interests you have. Some jobs require a lot of math and others require very little. But Math is the foundation of problem solving skills. When you try to solve a proof in logic and sets or work on complicated problems in linear algebra it teaches you to look outside the box, to understand complex systems, and to dig deep into the tool box in your head to come up with creative and simple solutions to complex problems. Math helps you learn all of that.

  162. YES by llZENll · · Score: 1

    I have been a self employed full time game programmer for over 10 years. I use trig every week, calculus maybe once a month, and have even dipped into differential equations a few times. It all depends on what type of game you want to make, and what libraries you are going to use. If you are going to write your own physics engine then you must have an awesome grasp of math, even if you use an off the shelf one it still helps to have a background heavy in math.

  163. It's Not a Question of Need by Anonymous Coward · · Score: 0

    You may not use calculus, statistics, etc. when you program. I could go on about areas of math that absolutely do matter in programming, such as discrete math. Instead, it's important to realize that the most important skills you can have in programming are logic and reasoning. These also happen to be the most important skills in mathematics. By practicing mathematics, you hone many of the same skills that you would use as a programmer, not to mention that you enrich your own knowledge.

  164. I have a weird view... by pngwen · · Score: 1

    I'm a theoretical computer scientist who slings code for fun. I question the validity of teaching programming as part of computer science. Sadly, that battle was fought, and lost by my side, way back in the early 70's!

    --
    I am the penguin that codes in the night.
    1. Re:I have a weird view... by w_dragon · · Score: 1

      Dijkstra, is that you?

  165. Math?! Too Much Time on Math is the Worry?! by Volvogga · · Score: 1

    In relation to the topic, most programming tends to top out at algebra. Some of it uses trigonometry and statistics. Calculus and imaginary numbers come into play during certain, specific engineering requirements. So it really depends on what you are coding, but I would say that you really don't need calculus. What you do need is a solid foundation in mathematics and to be in practice. There are other math-related topics that come up in information technology. A couple of examples off the top of my head would be data structures and encryption. If your math skills are rusty, those topics might not be very easy to comprehend. Another consideration is that any college or university you go to will probably make sure you know your mathematics by having you take their classes (unless you test out of them) regardless of what you took in high school. Speaking from experience as someone that went to a university from a public high school in the USA, chances are that you will probably not be ready for the demands of higher education coming out of high school. You really do not want to be rusty at that point, or it will be that much harder for you (especially since advisers will probably suggest you take five to six classes a semester if you don't want to be there into your thirties).

    Slightly off topic, when did a call out against math start? I was required to take 3 years of math in high school. Every math class I had, we covered new topics. I was required to take 4 years of English/Literature. Every year was the same exact thing as middle school, with a slightly higher vocabulary expectation. Read a few books, write a few papers. Done. I can pretty definitively tell you which class was a bigger waste of my time in high school. If they want to get rid of some standard requirements from the curriculum, drop the English classes. If you can't write at a decent literary level after ten years of schooling, you shouldn't be advancing in grade-levels.

    --
    Vol~
  166. Second nature by biodata · · Score: 1

    Most decent developers use so much maths they don't even realise they are doing it due to familiarity with the language.

    --
    Korma: Good
  167. avoiding math is a red flag for employers/schools by Anonymous Coward · · Score: 0

    When you apply to university, and apply for jobs, you're going to need to somehow demonstrate that you like doing the work and you can do the work. The fact that you're already programming is a good thing, but if you are avoiding math then many employers / admissions staff will assume you don't like mathematical reasoning or you're not good at it. And mathematical reasoning is *essential* to programming regardless of whether you're using the specific coursework.

  168. Depeneds on... by ZonkerWilliam · · Score: 1

    The type of software you end up making, I used to work for a software company that made applications for lab testing so you needed to know Integrals and Derivatives.

  169. Not the "math" but the skill by Anonymous Coward · · Score: 0

    I've found that while I don't do complex math at all, the skills of solving through problems and equations (especially identifying *where* to begin on a project or problem) have been invaluable.

  170. Constantly by tool462 · · Score: 1

    Not everybody does, but I use higher math skills pretty frequently (calc, diffeq, linear algebra, statistical analysis, etc)
    These things are tools, and you can only use them if you have them.
    To insert the mandatory car analogy, if you only have a small hatchback, you'll probably do just fine. You can generally get where you need to go, and you probably won't miss the things you can't really do. You'll just avoid the stuff that requires something else, like trips to the hardware store, or whatever else.
    But imagine you also had a truck. Sure, maybe you use the hatch most of the time, but when you really need it you have a tool that take on some heavier jobs.

    These other skills are just like that. You'll get by without them. But if you have them in your back pocket, you can do a lot better than just get by. You won't ever see "Must be able to solve second order differential equations" on a job opening. You won't ever have your performance measured in # of integrals / day.
    What will happen is that you will be the person who can solve problems that other people can't.

    Some examples from my workplace over the years:
    Replaced unreliable/unstable linear fit noise filtering algorithm with one based on FFT and low-pass filter
    Multi-variable curve fitting of empirical data to assist designers
    3-d field solver to model silicon failure
    Detailed statistical analyses for yield prediction

    Nobody came and asked us to do these things. They came to us with problems they couldn't figure out and we did.

  171. Use it every damned day. by drstevep · · Score: 2

    Understanding why the math works makes the programs work. Understanding probability and statistics make my inline sampling calculations correct. Understaning how spline calculations work make my curve approximation code (or even the use of curve approximation libraries) correct.

    Yes, there are a lot of good libraries out there. They are optimized. They are error-correcting. They are correct. And knowing what they do and how they work enables you to use them effectively.

    When you talk to your clients (or your bosses) and they ask you about how you did something, the ability to pull the core math and explain it will go very far.

    It is kind of like lifting weights. The lifting isn't its own end. It makes the daily (carrying 40 pound boxes of cat litter into the house) mundane. So it is with math. Understanding simple things as polynomial interpolations for higher-order polynomials can make or break your ability to project storage estimates. Understanding O() notation will help you program well.

    Don't scrimp on the math. There are enough bad systems out there for other reasons already.

  172. How many of you actually have sex? by nicoleb_x · · Score: 1

    "I'm a high school student who is interested in sex. I've been told by teachers and parents that sex classes are a must for any teenager. I've been dabbling around with the opposite sex for about two years now and have been masturbating for longer than that, but I've never had sex for real. What are your experiences?"

  173. Be prepared by dmatos · · Score: 1

    If you're trying to model something that is governed by calculus, then knowing the calc will help you model it. And it doesn't take much for something to need an integral, or differentiation.

    The question you're really asking here is "Is it worth all of the hard work to learn higher-level math, or will I be content to just be a low-level code monkey?"

    I know of at least one company that opts to hire mathematicians and teach them programming, rather than hire programmers and try to teach them math.

    --

    It may look like I'm doing nothing, but I'm actively waiting for my problems to go away.
    --Scott Adams
  174. It's a filter. A curse. And a blessing. by Qbertino · · Score: 1

    Math is a filter. At least here in Germany. 120 Students start CS, by 3rd Semester 85% of them have left and given up. The lectures move from the auditorium to small rooms where the Prof. makes tea for all and then discusses advanced boolean algebra, logic boards or the neat learning computer he built over the years.

    Math filters the cream from the crop. If you make it past the first 4 Semesters, Math disappears, never to be used again. Unless, that is, your joining your CS with an even more hardcore field like engineering or something.

    I hate Math just as much as the next guy, mostly because I hate the inherent historically grown ambiguity of its notation standards, but in a way I'm also gratefull. That way, when in about 4 years I get my degree I won't feel like a wuss, but rather like someone who's actually studied something that is - you know - worthwhile going to college for. ... I'm actually reading myself for a late career move into a degree in Business Informatics. And the Math stuff scares the shit out of me. ... Guess I'll just have to grow some balls and man up. It will be tough, and I'll pass my math credits by the skin of my teeth, but I also discovered that the hard stuff is part of the fun.

    Of course, wether or not I make lots of money once I have a degree, that is a different story. I'll be continuing my business moves on the side. ... But, as mentioned, also doing a lot of math I've never heard of in 25 years of programming.

    --
    We suffer more in our imagination than in reality. - Seneca
  175. math bends your brain by Anonymous Coward · · Score: 0

    This dynamic is true in many engineering fields. You can get through many engineering careers without ever actually using calculus, for example.

    However, you still need to learn calculus, and the other higher maths, because doing so will change the way you think about dynamics, numerical, and physical relationships. Seriously studying calculus will in fact warp your brain, but in very useful ways. Even if (when) you forget how to do an integral, the underlying concepts will still inform your thinking - and that's what you really need, and will use daily.

  176. Strictly speaking... by djchristensen · · Score: 1

    I only really use algebra and maybe some trig from high school for the vast majority of what I do as a software engineer working mostly on embedded systems. Without a very strong grounding in those subjects, I wouldn't be able to do what I do.

    But that doesn't mean that high school math is sufficient. Without the calculus and discrete math classes I had, I don't think I would have nearly as strong a basis in the "lower" levels of math that I need regularly, even though I remember very little calculus. And to be perfectly honest, I feel at a disadvantage at times in not having a broader knowledge of some of the higher math concepts. That would provide me with a richer tool set from which to pull solutions. But that can be said also for other fields entirely, like biology. Many of the more interesting problem solutions require interdisciplinary knowledge; think about genetic algorithms and such. I haven't the first clue about genetic algorithms so they don't exist in my toolbox, which is unfortunate.

    So the question of what math is used by SW engineers on a daily basis won't necessarily get you a useful answer. As cliche as it sounds, the broader your knowledge base, the better able you will be to solve types of problems that you can't possibly anticipate while you're in school, even if you know exactly what field you want to go into. I don't regret a single second of the math classes I took; on the contrary, I wish I had taken more (especially after taking the Crypto class from Coursera).

  177. Yes, unless you like counting beans, only by Anonymous Coward · · Score: 0

    Unless you love coding from a detailed spec with no room for creativity (form shall have a field 254 pixels wide at coordinate 123,321) some day you'll be talking to a customer, user, client, etc who doesn't know squat about software, but they will describe their problem using calculus, or more likely, you will find that calculus provides the basis for a common understanding of what they want to do

  178. Not a Code Monkey by Anonymous Coward · · Score: 0

    I use math (most recently differential equations) regularly. However, being a code monkey was never my objective. I have written software. I have designed hardware. I have solved system algorithms. I have managed people. Do not limit what you learn. My learning of math has helped me. My learning of civics has helped me. My learning of philosophy has helped me. Soak in everything. The more you absorb, the more prepared you will be.

    I was one of the first TR100 (now TR35 ) and I have lead R&D for a fortune 100 company. Please do not set your sights too low.

  179. You don't "need" it by Anonymous Coward · · Score: 0

    To start with, I'm just going to say it outright: I am not a programmer... not really anyway. I know Pascal and even then not all that well, I made a battleship game and that's the most impressive it gets. I have also done a little bit of working with Rhino for 3D models and AutoCad, but once again nothing very noteworthy. I have, however, done quite a bit of math. I may not be the most experienced, but I can tell you this: Rhino doesn't do Calculus, AutoCad doesn't do calculus, and Pascal... well... I'm not so sure it even does halfway decent algebra without you baby sitting it. It could be that I never stumbled upon the correct functions in the programs, but it annoyed me to no end when I KNEW the equation for the shape I wanted, and Rhino and it's hurp-de-derp ways wouldn't let me put anything in but the occasional point. I'm sure there are better programs that actually do that, and I am certain the School's programs were just crap, but the fact remains: You don't "need" calculus. All of your teachers in 6th grade that were telling you that you would "...need algebra in the real world." were liars, but only because of how far computers have come and everything is done for us.
    So no. You don't "need' math to be a decent programmer, or maybe even a great programmer. However, there are MANY higher, way up there programming jobs for which you need calculus and/or up. So I guess to sum this part up: If you absolutely detest calculus, or can't wrap your head around it, or some other reason. It won't stop you from programming. Greatly hinder, perhaps, but not stop.
    I do believe, however, that everyone should try and go as far as they can in math and it's because our modern society runs on math. Indoor Plumbing, computers, TV, our waste management, snailmail, spaceships, wind up toys, candy bars, medicine. EVERYTHING relies on math at some point, and if we as a species don't keep ourselves sharp and practicing math, if something collapses, we can't do anything about it. If, however, you're the type to just go "Pffft" at the possibility of such things I have a second reason. Logic. Math practices your logic skills, and it will make you a better programmer. It's just that simple.

  180. I use calculus all the time by Sarusa · · Score: 1

    Programmers who don't know calculus (or don't actually understand what it means) constantly re-invent it. Badly. And they don't know they're doing so, so they don't realize they're turning a wrench into a hammer.

    Rate of change (derivation) and accumulation of changes (integration) are fundamental calculations that pop up again and again, especially when you're dealing with actual hardware.

    How long will this servo acceleration ramp take to get up to speed? Calculus will tell you exactly, for your expected position minus any PID issues, or you could try one of the variety of bad kludges I've seen to estimate it.

    Of course I use trig all the time as well, and matrixes are useful tools for all sorts of things (transforms, solving systems).

    I haven't found much use for differential equations - I guess my physical processes aren't quite physical enough.

  181. Depends on what you do in games by Anonymous Coward · · Score: 0

    I'm an engine programmer at a major AAA developer, and I use calculus and differential equations daily.

  182. Every freaking day by Overzeetop · · Score: 1

    Then again, I'm a practicing engineer. I moved from hard stuff (aerospace) to easy stuff (structural) 'cause I'm lazy and I wanted to live where there were few aero firms.

    I use the results of calculus every day, but I don't have to do calculus longhand. I have done basic spreadsheet modeling and a very, very small bit of programming to ensure that I don't have to do calculus - but without learning it and understanding the concepts there's no way I could have built the tools I use. Further, the mere understanding of calculus means that I can mentally estimate faster and realize how the various materials will interact without having to put a pencil on paper. In other words - I can solve most problems in my head, with very few numbers. Now, that may not seem useful in a profession where answers on paper are my meal ticket, but think of it this way: I only have to write down my problem and solution once rather than trying several different options because I already know what the correct answer will look like.

    You won't use 99% of what you learn on a day to day basis, but the ability to understand and be able to apply that broad background is the difference between a $30/hr technician and a $150/hr professional. Now, if you plan on managing people or money, your skill set will need to be entirely different, but that 99% rule will still apply.

    --
    Is it just my observation, or are there way too many stupid people in the world?
  183. No, but you should learn it anyway by gutano · · Score: 1

    No, I highly doubt you won't use it much in your daily programming life. That being said...

    1. Some of the benefits of these courses is not in the content itself, but in the mental exercises in logic and reasoning.

    2. Unless you plan to work for yourself, a degree is usually a good choice. It is VERY likely that any CS degree you seek will contain un-escapable upper level math requirements.


    In support of a degree.. A degree can show potential employers that you can stick with something, that you can jump through hoops that are outside your area of interest, and that you have made it through one of the most commonly used hiring filters in the industry.

  184. The problem may not be math itself but math profs by theangrypeon · · Score: 1

    This is mostly anecdotal from my own experience in college but...

    I noticed a stark difference when a math course is being taught by someone who's primarily in the math department vs. someone who's in the engineering department (I guess we had a shortage of profs to meet the demand for the higher level courses we were required to take).

    Math profs in my experience seemed more interested in just treating the course like an SAT prep class, where they just teach you to a test they're going to give out, while the engineering profs who taught math were more interested in driving home why the concepts they were teaching were important.

    So the result was the math profs style lead to a feeling of boredom and pointlessness, whereas I felt engaged the engineering profs classes, and my grades reflected that.

  185. You may not always be a programmer... by lythander · · Score: 1

    Yes, you need a strong grounding in Math to ensure you understand all of the underlying concepts, even if you don't need to implement them yourself. Like learning the CLI before falling back to the user-friendly GUI. Eventually you want to do something the GUI can't, and you're back at the command line.

    Besides, most programmers son't spend their whole life as professional programmers. In fact, some who start out in that direction end up elsewhere. Why limit your choices later in life by short-cutting now? If nothing else, the rigor provided by math will suit you well whereever you go. And while you're at it, please take a statistics class. About 85% of americans couldn't tell you what 85% actually means.

  186. I do by hackula · · Score: 1

    I build mapping software that is used to perform complex geospatial analysis, predictive models, etc. I use math all the time. "Math" is pretty damn broad though. Usually the business logic catches you way before the math ever does. In general, if you want to be a real badass programmer, you need to make sure your Discrete Math is top notch more so than Trig or Calc.

  187. Math changes your brain by lpfarris · · Score: 1

    The only subjects you are guaranteed to use directly, that you learned in school, are the three Rs, reading, ritin', and 'rithmetic. Some subjects change your brain. Forced to do the abstract reasoning required to do higher math, your brain will change to accomodate. I made my kids study music for similar reasons. Some subjects are there to try to make a good citizen out of you, hence history, social studies, geography, government. Some subjects are there to enrich your life, and make you think about yourself, the world, and your place in it. To help to make you a moral person, not just an obedient person. If school were simply about preparing you for your future job, we should all be doing apprenticeships, instead of going to school. However miserably it might fail at that goal, school is supposed to foster thoughtful adults who are able to enjoy more than sex and professional wresting, who are good citizens, and moral people.

  188. Re:Money by hackula · · Score: 1

    If you cannot understand linear algebra, there is no way you can claim to understand things like Big O or algorithmic complexity in general. Any coder who does not grok those types of things will be more trouble than they are worth.

  189. mathematician here by ThorGod · · Score: 1

    I use math every day.

    Frankly, why is math the one thing that gets asked this question so much? You do, of course, realize that math is one of the courses most disciplines require their students to take, yes?

    --
    PS: I don't reply to ACs.
  190. mfw by Anonymous Coward · · Score: 0

    >common sense on slashdot
    >mfw when i dont have a face

  191. Games and scientific - YES; everything else maybe by Anonymous Coward · · Score: 0

    Games and scientific - YES; everything else maybe.

    I use more statistics than calculus in my programming.

    What you really need to understand is boundary conditions. Most programming errors are because someone can't recognize that 11 10 or that -1 is lower than 0. You get the idea.

    Even writing GN&C code for spaceflight, I didn't use calculus most days, but understanding the ideas of limits, slopes and integrals **was critically important.** With my peers, we laugh at people who only use 4 dimensional math. Such is the life of real rocket science.

    Being able to have a conversation about differential and integral calculus with your peers and not look stupid is really what learning higher math is about.

  192. oblig by Anonymous Coward · · Score: 0

    http://xkcd.com/1050/

  193. Algorithms by Tim+Ward · · Score: 3, Insightful

    Not everybody needs to use a nondeterministic finite state machine every day, and not everybody needs to calculate the transitive closure of a sparse connectivity matrix every day, but these are (simple) examples of reasonably commonplace algorithms that you can't really understand without being able to do the maths.

    As an even simpler example, you can't really use SQL effectively without understanding the maths behind a relational database. I know this for sure, because I keep coming across SQL applications that were clearly written by people with no understanding of the maths, and I get paid lots of money to fix them up properly.

    1. Re:Algorithms by Anonymous Coward · · Score: 0

      Agreed. I know experienced DBAs who don't understand SQL joins. When I started as a programmer twenty years ago (after a maths degree) I read that a join is a Cartesian product. And that's really all you need to know.

    2. Re:Algorithms by Anonymous Coward · · Score: 0

      I appreciate and agree with your argument, but I think you've put the cart before the horse: how do you know that information about the connected components of your graph in general and the transitive closure in particular are even relevant to solving your problem if you don't have the background to know what they are, what their properties are, etc.? Google can help, but only the the extent that you're able to communicate what your problem is...

    3. Re:Algorithms by Anonymous Coward · · Score: 0

      Set theory is odd, though - I do think the basic workings of set theory and SQL query optimization would be easier to teach to kids than a lot of the algebra they're actually taught.

    4. Re:Algorithms by Anonymous Coward · · Score: 0

      You don't use grep every day?

  194. Yes and No by Anonymous Coward · · Score: 0

    Knowing higher order math is not required for being successful as a software engineer. Not even a little bit. There's more than enough low hanging fruit that you can do amazing things with just simple arithmetic.

    That said, the more math you know, the more fun you'll have, and the cooler jobs you can score. It's one of those things you absolutely should do despite the pain (it's only painful as a student; on-the-job it's fun).

    I never did. I was in a gifted program and ended up reading philosophy for most of high school rather than taking calculus (I was too lazy to do both). I went to undergrad for political science, and then law school. But I've been a full-time software engineer for most of that time, and I seriously regret my lack of higher order math skills. I can learn how to implement and apply most algorithms, but they're not especially clear to me because I can't related them to a larger set of concepts. I can code an FFT, for example, but don't really understand it. Kind of sad.

    Also, number and set theory, and combinatorics, is widely applicable throughout all computer science. If you want to bone up in just one specific area, that would be the one.

  195. For sure by hackula · · Score: 1

    I am actually the only programmer where I work who does not have a Phd in Mathematics. Definitely depends on the field, but in my industry, it is essential.

  196. Own experiences by Dr+Bip · · Score: 1

    Q1: "Will I actually use calculus and above?" Who knows? Maybe you'll find that it's an enjoyable endeavour in its own right - it may not be a practically useful skill but it will enlarge and enrich your understanding of concepts that you'll not find otherwise.

    Q2: " is it just a popular idea that you need to be a mathematician in order to program?" Is it a popular idea? I've certainly never encountered it. A mathematician is not someone who knows a little calculus. Modern mathematics (which, presumably, is studied by a current mathematician) is a wide-ranging and diverse field of which numerical calculus (I propose) is a rather tired and scantly addressed matter. Let's face it, most calculus that you'll probably ever meet would have been cutting-edge say, ooh, 150 years ago (Gauss' theorem of integrating over a surface... to pick an example from the top of my head)

    Q3: "What are your experiences?" Programming since age 9, introduced to discrete calculus in programming in second year of Physics BSc (all in FORTRAN), 4 years writing numerical integrator-assisted tools for reusable launch vehicles, Physics MSc (no calculus), Physics PhD (trivial integrators written), postdoc (ditto), self-employed (no calculus).

    But hey, why should one study something purely because you hear that it might improve your employment prospects? Do you find it satisfying and interesting? Aren't these reasons enough for studying it or is your schedule really crammed?

  197. It depends on what you do by Anonymous Coward · · Score: 0

    Lots of software engineers have made careers out of doing nothing more than rendering content from a database into html pages and then putting it back. But plenty of us have made careers out of difficult math, too. The world is chock full of optimization problems. Want to manage equity trades algorithmically? You're gonna need some pretty sophisticated math. And not surprisingly, the same applies to managing a portfolio of search engine keyword ads, or anywhere else where you've got a large collection of item of varying performance and you need to optimize returns. Want to optimize energy consumption in a skyscraper? Yep, math. Want to encode or decode audio in a lossy format? math. encrypt or decrypt data? math. Optimize kernel scheduling? math. Render 3d objects photorealistically? math. All tasks that have appeared on my resume.

    Sure, there are libraries available to perform some of those functions, but the libraries didn't write themselves. And guess what? It's pretty easy to find engineers who can read documentation and make use of a pre-existing API in India or China. But finding engineers capable of developing sophisticated mathematical algorithms is something that still mostly happens here. Guess which type is going to be able to remain employed in this country over the coming century...

  198. All programming is math by anwyn · · Score: 1
    Strictly speaking all programming is math. Digital computers are symbolic manipulators. We would be alot better off if the Federal Circuit Court understood this.

    Wheather you need continous math such as Calculus depends on if you are programming in a area that uses continous math. Like mathematics, statistics and many others. All programmers use discreate mathemantics, if they know it or not.

  199. Every day by Anonymous Coward · · Score: 0

    Every day.
    Way more than I could have ever guessed - finding missing money in hundreds of millions of transactions due to rounding errors in the two seperate validation processes (only apparent after millions of transcations - small data sets could not replicate the issue). Even complex math of calculating the rental cost of actual useable land along a curved (and seasonally and/or yearly) changing river. The bigest usage of math involves money and prefection is a must.

    Plus, the logical math solving skills are adapted to daily problems. The math classes on proving theroms is extermly valuable.

  200. Me by Anonymous Coward · · Score: 0

    I use it to help memorize things, count things more efficiently, evaluate a sale item or purchase, just generally in many every-day situations I find it valuable.

  201. In law by Anonymous Coward · · Score: 0

    I am a law student and math is generally not used, but it is extremely important to understand math when it is being used. So many bad policies and bad law are created because people have a bad understanding of math. What do I mean? Think of simple expected value probabilities, or cash/market flow rates, or risk analysis, or optimization equations. Many times we think of math as a collections of functions, but really math is a strategy and mindset that is utilized to solve problems -many times using the most common functions-. Every time we make a decision we are evaluating the consequences, which almost always require some sort of mathematical analysis.

    I think the more advanced math we know, the more ready we are able to make the best decisions about things. Our brains need the exercise if nothing else.

  202. Definitely in Graphics by Ameryll · · Score: 1

    I use high level math in graphics. Sometimes to do actual graphics tasks, other times to verify that some piece of code is mathematically correct.

    Recently, I had to calculate derivatives recently for splines. I couldn't find a package that did quite what I wanted (with a license that would work for my task) with splines which meant I had to roll my own. Splines are used everywhere in computer graphics and video games, namely for animation. In implementing my own, I found that I had to use a fair amount of calculus and linear algebra to understand a) which spline algorithm met my criteria and b) to understand the math behind the splines well enough to implement them.

  203. How much math do I really need?? by Anonymous Coward · · Score: 0

    You don't need a lot of math at all to program, you can program your DVR
    to record a certain show easily and all you need to know is how to type the
    number 0,1,2,3,4,5,6,7,8,9 (I've included them for your reference). You find
    these numbers next to the show you're recording in TV Guide which you can
    pickup at the supermarket checkout and there are also websites to get these
    programming schedules from.

    Taking the lead from your very question, pretty much what we expect you to
    work on may require some knowledge of basic arithmetic and very basic algebra.
    The most difficult mathematical concept you might encounter are fractions and
    percentages that are a special case of the former.

    You see, from a profane like you, who asks "how much math do I really need??",
    not much is expected. You will never explore, you will never break new ground,
    and that is well.

  204. Specifically... by WhitePanther5000 · · Score: 1

    If you're interested in game development or computational science, linear algebra is a must. Much of that relies on calculus. I took linear algebra before taking any calculus classes, and the later half of the class was a pain in the ass (so take it in the right order). But all my work has been in benchmark and system software development, and integrals is the only thing I've needed from calculus so far.

    For everything else: discrete math, algebra, and statistics.

    Really, you can get by programming with just discrete math and algebra, but I've found statistics useful in every day life and in explaining results in simple terms. In any case, put in your time with the higher level math. It's not as scary as it sounds, and you'll be glad you had exposure to it later... even if you rarely use it. And this is coming from a guy who whined "when am I ever going to use this?" during those classes.

  205. Learn everything by darkfeline · · Score: 1

    If you have an opportunity to learn something, learn it. Everything will be useful at some point in your life, and barring that will still enrich you as a person. More specifically, math-wise, if you're going to college you may as well learn basic calculus, linear algebra, and statistics. How much you will actually use in a CS career is debateable, but that knowledge and especially UNDERSTANDING will help you many times in the long run.

  206. I definitely needed it by _avs_007 · · Score: 1

    I used to think the same thing when I first came out of college... But actually use math quite a bit in my current job. (Software Architect in a research lab) I use Linear Algebra (which for me, in college comes after Calculus 3), as well as Calculus. You probably will too if you say you want to go into gaming, particularly when you start looking into sensor input. I'm not doing gaming, but I'm looking at sensor input, for things like gesture tracking/recognition, sound analysis, as well as more basic things like looking at accelerometers and magnetometers. I didn't really use Number Theory directly, (graduate course for me, and I flippin' hated that class), but we do have a Math PHd on staff, and I did have to consult with him a number of times.

  207. I Math all the time. by Anonymous Coward · · Score: 0

    I math all the time. More often then I linguistic believe it or not.

  208. well... by Anonymous Coward · · Score: 0

    Well being in a math PhD program which requires a decent amount of programming algorithms in a combination of Python, C++ and Matlab.. I'd say yes, I use a lot of advanced math with my programming. Also, for the question above, you evaluate integrals numerically in a language like C++. There's a whole field called numerical analysis that thinks about questions like these.

  209. Linear Algebra, Graph Theory, and Calculus by Araes · · Score: 1

    You CAN program without math. You shouldn't want to. Not understanding higher level math cripples your ability to work on hard / interesting problems, which are the only real problems left. This aludes to a mentality of "what is the least I can do to get by?" which is an immediate turn-off to hiring. Most people can grind out glue code, or marginal UIs [1], but the pool of programers that can is huge. As a competitive advantage, you should always aim to push your skillset out beyond all of your other peers.

    For your chosen field, the above course groups are of prime interest. LA is critical for graphical programming, optimization programs (pathfinding for example), or solving large, matrixable datasets (pixelized display fields). Graph Theory also plays heavily in optimization, pathfinding, information flow, decision making, and procedural programming (L-trees, fractal growth, ect..). It also plays heavily with LA. Finally, Calc. is necessary if you ever want to figure out how fast things are happening (trajectories, computational flowfields), for computing numerous types of gradient style lighting effects, or for figuring out how much of something you have (total resource accumulation, ballistics/object movement with time, ect...). In the case of calculus, you may not actually write integrals or differentials, but it is critical that you understand what they're doing, and how they are approximated.

    Note [1]: Good UI creation is hard. But that requires almost as much study in human factors and interface design as the math side does

    Disclosure: My day job is at NASA, so I'm biased

  210. What Would John Carmack Do? by Anonymous Coward · · Score: 0

    If you really want expert advice, ask an expert:

    http://www.pcper.com/reviews/Editorial/John-Carmack-Interview-GPU-Race-Intel-Graphics-Ray-Tracing-Voxels-and-more/Intervi

    http://www.youtube.com/watch?v=VcWRc1wK3gM

    The bottom line is Math is to a Programmer as a Hammer is to a Carpenter.

  211. Been Doing A Lot Lately by Greyfox · · Score: 1

    I've been doing a lot of matrix multiplication and rotates with quaternions lately, for satellite orbit and attitude calculations. Eigen, by the way, is a very nice library to do that stuff with in C++. Prior to this, not so much. Some degree of math aptitude has been helpful to me in many of my programming positions, but very few of them required a lot. My Logic and Analysis classes have come in handy more often, but I took those in high school, too.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  212. Decent Grades in Math Suggest... by CAOgdin · · Score: 1

    ...you're able to think critically, and to discern which evidence is relevant to the case in point. I don't care if you can use the Simplex method to invert a sparse 100x100 matrix in your head, but I DO care, as an employer, that you know what the Simplex method is, when it would be useful to apply, and what class of problems it can be used to solve. So, higher math is just evidence to me, your prospective employer, that you're not prone to take the easy way out, to rely on trusted (but irrelevant) methods, that you can seek out new solutions when they are called for. Without that breadth of background in the "thinking arts," you are doomed to a life of programming what others design. Most of the people who claim certain languages don't support certain advanced math features are just exposing their lack of imagination; they are coders, not programmers.

  213. Business does use math ... by perpenso · · Score: 1

    Your standard business application probably isn't going to use much more than basic algebra

    I used more advanced mathematics in graduate level marketing classes than in graduate level computer science classes. I was quite surprised and happy to see that marketing can be based on scientific modeling and not just numbers pulled out of ... uh ... the air.

    But it all depends on the needs of the business you are trying to support.

    The problem is that when you are in college you do not know the "needs" you will be trying to support in the future. I was once unexpectedly offered the chance to port some of Dow Chemical's polymer analysis software from mainframe to PC. I was working directly with world class chemists. They did not expect me to be a chemist but they did expect me to be scientifically and mathematically literate. Those two quarters of freshman chemistry for general ed and the three years of math for computer science were useful. It opened doors that would otherwise have been closed. That is the point of a university education rather than a trade school education. The trade school can teach a person to be a good programmer, just as good as a university, but the trade school graduate won't have the option to participate in unexpected projects like the one mentioned.

  214. One More For "Lots of Math" by Bob9113 · · Score: 2

    I use a lot of math in my work. From ballparking load estimates using basic math to behavioral analysis using linear algebra to data analysis using calculus, I use it all the time. Set theory, logic, graph theory, statistics, on and on -- it all contributes significantly to getting the job done right the first time. Having a background in a variety of maths also helps to visualize problems and shape solutions. I've added as much to my math skills since becoming a professional programmer as I did in school.

    There are fields in software, like interaction design, that don't require a strong higher math education, but if you have a good math background it will give you the freedom to explore more opportunities.

  215. Math? by nighthawk243 · · Score: 1

    In the corporate environment, Calculus is very rare. You really only use basic algebra for most programs. Only really specific applications require anything more.

    Of course, it is usually suggested to take them (or required in the coursework) because of some idea that it promotes higher level thinking, but I think it really depends on what you need to think properly. For me, I'm terrible at Calculus; but I can still write code without an issue.

  216. I need glasses by Anonymous Coward · · Score: 0

    I read the title as "How many of you actually use Meth".

  217. dabbling around Unity3D and OGRE by Culture20 · · Score: 1

    You need math to make engines like Unity3D and OGRE, or any programming where someone will pay you more than midway through middle class level. Not that there's anything wrong with middle class pay; it's quite comfortable.

  218. It's all about fundamentals and concepts... by sitarlo · · Score: 1

    As a software engineer I use math all the time, but maybe not the way we think of traditionally using math academically with chalkboards full of scribbled formulas and equations. Numerical analysis, discrete math, cryptography, linear algebra, statistics are all post-calculus subjects that are fundamental in software engineering. Having a solid education in these subjects will allow you to be a *better* software engineer and problem solver. At the code level it's mostly operator precedence and other trivial math fundamentals, but at the algorithmic analysis level understanding advanced math concepts certainly helps and is even necessary in many circumstances.

  219. It's not the details, it's problem solving. by Anonymous Coward · · Score: 0

    What you need is the ability to think like a mathematician about problems. You know all those annoying story problems you had to do? Well programming is one story problem after another. You have problems to solve and you don't always have all the pieces. You also get a bunch of useless data to go with it. You need to know what's important and what's not.

    As others have pointed out, discrete is essential to understanding computer science. Colleges require you to do a bunch of math classes so you might as well suck it up and get through it. I hated most math classes, but discrete is actually fun.

  220. Statistics by Anonymous Coward · · Score: 0

    What you really, really need is Statistics. It's everywhere.

  221. I Use It Everywhere by thePsychologist · · Score: 1

    Despite my username, I am a mathematician, and I can say doing mathematics definitely affected the way I think. Of course I do math as my job, but I also think of the rest of my life in very mathematical terms.

    For instance, to measure my productivity I have created a detailed spreadsheet of my progress and the hours that I work. I view my efforts as a dynamical system, and potentially I can use this to clarify and understand the periodicity in my productivity using differential equations.

    I view my purchases at the grocery store as an economic system and I have often come to rational decisions about money management using decision theory.

    When I drive I think of minimizing the time of my route using traffic models. I probably haven't gained much on my travel time but looking at everything mathematically has clarified my view of the world.

    My point is that every problem I encounter my mind can't help but look at it from a mathematical perspective, and the act of formulating problems in a precise way with all the necessary hypotheses have helped me solve many problems, even those that don't require heavy mathematical machinery. Mathematics isn't just solving specific problems but looking at a question from all perspectives and formulating thoughts in an extremely precise manner. These are things I of course did not do before I started to study mathematics.

    The effects on me are pretty apparent because I have been doing mathematics for so long but I believe even a little bit can be very useful.

    --
    "What lies behind us, and what lies before us are tiny matters compared to what lies within us." Ralph Waldo Emerson
  222. You only need math if you want a fun job by chubs · · Score: 1

    No, you won't use calculus as a programmer. If you want to more than the most boring and repetative programming jobs, though, you need a sound understanding of discrete math and preferably computational theory. The jobs where these are needed are the fun, fulfilling jobs where you feel like you did more than just rewrite the same form in a slightly different format over and over. If web design is your thing, you won't need as much math as you will need art and HCI skills. But you'll also be doing the same thing in slightly different colors every day for the tenure of your career. It's your call. You can either learn math or trust that the people who did wrote the libraries you are using correctly.

  223. I do! by Anonymous Coward · · Score: 0

    I do every Friday...oh, I though you said meth. Sorry.

  224. Integrals are approximated to necessary precision by perpenso · · Score: 1

    I've gone all the way up to calculus 3 (vectors, multi-dimensional functions, and doing differentials and integrals therein) and I've yet to see calculus applied by any programming. I am curious how one actually implements it though, in what (limited) programming I've done, I haven't seen any clear way to calculate say an integral using something like c++ or c#.

    One example. Think back to class and there should have been a discussion on the approximation of integrals. Creating rectangles or trapezoids for subintervals that fit "under" the curve. Using the area of these subintervals to approximate the area under the curve. The more subintervals the more accurate the approximation. Its not hard to match the precision of the floating point hardware in the CPU.

  225. Programming is applied mathematics. by Anonymous Coward · · Score: 0

    I use math ALL THE TIME in my job as a software engineer. Regular calculus for projections from data and calculating rates of change in near real time, lambda calculus (and to a lesser extent some other Greek letter calculi, but they're not the same thing as Newton- Leibniz calculus) for functional programming and to a lesser extent LINQ. Bayesian statistics for abduction, regular statistics for event correlation and alarm stream analysis. Animats above makes a good point about tensor calculus, though it's being slowly supplanted by more modern analysis. If you're interested in computer graphics you're going to want to understand quaternions for point-set rotations and transforms or if you're ultra, spinors and Clifford (Geometric) Algebra.

  226. For more advanced areas of graphics, yes by pieisgood · · Score: 1

    In areas such as Ray Tracing, there is extensive use of Vector Calculus, Probability theory, and Linear Algebra. Where (having learned under Henrick Wann Jensen) the current state of the art techniques are based on random distributions of "photons" being stored in a "Photon Map". The math here can get advanced, from Markov chains to arbitrary Brownian motions started at vector position x (in R^3). So.... Yes, it's there. You just don't see any of it because you're not handling the hard stuff... you're handling API calls. What do you think happens under the hood?

    --
    Eat sleep die
  227. Digital Image Processing by Anonymous Coward · · Score: 0

    I've recently played with digital image processing algorithms and found out that understanding even simple things like resizing pictures is impossible without solid math background. Not to mention more complex things like convolutions or conversions between time and frequency domain. Generally good Calculus and Statistical background is great for any kind of DSP techniques be it music, images or data from any other kind of sensors.

  228. Statistics by Anonymous Coward · · Score: 0

    Almost every shop I have been in over the 30 years in this business has required statistics. These days, in order to evaluate database performance, you have to do statistics. In one shop I had to write a program to collate the statistics to tell me it the 30+ processors in the back end DBMS were performaning, to help find bottlenecks. In one case, I had an analyst that did not understand stats, and if we had followed her directions we would have truncated off valuable data.

    Calculas - not used in 30 years, not sure how much of it I even remember.

    Algebra - this is the meat and potatoes of programmng.

    Seeing a series of equations and what they result in: In one case a few years ago, the one step in the process was being executed twice, adding shipping time into the equation for calculating lead time on product to the ordering both at the begining and end of the process. 1 line of code was holding 10$ MILLION in the warehouse, wasting capital, and rental on warehouse space, for a certain major entertainment company.

    So, do you use math? Define math, define where you are going to end up in this field.

    Oh, and DBA - set theory is also used.

  229. Miss-representation by pubwvj · · Score: 1

    "An anonymous reader writes with a question that makes a good follow-on to the claim that mathematics requirements in U.S. schools unnecessarily limit students' educational choices"

    That is a bit of a miss-representation of the previous discussion. The question before was about Algebra. Specifically many non-technical people rarely or never use Algebra in the real world. Forcing them to learn multiple years of Algebra is a waste for them.

    A simple intro would be enough and then those who are interested and going into fields where it is needed, such as programming, engineering, biology, chemistry, statistics, etc, can then go deeper into the math.

    However, there is a lot of math below Algebra. For my wife Algebra was a waste. But she uses addition, subtraction, division, multiplication and percentages on a daily basis. Basic math is key for almost everyone. Algebra for a much more limited group. Calculus for us very few who need or enjoy it.

    Learn what you enjoy. Enjoy what you learn. Pick a field of endeavor you'll enjoy. It all flows together and that makes life more pleasant. Don't be a Dilbert.

    1. Re:Miss-representation by mcmonkey · · Score: 1

      "An anonymous reader writes with a question that makes a good follow-on to the claim that mathematics requirements in U.S. schools unnecessarily limit students' educational choices"

      That is a bit of a miss-representation of the previous discussion. The question before was about Algebra. Specifically many non-technical people rarely or never use Algebra in the real world. Forcing them to learn multiple years of Algebra is a waste for them.

      A simple intro would be enough and then those who are interested and going into fields where it is needed, such as programming, engineering, biology, chemistry, statistics, etc, can then go deeper into the math.

      How many people use the history they covered on school on a daily basis? How many people use the basic science or language or any of the other topics covered in school?

      This argument is basically saying there should be no (or extremely low, even lower than current) standards. The requirements now are a "simple intro."

      Your average American is going to spend the majority of their time on 2 things: sleeping and staring at some sort of screen (television, computer, tablet, phone). By this logic, those should be the two areas stressed most in schools.

  230. Does a doctor really need to know medicine? by Floyd-ATC · · Score: 1

    Any idiot can use a syringe and a scalpel, but if you were in charge of hiring doctors you'd probably prefer the candidates who have their medical skills in order.

    --
    Time flies when you don't know what you're doing
  231. Game programming can be good by perpenso · · Score: 1

    From an objective standpoint these are among the worst programming jobs in existence

    Yes and no. It depends entirely on the company you work for.

    the kids won't actually get to design the games – that's done by completely different teams of people. They're just coding to spec

    No. There is a lot of feedback and interaction between designers and developers. At the good companies the "design" comes from individuals of varying backgrounds and roles, including programmers, including QA. Things depend far more on the quality of your suggestions than your job description.

  232. foundation math by Anonymous Coward · · Score: 0

    While the amount of math one actually uses day to day can vary a lot depending on the job, what doesn't change is the need to solve complex algorithmic problems.

    Obtaining a high level of mathematic education is excellent training for the kind of thinking you will need to become a successful developer.

    I would also add that it depends on why kind of a developer you want to be... if you want just churn out flash game or something using an off-the-shelf engine then sure, you will probably not need much more actual math than addition and trig etc.. But if you actually want a good future in the industry (read "good salary") you need to have a very solid understanding of statistics, probability, complexity, machine learning, tensor calculus etc.. etc.. all of which require the fundamentals of math that you will learn right up until college and beyond.

    So it depends, do you want a crap job making small edits to some 2nd rate game, or do you want to be challenged? Seriously, a good math background can make hugh difference to the kind of jobs you can get.

    One other thing: technologies change quickly, Unity3D (or whatever) will be crap and old by the time you get to seriously looking for a job. Numbers will still work the same. So learn the math first, then "play" with the engines, but keep in mind thats all your doing - playing.

    So, suck it up man and hit the books. Math is good for you!

  233. Cosine and Pythagorean Theorem by Anonymous Coward · · Score: 0

    I write software using java that performs image manipulation. Knowing which math to use, for example Cosine and Pythagorean Theorem to compute the new effective width of an element rotated n degrees within a canvas, can make the difference between several hundred wrong tries to slug it out with simple math or the one right way with more advanced geometric and trigonometric functions.

    It's also helpful in my garden for figuring out how many rows of corn, beans, etc. I can fit in a given area based on optimal spacing for the soil type. It's mostly basic math but once in a while some trig helps.

  234. 42 by RemiT · · Score: 1

    (6 x 7)

  235. Thinking by Anonymous Coward · · Score: 0

    I once had an engineering professor that claimed that the common sense would be trained out of us. And it is true. A repeatable process to be creative and ensure safety and complete thought is critical to STEM education. The basis is the mathematical training we all receive in middle and high schools.

    Beyond the basic Elementary and Middle School math, numbers are not as important. Higher mathematics education is largely about learning to think critically. So, while many of use do not use much more than basic algebra in daily home use, we use the skills taught to rationally address problems in our lives without even focusing on the task.

    Do the numbers matter? Yes. In Engineering and higher level work, the numbers matter. What matters just as much is HOW those numbers are obtained. A repeatable process.

  236. You got to add a 'u' and silent 'e' by SomeoneGotMyNick · · Score: 4, Funny

    US: Math

    UK: Mauthe

    1. Re:You got to add a 'u' and silent 'e' by Anonymous Coward · · Score: 0

      US: Math

      UK: Mauthe

      Um, in the UK they say 'maths'. And it sounds pretty much the same where I grew up as it does here in Massachusetts.

    2. Re:You got to add a 'u' and silent 'e' by Anonymous Coward · · Score: 0

      US: Math - Not Even Once.

    3. Re:You got to add a 'u' and silent 'e' by Anonymous Coward · · Score: 0

      In the UK it's called Maths.

    4. Re:You got to add a 'u' and silent 'e' by Anonymous Coward · · Score: 0

      Shught aup eueu ignauroughnt pieazaunt!

    5. Re:You got to add a 'u' and silent 'e' by SkunkPussy · · Score: 1

      whoosh.txt

      --
      SURELY NOT!!!!!
    6. Re:You got to add a 'u' and silent 'e' by DoctorBonzo · · Score: 1

      Uh, actually MautheS - not sure why the plural.

    7. Re:You got to add a 'u' and silent 'e' by Anonymous Coward · · Score: 0

      Oh? Have you ever seen anyone from there say anything other than "New Yawk".

    8. Re:You got to add a 'u' and silent 'e' by Anonymous Coward · · Score: 0

      US: Mayth

      don't forget the nasely ay sound.

  237. I use math constantly by ceoyoyo · · Score: 4, Insightful

    In undergrad (CS) I did more math than was required, and honours math at that. When I started grad school I was introduced to a transform we were using to analyze medical images. There's an article somewhere where I'm quoted as saying that some smart grad student is going to come along some day and improve the algorithm for calculating that transform so that it's actually practical. It turns out the smart grad student didn't come along, so I had to do it. That involved a lot of calculus, both continuous and discrete. Now I mostly develop new medical image processing techniques and analyze data, which involves fairly high level statistics. Statistics is all calculus and, when you get further on, calculus and linear algebra.

    You say you want to be a game programmer? Here are some of the papers from SIGGRAPH this year. Take a read through some of them. This one might be a good place to start... most of the authors are from Pixar. How much math do you see? How much math do you understand? These are the algorithms you'll be working with by the time you graduate. Note that there isn't a lot of continuous calculus in these (but a lot of discrete!). Somebody has already done much of the hard work of discretizing it for you. That's not always the case.

    You can probably get away with not learning any math and being a run of the mill code monkey. If you want to be good at what you do though, learn the math.

  238. Daily. by 0100010001010011 · · Score: 1

    Daily to the point where I don't even understand how much I use and I'd probably have problems going back to basic Calc 1 and Calc 2 problems.

    Top level: I design controllers in Simulink to ... control stuff.

    Right off PID controllers. First one is algebra. Second two are calculus. Integrals and Derivatives.

    Since these are all driven my microcontrollers everything is in discrete time, so Z-transforms. Which are based on S-transforms. That was Differential Equations 2 I believe, built on DiffEq 1. Built on Calc 3/2/1. And then there are Bode diagrams, system identification.

  239. Math is just part of it by Anonymous Coward · · Score: 0

    The logical thinking you will gather from actually *learning* mathematics (as opposed to memorizing theorems) will be extremely handy. You can really tell the difference between a developer who has advanced mathematics experience and one who does not, as the mathematics helped develop that persons problem solving skills.

    And some jobs require advanced mathematics as well, but not all of them. Your common web-application won't require much more than iterative basics. But any kind of graphical manipulation will be benefited greatly with mathematics experience. Of course there's always google to find the exact forumlas, but being able to understand those formulas/know about them comes in handy.

  240. Yet another practical view by bradley13 · · Score: 1

    I've been in computer science for around 30 years. My experience, in order of decreasing importance:

    • Frequent: algebra, propositionaly logic
    • Occasional: Statistics, graph theory, set theory, predicate logic, automata theory
    • Rare (but non-zero): geometry, trigonometry

    As you suspect, calculus does not come up unless you are doing something very domain specific. Differential equations are bloody useless, even as a math course, at least they way I was taught: trust the cookbook, don't ask questions about why they work. Again, maybe useful in a specific domain.

    That said, I found calculus to be useful as a gateway to fun courses in relativity and quantum mechanics, and it can be a useful way to think about some problems (continuous instead of discrete).

    --
    Enjoy life! This is not a dress rehearsal.
  241. Big O Notation by zbobet2012 · · Score: 1

    You can't understand it without Calc 2, therefore you need Calc 2. And if you don't understand Big O notation your not a real software engineer. Hence, you need calc 2 (QED).

  242. Missing the Point by Roger+W+Moore · · Score: 3, Insightful

    No, the point of a challenging degree program is to maintain academic standards. To be awarded a degree you need to have achieved a certain standard. If the sole aim was to limit the number of graduates in a program you would simply limit the enrolment. When we have been hiring IT staff one of the things we have looked for is a degree because this shows that they have some depth of knowledge beyond the basics. Sometimes the confidence that this brings can be very important for adapting to new situations.

    1. Re:Missing the Point by Joe_Dragon · · Score: 1

      and then you end up cutting out smart people who are not college material.

      College isn't for everyone. Some very bright students thrive better while learning a hands-on trade, for example, than they do in a classroom. Others simply can't afford the time or tuition of college because of their personal circumstances."

      College is not for all and there others ways to learn then going to a big 4 year plan. College needs to be cut down / cut up into small chunks that can better fit fasting moving tech and can work for people who are working and want to gain more skills but can't fit into the college time table.

    2. Re:Missing the Point by Roger+W+Moore · · Score: 1

      and then you end up cutting out smart people who are not college material.

      True, but when we were hiring IT staff we were looking for smart, educated people not just smart people. Sometimes just being smart is not enough. For example a smart IT person can cobble together a functioning system. However when they go on holiday and something breaks it is hard to fix things because they do things in non-standard ways. Also some are not as smart as they think and, while their solutions may work, they are not the best ones out there and may even suffer serious flaws which suddenly come to light.

    3. Re:Missing the Point by Joe_Dragon · · Score: 1

      And what standard ways do you learn in CS vs say A IT class or based off of MS cert test?

  243. It depends! by Chmarr · · Score: 1

    I just helped a friend out with a ton of javascript animation for his webcomic (blatant plug: http://www.prequeladventure.com/ ), creating a 3d, semi-interactive environment, all in JS/CSS, and I ended up using a ton of math for it. Simple offset calculations, trig, parabolic arcs, exponential decay, and so on. Ended up giving up some things that would have required finding cubic roots of bezier curves because my math wasn't good enough.

    But apart from that, I haven't used any serious math in a long time.

    So, it depends... I think the more you rely on interacting or emulating "the real world", the more important math is.

  244. What a Calculus teach once said by Anonymous Coward · · Score: 0

    I was making up a calc 2 midterm that I had re-scheduled. Note that I was also going for Computer Science. Half way through, another student in a Calc 1 class had come to discuss her grade on their midterm. She didn't understand why she had to take Calc, because 'its not like I am ever going to use it again', the Professor simply stated that 'It is not that you are never going to use it again, but more if you can't pass calc, then most likely you wouldn't pass the upper levels of your department'. Its one way to weed out the slackers from those who will work for what they want.

    Basically its not so much that your never going to use it again, but more that calc makes you look at problems in different lights\views. To not just look at it one way and assume that it will always be that way. Just like with any algorithms class, it will teach you to look at different ways to code the same thing, to either save time, space, or both.
     

  245. math is brain exercise by Anonymous Coward · · Score: 0

    There are two answers to this:

    First, it may not be *necessary* to use math in programming, but if you know math, you will often see connections between to programming tasks; and this will make it easier for you to conceptualize and implement the tasks; and to make them more efficient.

    Second, whether or not you use math, the act of learning math -- practicing building up abstract structures in your brain -- will help with tasks like programming.

  246. The usefulness of math by nemeosis · · Score: 1

    Learning math is like adding an extra tool to your toolbox.

    You may never need to use it, but one day, you may come across a problem which you cannot solve or understand, unless you have that tool in your toolbox. You may need to dust off the tool a little, but it is still there, and you can use it.

    Personally, I ran into a few instances in business where I had to answer some seemingly basic questions. And without a background in Calculus, I would have never been able to understand it, or to see a more elegant solution.

    For example, a coworker shared a problem with me once. If a customer adopts our software product across their enterprise, how long will it take for the customer to get their return on investment (ROI)? This is useful as a sales tool to help convince customers to invest in our product to help make their business more efficient.

    This was a problem that I solved using Excel. But I had to use brute-force to solve it, and I created over 1000 lines of formulas to find my answer. Not very elegant, but it worked.

    However, I noticed a pattern in the Excel formulas. And the only reason, was because it seemed similar to a math problem I studied in Calculus II, about Series and Sequences.

    I found my old Calculus book from college, dusted it off, and re-studied Series and Sequences. Then, I was able to create a solution to my problem using a simplified math formula. Success!!

    Next, I plugged in my new math formula into Excel. Now, I was able to solve my problem and model it across different variables. I could modify each variable independently to identify when the customer would achieve their ROI, based on different circumstances.

    So, you may not always use Calculus everyday, but one day, it will be a life-saver. And you get to be the hero for your team.

  247. Math is not for "weeding out" ... by perpenso · · Score: 4, Insightful

    The point of high-level math and physics classes is not because you "need" them in your job as a programmer. It's a way to limit how many CSE degrees are granted. I was told this straight-up by my college advisor ...

    Then like some advisors he is a dumb-a**. I've been offered some pretty crappy advice and insight from advisors, don't take what they say too seriously.

    You are basically getting into the trade school vs university argument. A trade school can produce as good a programmer as a university. The point of the university is to provide a more well rounded education so that a person has more options.

    I too had some chemistry, physics and years of math that appeared to serve no purpose other than to "weed out" people from the program. However to my surprise I once had the opportunity to participate in a project that would port some chemistry software from mainframes to PCs. I would be interacting with world class polymer chemists. They did not expect me to be a chemist but they did expect me to be scientifically and mathematically literate. The general ed chemistry and physics and the years of math for computer science actually turned out to be useful.

    1. Re:Math is not for "weeding out" ... by tehcyder · · Score: 1

      They did not expect me to be a chemist but they did expect me to be scientifically and mathematically literate.

      No, they expected you to be able to do your job.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    2. Re:Math is not for "weeding out" ... by perpenso · · Score: 1

      They did not expect me to be a chemist but they did expect me to be scientifically and mathematically literate.

      No, they expected you to be able to do your job.

      This project was not within the parameters of my job at the time, nor within the scope of the company's business. We did molecular visualization and diagramming, not computational chemistry. However the general ed chem and physics classes and the several years of math classes enabled the company to unexpectedly expand the parameters of my job for that project.

      Again, trade school can teach you to program just as well as a university. The point of the university is to prepare you for options beyond the typical programming roles of the market.

    3. Re:Math is not for "weeding out" ... by k6mfw · · Score: 1

      I too had some chemistry, physics and years of math that appeared to serve no purpose other than to "weed out" people from the program. However to my surprise I once had the opportunity to participate in a project that would port some chemistry software from mainframes to PCs. I would be interacting with world class polymer chemists. They did not expect me to be a chemist but they did expect me to be scientifically and mathematically literate. The general ed chemistry and physics and the years of math for computer science actually turned out to be useful.

      Excellent answer for "why study math, physics and chemistry" which is to be scientifically and mathematically literate.

      --
      mfwright@batnet.com
  248. What, me math? by PacRim+Jim · · Score: 1

    It's important to use calculus at every opportunity. It differentiates one from the integral lump that is hoi polloi.

  249. The Learning Never Ends by Anonymous Coward · · Score: 0

    If you have, or want to have, a curious and creative mind moving forward in life and hope to build systems of any kind, either virtual in software or by designing or physically constructing things in hardware, don't pass on math classes. Some of the details you will forget or not need, and other details will prove useful, but don't forego collecting tools just because you can't predict exactly which ones you'll need in the future.

  250. Not necc. but very important. by bmearns · · Score: 1

    You could probably perform most of the work that would be required of a mid level programmer, possibly even a computer engineer, with the math you already know. But you'll never be very good without advanced topics like calculus, linear algebra, and diff-eq. If you're seriously considering a technical career, I can't recommend strongly enough that you take these courses and put in the effort to really truly learn the material: not just enough to pass the courses, but for the long term. I've been an engineer for about 6 years and I'm constantly finding myself wishing I knew more math, even after having taken all the required engineering math classes and a few additional math classes in both undergrad and grad school.

    The various fields of mathematics are like tools to hang on your belt: right now you probably have something along the lines of a hammer, a screwdriver, and a hacksaw. Yes, you can do most of what will be required of you with those, but it's not going to be easy. Why limit yourself? Take the advanced courses and you'll start acquiring skills more analogous to power tools. Honestly, you really can't imagine the kinds of problems you'll actually be faced with in a technical profession until you're actually in one, so it's not surprising if it seems right now like you don't need any more math. For instance, if you're thinking about game design, do you know how ray tracing works? Do you know what quaternions are? Can you do matrix operations for 3-D movement? No, you may not use those things everyday as a game designer, but you'll be at the bottom of your field if you can't at least understand them.

    Besides, never mind the actual merit of these topics: you'll never land a half-way decent tech job if you go into an interview and let it slip that you don't know math beyond first year calculus, let alone high school. Unless of course you're planning to go into IT. If that's the case then never mind all of this.

    Career aside, there will be a lot of topics that you'll likely find interesting later in your life---when your brain isn't so squishy---that will be out of reach without the additional mathematical background that you're currently lacking.

    --
    Slashdot is not a game, Slashdot is not a game. Crap, I just lost points.
  251. Not necessary to CODE, but certainly is to be GOOD by Anonymous Coward · · Score: 0

    Honestly, you won't *need* to use anything beyond arithmetic if you don't want to as a programmer...

    That said, if you want to make something that hasn't been done before, or improve upon existing methods to do some particular task, or basically be a GOOD programmer, you'll NEED to know higher level math.

    I know people will argue you don't need higher level math to be a good programmer, but seriously, take an objective look at it. If you aren't capable of writing all the packages/plugins/libraries/etc. that you end up using in your code yourself, you're simply not a good programmer... Now that doesn't mean you shouldn't use packages/plugins/libs/etc.... Really unless you *MUST* write it yourself (due to licensing issues or whatever), then it makes no sense not to use them. But if you can't write something that's necessary to a project you code, then you can't claim to be a good programmer...

  252. Math trains you to think logically by Anonymous Coward · · Score: 0

    I do web application development, which arguably has nothing to do with actual mathematics. But the training I got my taking a programming degree with a heavy mathematics emphasis has been invaluable. Learning algebra, specifically advanced algebra, has helped me understand more intuitively concepts such as pass-by-reference and variable assignment; studying Fourier transforms gave me a grounding for function pointer/delegate methods; studying ring and field theory helped me understand what overloading operators could be like and what power it could yield; studying graph theory helped me think through my problems and to think about explaining algorithms and thinking about recursion.

    In general, math helps you think logically, and my background has also helped me think efficiently, and to seek the most efficient answer. Math wasn't necessary, but has immensely helped me be a strong, better programmer.

  253. Math is good if you have data by Anonymous Coward · · Score: 0

    I do bioinformatics, and I use a lot of math, though it's mostly linear algebra and statistics (not so much calculus). For designing games, etc, you can probably *get by* without much math, but there are lots of great possibilities that will require it, depending on the type of game and your methods for implementing it. I could, for example, see a lot of future games handling tons of data, especially if there are lots of users participating at once. And, if you want players to be interacting with a somewhat intelligent opponent/world/interface, you may want your game to have some ability to learn. That will all involve stats, linear algebra, machine learning, etc. If you just want Mario and Luigi to bounce around and stomp on automatons, then sure, all you need is trig and some basic physics, but why limit yourself from the get-go?

  254. 3d graphics consists of an awful lot of maths by GauteL · · Score: 1

    Namely vector, matrix and quaternion maths mixed with a healthy dose of trigonometry. Most scene graphs and engines will help you out, but then one day you need more than what your engine provides and then you may have to delve even deeper into the world of maths.

    Custom lighting? Need to find the centre of mass of your custom procedural object?

    Doing a local to world transform? World to local? Then you even have calculation of matrix inverses. While your library will do it for you, at least have the knowledge to know why it may fail.

    If you want to do 3d graphics, know your maths, it will save you grief and get you further, quicker.

  255. All the flipping time! by Anonymous Coward · · Score: 0

    I write various amounts of graphics, signal processing and audio software and I'm always using maths.

    I often use pages and pages of paper just solving equations before I code them - for things like radar I start with the basic physics equations and solve them and then code the solution. Sometimes the code does the hard work for me (as in a lot of DSP: it's all FFT's and averaging over time).

    Even the simple Passive Infra Red detector in the corner of your room used for your home alarm requires quite a bit a maths for it to work properly.

    The language and platform are irrelevant as well - I've done FFT's in C# on PC's and on small microcontrollers (using C).

    You can write lots of software without maths but having maths under your belt means you can do a lot more!

  256. Practical problem solving needs math by SplashMyBandit · · Score: 1

    If you examine modern papers on realistic graphics you'll see there are simple integrals that need to be solved, eg:
    http://hal.archives-ouvertes.fr/inria-00288758
    Bruneton, E, Neyret, F (2008), Precomputed Atmospheric Scattering, Computer Graphics -New York- Association for Computing Machinery- Forum 27, 4 (2008) 1079-1086

    By understanding more advanced mathematics you will have more advanced options for solving problems, eg. vector cross product for finding an axis to rotate about, or quaternions for a less intuitive way of doing the same, or differential equations for understanding the mechanics or aerodyamics of your game/ragdolls, statistics for understanding why the investment portfolio you are looking at is cleverly masking the reality of the situation. Or Linear Algebra for solving spatial and AI problems iteratively (the way a scientist would optimize, rather than the discrete way a computer scientist would first approach it). The more advanced mathematics you have the more tools you have at your disposal for solving any problem. Just because most people in today's society have a very tenuous grasp on how nature and artificial systems work dosn't mean that you ought to join them - (applied) mathematics is the tool that you use to gain understanding and solve real problems.

  257. Mathematics by Lando · · Score: 2

    I tend to use math most days. Estimation, ballpark figures, cost per ounce etc and I no longer work in the computer industry. Now that being said, is there justification for higher level mathematics in computer programming.

    Well, yes and no. The typical programmer isn't working on anything complex, just providing a bunch of criteria for a switch statement or copying information from one location to another, not a big deal, but when you start working with algorithms, not to be confused with (Al Gore)ithms an understanding of upper level mathematics can certainly help. Discrete mathematics is a no brainer since it focuses on logic and proofs which can help a programmer find edge cases and cut down on errors via the processes you learn in discrete mathematics.

    Calculus and other higher math is generally useful in making algorithms run more efficiently. Brute force searching algorithms take a lot of time, binary is significantly faster, but using calculus can even improve on the binary search methods in the right circumstances. The thing is, if you don't have the knowledge about high level techniques you cannot use them. For instance, if you don't know sorting routines a bubble sort seems incredibly fast in comparison to sequel sorting however without the knowledge of sorting algorithms you wouldn't realize how ineffective bubble sort is in comparison to say merge sort.

    Most programming isn't focused on efficiency and most things can be brute forced within a reasonable timeframe with modern computer systems, however, knowledge of calculus and other higher level mathematics can help quite a bit as techniques can be transferred into computer programs that need them.

    I guess you could make the same comparison to electronics, does a programmer really need to know electronics, diodes, resistors, refresh rates and protocols to make a computer do something useful? Probably not, but if you do know those things it can make you far more efficient and effective than the person who does not know them depending on what type of programming you are doing. Whereas most systems are built requiring basic skills or specific study of one area, higher level mathematics provide tools that can be used in a wide range of applications and tend not to be limited to specific cases. With the knowledge of upper level mathematics, when you do run into situations where it can be used, you can pull out a book or do a search to find an efficient algorithm whereas when you don't have the knowledge you'll end up spending a lot of time re-inventing the wheel.

    --
    /* TODO: Spawn child process, interest child in technology, have child write a new sig */
  258. You Need Linear Algebra and Some Calculus by Anonymous Coward · · Score: 0

    I used to be a professional Playstation 2 programmer. Linear algebra is crucial for understanding the 3D matrix transformations heavily used in most games. Understanding at least basic calculus is necessary for programming realistic looking game physics. You can probably get away without knowing how to solve differential equations, though.

  259. Data Science, Machine Learning, and Cool Things by Anonymous Coward · · Score: 0

    I've gone through degrees in both computer science and math (and am now going for my math PhD), and I've found that all of the really *cool* things you do with programming require some level of mathematical analysis. A lot of people are psyched about data science these days, but many are also calling shenanigans on those who don't have an understanding of the methods, and just push the buttons like it's magic.

    The truth is, all of the things that drive common imagination like "self-driving cars" and "computers tracking serial killers" and "simulating" any kind of real world phenomenon, all of these rest on the shoulders of some heavy mathematics.

    Shamelessly, I suppose it's relevant to share my blog called Math Programming, where I investigate the cool places where math makes for awesome programs, and vice versa. I'm about to start a big series on machine learning.

    http://jeremykun.wordpress.com/

  260. Tools by Anonymous Coward · · Score: 0

    I work in IT but I'm not a programmer. I use math all the time. Mainly for work I use advanced statistics (which requires calculus) for capacity analysis. The other day I had to use a gamma function.

    Math education provides a toolbox. I have tools that I can apply to my work that my coworkers don't have and in many cases didn't even know existed.

    People who question the value of math education usually do so because they are ignorant of its broad utility. I assure you that the more math you know, the more opportunities you will see where it can be applied to do something useful for you.

  261. I am of many many minds on this by BMOC · · Score: 1

    -- Yes, improper accounting of the classes I had taken led to a high-school counselor telling me I needed nearly remedial math when I was a freshman in high school (note that it wasn't grades, it was simply a counselor looking at checkmarks, seeing one not checked and ending her assessment of my needs right then and there). So yes, I believe that counselors do retarded things with math requirements and matching students to them.
    -- As a result of this stupid counselor (they're all stupid), I didn't even start trigonometry/calculus until college.
    -- It turns out I really liked calculus and did extremely well once in those classes.
    -- I ended up majoring in and completing 2 degrees in Physics.
    -- I still don't use much complex math on a day-to-day basis. HOWEVER, it does save my bacon from time to time, and I enjoy being able to setup solutions for problems.

    --
    I swear they give me mod points to shut me up.
  262. A good rounded education by cogeek · · Score: 1

    I think what a lot of kids miss these days in school is the fact that K-12 isn't preparing you for one particular career. The idea is to give you a rounded education that you can use to pursue any career in college. So many people are still in first or second year of college before they decide on a major, and I know dozens of people working in fields now that have nothing to do with their college degree. My advice would be to learn all you can, you never know when it will come in handy later in life.

  263. Competitiveness and Efficiency by erik.erikson · · Score: 1

    As a new product developer, I use math regularly. Most commonly I have used discrete, set, and stochastic maths. I am glad for the intellectual investments I've made in learning math.

    Advice: if nothing else, you should ensure you are able to review and understand the academic presentations of solutions and methods or else you will have excellent solutions that you will not be able to take advantage of. Mathematical theories often describe the "shape" of problems and the factors involved with them as well as the challenges and limits you'll encounter. Without mathematics, you will reduce the top-end of what you can do and reduce your productivity at work. Few can identify it but you will cost massive amounts more for the businesses that hire you. On top of your greater cost, you will have to deal with more of the distracting and non-essential coding that composes the (in my opinion) more boring aspects of the field. Meanwhile, you will move more slowly than the rest of the market and loose any advantage you may have over time.

    More personally, studying mathematics you will open up types of thinking and give yourself perspectives you might not otherwise have available. Even if your day to day doesn't require mathematics, you will be better positioned in life if you expend the effort to at least get a cursory understanding.

  264. More Important by Anonymous Coward · · Score: 0

    Even though calc is relatively standard in most technical undergrad degrees, from personal experience I'd argue that linear algebra and some statistics would be more useful for most people. I'm a few years out from my math program but I still occasionally have coworkers ask me to do certain jobs just because it will be a refresher for me whereas it'll be brand spankin' new application for someone else.

  265. Depends on your area of applicability by ciurana · · Score: 1

    Hi there!

    In my case, I continued to use lots of fun math every 12-18 months or so throughout my career. I started doing embedded systems, then moved over to compilers for a couple of years, then back to embedded, system management, scalable systems/networks, and such. Lots of great opportunities for fun math beyond simple arithmetic. In my current project we're working with the scientists at SRI on some cool predictive model stuff that requires understanding math for sample analysis and prediction. Them guys are better at science and math than me and my team, we're better at programming (Java, Scala, Python)... we both grow intellectually and professionally. Last year around this time I was working on neural networks and epidemiology models for analyzing social patterns data. Fun times.

    If you go into areas like Big Data analysis, especially if you go toward large social network/epidemic spread analysis, or high frequency trading, or other forms of trend analysis, you'll get plenty of chances to exercise your math muscles with things that you'll learn in calculus, analytic geometry, statistics and probability, and/or differential equations. These gigs (whether as an employee or as a consultant) are also very well paid because you won't be just "coding" and calling APIs blindly. For example, fraud detection is a huge area for people processing lots of credit card transactions -- whether they are the creditor bank or the bank's client. Lots of fun theorems apply (e.g. for something simple to grasp but with profound implications take a look at Benford's Law).

    Games... from what I know about the industry, lots of vector calculus, fractals... fun times.

    Spend some time learning R programming (it's fun, frustrating, and very, very useful). R gives you a rich tool set for math and graphics that will blow your colleagues or client's mind away if you know how to apply it combined with good, solid math knowledge. Think of it as awk for math instead of text. With a couple of lines of code typed in 30-60 seconds you can analyze a table with tens of columns and thousands of rows, and generate fantastic plots/charts; such thing would blow an Excel expert's mind because the same work would take at least 30 minutes and it'll look like pure magic to him.

    Think about it like this: the more you know, the more areas where you'll be able to apply your knowledge. All the guys I know who learned the math and who can apply it are always in demand (recession proof!).

    Disclaimer: computer engineer here, not a math major or actuary (nor was I interested ever in being one). As an engineer, I know how to *apply* the math, don't care much about theorems and proofs. When I'm not architecting systems/working on interesting aspects of some project, I'm doing boring stuff like business development and managing development teams. That's pretty boring, though -- having tech + math knowledge helps me move on to interesting stuff quickly when needed.

    Good luck in your quest, and I hope that you get a chance to learn and apply math that you find interesting and fun!

    E

    --
    http://eugeneciurana.com | http://ciurana.eu
  266. Agree by Art3x · · Score: 1

    I agree with what everyone has said here. You don't need to know advanced math, but it may help you write more efficient programs.

    I make business web applications. The bulk of the work is shuffling data in and out of the database and displaying it. Calculations are mainly string comparisons, sorting, and filtering. When math does come into play, it's usually addition ($i++), subtraction ($i--), or multiplication ($interval = 365 * 24 * 60 * 60). And as you can see, you're hardly even doing math. I don't actually do the multiplication, I just need to be able to type it out.

    The most advanced math I've done is the use of the modulo operator. I didn't even learn that in school, but it pops up in programming.

    Coincidentally, today I used math to figure out just how big the namespace is. If you restricted yourself to just lower-case letters, and 25 characters or less, that's 6 undecillion possible names (26^25). Granted, most of them are of limited use, like xkkxxkl, but it sure makes me worry a little less about name collisions.

    Even so, all this talk about math makes me hungry to learn it. I really can't remember anything from my calculus class in college, and this discussion makes me want to pick up a book on the subject. I'm sure it would make me a better programmer just by stretching my mind a little.

  267. As a former senior software engineer math major by rs79 · · Score: 1

    *cough*

    That's the title they put on the business cards they insisted I have in the US, not even legal in Canada to say that without an actual engineering degree. I was in the faculty of Mathematics at Waterloo, because that's where the computer science department was and I wanted to be where the watfor/watfiv/apl people were, they'd bussed us from high school a few times to play with that stuff for a day there, much better than the ibm 1130 we had.

    I'd say you need up to and including a year or two of calculus. And probably some physics. 80% of programming won't require this, but cubic splines, integrals, differentials, trig, queuing theory pops up in places if you're doing systems, embedded, graphics, robotics anything fun will need some math.

    Having said that, as a programmer you translate somebody else needs into code and it doesn't matter if it's a uart chip or a complex mathematical formula or model, they'll explain it to you so you can implement it, really you're just translating those steps into cpu steps and at least with math there's a nice flow there, it's a joy to implement.

    So, it's nice to have but as long as you can think it's not an absolute requirement. And other than this and very simple Bezier splines that's about all the math I've ever run into and I've pretty much done everything.

    --
    Need Mercedes parts ?
  268. This is sad... by Anonymous Coward · · Score: 0

    If you don't know mathematics then someone will take advantage of you in life. Look at that cocksucker obama and most of the Congress. None of them know mathematics and they keep trying to sell communism to America. It will eventually work since our public schools are in the shitter!!!

  269. I call bullshit on your bullshit by Anonymous Coward · · Score: 0

    You need calculus for things as seemingly trivial as "pointing an Asteroids-style spaceship with a limited angular acceleration toward a desired angle"

    Lol. No, you don't. An asteroids "spaceship" (and the asteroids, etc.) can be represented as just a cartesian point, more typically several in fixed relation to one another. Its motion is addition of a fixed XY amount to the XY point(s) per time frame. Its drawing direction can be represented by anything from a list of hand-drawn images indexed by a "turn" variable (sprites) and a similarly hand-coded table of XY values to give the "bullet" and the "rocket" their directions, to straight up sin/cos rotation by theta (vectors.) Bullets work just like the spaceship, only faster. Collision detection can be as simple as subtraction -- you don't even need a linear result -- and you certainly don't have to go full monty on line intersection. Even adding complexities such as other attractors is simply a matter of adding other accelerations -- IOW, XY addition -- to the point with the (barely worth mentioning) added step of considering the distance from the attractor. You hardly have to know *any* math to pull all this off. Can you *describe* this in higher math? Sure. Do you *need* to? Definitely not. Finally, should you? Also probably not. In fact, if you do, it probably simply demonstrates you know math pretty well, but you're a crappy programmer.

    My math is pretty good. But I *started* programming without it, and because I learned most of my higher math later, I can tell you that a lot of 'higher" solutions to some types of problems -- like asteroids -- aren't the best ones. I do agree that the more math you know, the stronger your programming will get -- absolutely. But sometimes it's because you know what *not* to do. Perhaps when CPUs get to the point where everything comes back to you in one clock cycle (and hyperthreads have as much FPU access as normal threads), we'll have more degrees of freedom, but as long as the time taken matters and heavier math consumes more resources, ad hoc, highly tailored solutions are going to still be very serious contenders. This goes for PCB routing, a lot of game logic, audio processing, graphics in general from ray tracing to 2D image processing and so on.

    Look at the motion of your arm, with the shoulder and the elbow and the wrist. You might like to describe that using higher math, the attraction is that you can boil it down to some fairly minimal terminology. But you can use your arm without knowing any of that; and in fact, you can create, control and position an arm to target (simulated or robotic) using the most trivial of grade school math. And such a solution is likely to take a lot fewer clock cycles.

    Then there's fuzzy logic. The math behind? Interesting. Unusual. Brilliant, even. But the implementation? Trivial.

    There are just a few very small, very simple areas of math that I find recurring across a wide variety of programming tasks I've worked on over the last fifty years, and those are truly the golden nuggets. For instance, the power of representing various things as [0.0...1.0] is vastly underused by novice programmers, and even good ones -- if they don't see why it's a killer technique. Once you "get it"... you'll do it just about all the time.

    The rest... sometimes useful, mostly not. But you need to know that.

  270. Having taught 1st year Uni students who didn't... by Anonymous Coward · · Score: 0

    I've taught at a top-N UK University (where N is an integer less than 10 dependent on the kickbacks to the league table makers that year), specifically teaching first year students the maths they will need to understand the course. There is a stark and shocking divide between those who did maths in their A-levels (16-18) and those that didn't. Those that didn't find their first year very tough and are (with a few exceptions) limited to taking the business and psychology courses for the rest of their degree. Most of them also never learn to program very well.

    Now, you might rightly ask about correlation vs. causation. My theory is that the value of mathematics is two-fold. First, it is the language in which much computing is written, without sufficient mathematical background there are huge numbers of areas that you will not be able to understand. Second, it teaches abstract and rigorous thinking, if you don't see why that's important then have a think about the question "What is a program?". Thus students who do not have this, either by inclination or (lack of) training suffer.

    So, to answer your question, sure, you can program without maths. You can make a living working in IT without maths, many people do. However, if you want to design, create, invent or innovate then maths, if not vital, is one of the best ways of building the skills you need.

  271. Write your own compiler or code in assembler... by E_Ron.Eous · · Score: 1

    And you'll need to understand calculus.

  272. Runtime Analysis by trydk · · Score: 1

    One of the fields where mathematics have definitely intersected with all types of serious programming is runtime analysis of algorithms and programs.

    I know that computers today are magnitudes faster than the early days and that most western households have more computing power in their house than was available in the whole world some fifty years ago, but the problems we try to solve have grown even further and yet we expect the response times to be reasonable for everything we want to do.

    One problem that just came to mind is navigation: That little box on the windscreen is actually searching through millions of roads to find the optimum route between two points and still we expect it to take less than a minute.

  273. Math is more than calculus by Khopesh · · Score: 1

    I'm mostly responding to this comment because it has one of my main points.

    Computer Science uses several types of math. Logic and discrete math are the fundamental concepts at the core of CS. They are the reason CS is so often found as a degree offered by collegiate Mathematics departments.

    Computer science also heavily depends on linear algebra and (mathematical) statistics, the latter of which depends on calculus. Big data is one of the big up-and-coming fields within CS. To understand it, you'll need to understand statistics as well as various machine learning concepts. This involves information retrieval, probability theory, and a number of other advanced mathematical subjects.

    The problem is that universities consider calculus to be the end of the math requirements. My CS major required Discrete Math, Symbolic Logic (an attempt at logic and set theory), Calculus 2, Physics 2, EE 1, Probability, and Linear Algebra. It should have introduced new advanced courses and required them, e.g. Discrete Logic 3 (Discrete Math + Symbolic Logic), Calc 1, Probability, Statistics 1, Linear Algebra 1, plus any two electives that require one of those (e.g. Stats 2, Machine Learning, Calc 2, Linear Algebra 2).

    Because so many programmers suck at math, many employers will take an applicant with a Math degree (ideally dual-major CS/Math) over a slightly more qualified general programmer with just a CS degree. This is because the CS major is less likely to be able to grasp at advanced mathematical concepts inherent in advanced algorithms, optimizations, etc. It also follows the stereotype of math being "harder."

    When I interview candidates on technical prowess, the code portion is just having them tell me what something does. I then give them math problems. When I started doing this, I was surprised at how much the applicants struggled; my current questions start far simpler before winning the harder question (which is about Bayes theory, taken from An Intuitive Explanation of Bayes' Theorem).

    (Full disclosure: I do not have a math degree. This is in part because I was not at all interested in taking any more calculus.)

    --
    Use my userscript to add story images to Slashdot. There's no going back.
  274. Each level teaches you the previous level. by FatLittleMonkey · · Score: 1

    I've found that each higher level of maths I studied made me much better at the previous level.

    So algebra made me better at arithmetic. I now saw numbers as systems and modules, and I could pull them apart and put them back together, all in my head. Likewise, high-school calculus, stats, trig made me better at algebra. But because I didn't follow maths after high-school, I'm much less comfortable with the highest maths I studied. But I'm sure, had I gone on to more advanced calculus, etc, then I'd be using basic calculus much more often, to quickly solve problems I now have to grind through (and still aren't sure I didn't screw up.)

    I assume the same is true in other areas. Learning basic coding probably taught me more about everyday computing than it taught me about coding.

    --
    Science is all about firing a drunk pig out of a cannon just to see what happens.
  275. Lock yourself out? by Anonymous Coward · · Score: 0

    Yes, you absolutely can get along programming without the advanced stuff. You know, counting the beans and so forth as several folks have pointed out. However, if you _ever_ want to get more serious and up your game there is a good chance you'd be stopped by the simple fact that you don't know advanced math and its too late to study. Let's say you have a clustered database of 64 nodes. Your query result will be distributed between them with equal probability. How many records do you need to fetch from each of the nodes to bring the probability of not being able to assemble the top 100 _aggregate_ results adequately below .001? How does the size of your connection pool impact your SLA given a (non-uniform) distribution of user requests per second and DB response times? So you have collected a bunch of data based on the behavior of your complex system. What function does it (roughly) fit and what does that tell you? All questions I've practically had to solve and all of them take non-trivial combinatorics, calculus, statistics and probability theory to solve. You want to assume your career will never depend on these things and that you'll never want to take it a step higher? You absolutely sure?

    When somebody tells you you need to know something, study without questioning if by any means possible. If they turn out to be wrong, then you are a more knowledgeable person. If they turn out to be right, you are a more knowledgeable person and a better fit for the job!

  276. Multidisiplinary by DeTech · · Score: 1

    Some of the coolest apps/jobs are in the gaps between fields. Think aerospace, robotics, advanced sensors, etc. If physics or engineering interest you get comfortable with calculus in at least 4 dimensions, upside down and under stress.

  277. listen by Tom · · Score: 1

    I've been told by teachers and parents that math classes are a must for any technology related career.

    You already got your answer. What makes you doubt them?

    Some math you'll never need again, some you'll wish you learnt more about. Trouble is that you don't know beforehand which. But you will need math in any tech career.

    --
    Assorted stuff I do sometimes: Lemuria.org
  278. You usually don't need advanced math by efalk · · Score: 1

    But you need the basics.

    In my entire career, I think I've only used math once that I hadn't learned in high school (differential equations for a fluid flow simulator).

    I've used algebra, matrices, geometry, and trigonometry on a pretty regular basis for the bulk of my career. A lot of that career included computer graphics, which uses matrices and trigonometry heavily.

  279. Maths by Anonymous Coward · · Score: 0

    One of me uses math. The rest use maths.

  280. ok here's some examples by roc97007 · · Score: 1

    Example one:

    Your backup library has a certain number of drives of a certain maximum throughput. Your backup software divides up the data set into a number of jobs equal to the number of drives, and assigns each job to a drive. But the software can only start one job at a time, so on a graph of collective throughput per unit time, you see the total throughput ramp up to maximum drives, then ramp back down as each individual job finishes. The graph represents collective throughput at a particular time. (Say, in Mbytes/second.) The steepness of the curve represents how fast drives can get online, increasing the collective throughput (Mbytes/second/second) (You can observe empirically that the curve falls off with the same slope as individual jobs complete, which makes sense if the jobs are roughly the same size.) The area under the curve represents the amount of data in the data set. (Mbytes.) Thus function, derivative of function, and integral of function.

    Immediately, you can see that the area under the curve for a particular data set size will remain constant, as the size of the data set is fixed. You can change the shape of the curve, which also changes the end time, by improving the rate at which drives can come online. You can also postulate that given a certain rate at which drives come online, and a given drive throughput, there is a maximum number of drives that are practical for a given data set.

    The purpose of this analysis (math left as an exercise to the student) was to convince engineers that the best tactic to solving slow performance was in improving the task management part of the backup software, and that given the current conditions, more hardware wouldn't help.

    Example two:

    A very large, very complex installation is significantly less reliable than than it should be.

    The vendor says, each component has an MTBF of thousands of hours, therefore we shouldn't see the failure rate we've been seeing. (Which was in tens of hours.) But assuming every component has to be online to complete the job, and that a failure of any component causes the job to fail, the MTBF of the system is considerably less than the MTBF of a given individual component. Given the monstrous length of the jobs and tremendous number of components, it could be demonstrated mathematically that on average, one job in three would fail. The solution was to redesign the system with "hot spare" components and changes to software to take advantage of them, so that it would take several component failures to cause a job failure. The reason this had not been done previously was the perception that a component MTBF in thousands of hours made the issue of component failure unimportant. (They were also wildly optimistic on component duty cycle, but that's another story.)

    The difference between knowing math and not knowing math is (in my opinion) the difference between being an engineer, able to solve problems, take measurements, understand what one is seeing, and draw conclusions, and being a technician, doing basic triage and following rote procedures written by someone else (probably an engineer). If you have engineering aptitude, you may be able to get by without math the same way a carpenter can build a house without knowing how to use a hammer. Mostly, he gets someone else to do the hammering for him.

    --
    Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
  281. Not really, but taught me to think by kevin.gt · · Score: 1

    Day to day use of higher-level math? Not really. But the course work challenged me, taught me to think, prioritize and problem solve. The same can be said about a lot of my college course work at GA Tech.

  282. there's a noble third way by kunyo · · Score: 1

    Find a mathematician to do the dirty job (writing the required algorithm), have him/her explain it to you and claim you did it by yourself searching on Google. So you will get "both the money AND the yayo" and you will see the angered faces of engineers whit tons of qualifications but not a clue about how you managed to do it so quickly

    --
    if free market is supposed to be able to solve every problem, why do i still need to scratch my balls?
    1. Re:there's a noble third way by russotto · · Score: 1

      Find a mathematician to do the dirty job (writing the required algorithm), have him/her explain it to you and claim you did it by yourself searching on Google.

      Funny thing about that. A company I once worked for did the first part: found a mathematician to do a dirty job. In this case, it was reverse engineering a particular field of a binary protocol. He was able to demonstrate that you could generate this field by doing some hairy matrix arithmetic on the data and a 16x16 matrix he'd figured out. All well and good, except that this was a tiny embedded device and the code and matrix took up a lot of space.

      I came upon this code some time later and it struck me as wrong; the original was an embedded device as well, so why would they do hairy matrix math? A cyclic redundancy check made much more sense. A little Googling revealed the equivalence between CRCs and matrix math. I reverse-engineered the CRC polynomial from the matrix, and replaced the matrix code with much smaller CRC code. No way I could have done it without enough background in linear algebra to understand what I Googled.

  283. Field dependent, but more math is better IMHO by Anonymous Coward · · Score: 0

    I'm an electrical engineer who works mostly writing software for communications equipment. Most of the math I use isn't as complicated as coding calculus algorithms, but having taken courses in discreet math (meaning the mathematics of logic and boolean algebra, not discreet-time math for signal processing), multi-variable calculus, statistics, probability theory, linear algebra, differential equations, and electromagnetics, I think math is essential to good programming. Not that you will use the math itself, but you will have learned how to approach problems and solve them efficiently, simply, and accurately. Taking math courses will help you develop critical thinking skills, which will make you a better programmer.

  284. Math? by TonyAldo · · Score: 1

    To program like a Jedi, one must be able to think logically like the way you drink water. Thats really what all that math enforces.

    --
    tonyaldo.com
  285. Not about math so called making operations by Anonymous Coward · · Score: 0

    I am a teacher , It is not about actually doing mathematical operations.
    You studied math and solve operation at schools because in such a way you develop
    skills, abilities and attitudes that help you in a deeper understanding of what you are actually doing.

    Without you math courses many people wouldn't have the necessary skills, the spatial thought,
    the patience, the method the structure and order of doing "something"

  286. Go for it by Anonymous Coward · · Score: 0

    If you are interested in math, go for it. Math rules. Don't worry about it. Follow your interest.

  287. A real-world example by Anonymous Coward · · Score: 0

    I thought I'd remembered most of my calculus and algebra until I was faced with solving a rather straightforward geometry problem.

    Given a bounding rectangle, I needed to find out where a ray extending from the center intersected an ellipse (defined by the rectangle) at a given angle.

    If the X and Y dimensions are equal (the rectangle is a square and the ellipse is a circle) that was pretty easy.
    Trying to do the same for a non-circular ellipse, I got stumped and had to ask a friend (who, quite conveniently, is a math prof).

    It was a bit embarrassing and it cost me considerable time.
    I invested in some reference books for insurance against future brain farts of a similar nature.

  288. everyday math by roc97007 · · Score: 1

    A friend of mine came to me with a problem. His grandparents' TV just went out, and they need to buy a new one for their enclosed media center. It was an old non-widescreen TV, and pretty much anything you can buy now is widescreen. Given that the old TV was 20 inches, what size TV do they order that will fit in the cabinet? I'll even give you, the ratio of width to height for old TVs was 4:3, and the ratio of width to height of widescreen TVs is 16:9. (Some allowance has to be made for the bezel as well.) TV size is measured diagonally.

    I solved it for him (elementary trigonometry) but I think his grandparents ended up going to the store with a tape measure. That works too, I guess.

    --
    Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
  289. thinking by carpefishus · · Score: 2

    Learning math teaches you to think. It is very worthwhile.

    --
    Facts take all of the premium out of arm waving - T. Reynolds
  290. Math & programming by Paracelcus · · Score: 1

    Maybe if you're a game programmer or working for DARPA, you might need somthing other than the basic stuff taught in 1950's high school, but I worked in the computer industry for many years and really don't remember needing other than very ordinary arithmetic.

    --
    I killed da wabbit -Elmer Fudd
  291. What kind of programmer do you want to be? by Anonymous Coward · · Score: 0

    I think the question you should really be is what kind of programmer do you want to be? Do you want to be a typical programmer, writing things like standard line of business apps, or do you want be doing things beyond that? Yes, you don't need advanced math to do typical programming, but I personally didn't want to be a typical programmer.

    To be successful at the highest levels, a deep understanding of math is very helpful and often required. You may not actually have to solve an integral, but the problem solving you acquire studding calculus is critical . Furthermore, actually understanding statistics, or what the area under the curve, for instance, or the second derivative means in real life situations is what can separate you from a "typical" programmer as a more elite programmer. Similarly probably most "typical" programmers don't have a strong grasp of algorithms (like what you lean in an analysis of algorithms class), but great ones will have solid algorithms skills.

    By the way, you have your whole life to work and do programming. Does it really take that much time to learn things well and take a few math classes and get a real CS degree? It isn't that much more effort compared to a lifetime. I won't hire anyone who can't be bothered.

    So, yes you can be typical, and not understand higher math. You can even program without really knowing algorithms, but you are really lowering the ceiling of what you can achieve. Before someone jumps in saying I achieved this great thing X without formally leaning math etc., it is possible to learn on your own nonformally, but you still must lean and know these basics regardless.

    Don't be lazy. Take the time and learn things like math correctly.

  292. Maybe CS isn't for you by jad4 · · Score: 1

    I believe that every program that crashes was made by someone who said "I want to stop learning." If you can't handle logical classes like math, Computer Science may not be the correct path for you. So, consider switching to some other field. Perhaps 3D modeling, if you still want to work on games. The world has enough shitty programmers.

  293. Computer programming and math by Anonymous Coward · · Score: 0

    I am a senior systems/performance developer/engineer for a tier-one mobile phone manufacture. Previously, I was principal software engineer for a major semiconductor equipment and manufacturing software provider and consultant to major semiconductor, disc drive, and LCD manufactures.Yes, many programming tasks can be done without higher level math, although formal logic is, in my opinon, an a-priori (necessary) requirement for serious software development. However, most really interesting software problems also require higher math (calculus, differential equations, statistics). Without calculus, I would not have been qualified for a previous position developing risk analysis software for the options trading industry in Chicago. Without calculus, I would not be qualified for my current position as senior performance engineer as we need to apply higher math to problems of predictive analytics in order to best manage our large-scale world-wide data centers that support 50-200 million users.

    That said, our organization won't hire anyone who doesn't have good fundamental math skills, at least through 2nd year calculus.

  294. Same Question is Always Asked by lazy & Scared by Anonymous Coward · · Score: 0

    Writing rudimentary code and being a computer scientist are completely different. Also not wanting to take math classes is one thing, but trying to say that computer science doesn't require math just so you don't have to take it is another. People always try to discredit 100 years of science and engineering because they don't want to take a calculus course.

    We had a lot of guys in my computer science dept who didn't want to take math because they thought it was useless. They also didn't understand why we need to learn how to write documents. They said things like "i'm a computer scientist, not a mathematician," and so on.

    Those guys are now working as glorified interns, some actually do data entry and help desk, and all these jobs that you don't want to do after paying for a college degree and working your ass off. I'm not bad mouthing those jobs, but generally when you get a degree in computer science, you don't aspire to those types of positions.

    Regarding their personalities: They were generally afraid of failure, they were afraid of hard work and were generally afraid of having to learn on their own or ask questions when they don't understand. They just accepted defeat and barely made it through and would try to get out of or run away from anything the perceived to be hard.

    Those are the people who make these arguments.

    That being said, you will use mathematics every day of your life as a computer scientist or engineer. You will have to be able to solve recursive problems and provide linear solutions to other problems. It won't always be clear that what you're doing is mathematics, but you will be doing it. The biggest misconception is that mathematics is sitting down with a pencil and a paper and solving integrals that represent the area of a lake and whatever they have in your text book or other arbitrary problems.

    I recommend you look up these books:

    Gene Golub - Matrix Computations

    then check out this book, which you WILL see in college. This is the defacto algorithms text book.

    http://www.amazon.com/Introduction-Algorithms-Second-Edition-Thomas/dp/0262032937

    You can find them both floating around in pdf on Google.

    From there you can decide if you want to step into the computer science arena.

  295. Never by Anonymous Coward · · Score: 0

    I took Calc and Linear in college. In over a decade as a software engineer I've never used them once. The few places I've been that required math required so much of it that they had people with master's and Ph.D's to take care of it. With that said I haven't used half of my CS courses either -- it's probably all worth learning anyway, just in case. And learning hard things is good for you.

  296. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  297. Trading Firms by Anonymous Coward · · Score: 0

    I work in finance, software development for trading firms. If I knew more math, especially math software, my value to the company I work for would be much higher.

    I've been through calc 2 and some discrete math. I've used all the math I've ever learned at school; mostly developing for trading firms and doing some game development on the side.

    I especially regret not taking college level statistics.

    Had I stayed in my original development job, working for a commodities exchange, I don't think I would have ever needed any of the math I learned. Still, I would want to know all the math I already know and more because I have found it necessary to consume day to day information without being taken for a fool. If you know math you should be able to guess what a derivatives exchange is, and that alone can make a world of difference in being aware of the world around you.

  298. Dr. Hacker is a FRAUD by roman_mir · · Score: 1

    As I said earlier, Dr. Hacker is a fraud. If you want to understand his real motives, listen to the audio interview with him.

    He has an agenda, and this agenda is about increasing the number of people studying his subject in college settings and to do this he wants more people to stop studying algebra and other math and sciences.

    He is interested in arguing in class for Obamacare and he wants to use statistics and no other math, and he wants this to be the environment for the young kids to learn in.

    He is talking about indoctrination and dumbing down and at the end it's about money and power.

    As a side note, the guy says that statistics should be taught to look at politician's claims (at school, to indoctrinate the kids) but statistics require algebra.

  299. Tools in the box by Anonymous Coward · · Score: 0

    Even if you're not actively coding the various equations, the higher maths are essential in that they give you multiple ways to approach a problem, a greater understanding of the problem's nuances, and can serve as bits of inspiration. The same goes for sorting algorithms and data structures; it's very rare you'll use anything other than Quicksort, but having a knowledge of your options and how those options work can then be applied to other areas.

    The better your understanding of the world, the more easily you can model parts of it...and the more efficient those models will be.

    I'm going to beat your future professors to the punch on this...Development is more than just cranking code, something your school of choice will beat into your head over and over the first 2 years. Any monkey with at least some language skills and a weak grasp of workflow logic can code. To make a career of it, you need to go above than and become a developer, have to go into Computer Science [Theoretical], a specialized sub-field [Graphics, Scientific, Compiler/Language, etc] or Software Engineering [Practical]; monkeys that can't do anything but code are underpaid, overworked, treated as expendable, and are the McJob of the CS world. If you're looking for it when going for a major, most schools put SE as a concentration in the CS department, as it's a subset of Computer Science rather than wholly standalone.

    Sitting down and tinkering works well when you're dealing with programs that are a couple hundred lines and nobody else will ever touch ever again, or when there's no consequences except time wasted to a reinstallation. Once you get into cooperative programming, projects that require maintenance, or large projects, it's a whole new ball game. You're going to need a solid grasp of design paradigms, compartmentalization, time management, documentation, and the like. You're going to need extensive knowledge of data structures to know when each is appropriate. If you want to become a team lead, you'll need all that plus a solid technical writing skills, a solid grasp of engineering concepts for everything from forethought and planning to making sure it all fits together to deciding on the most efficient course of action. You'll need a solid grasp on abstraction to lay out the build order in a way that minimizes dependency delays. You'll need people skills in a big way; no team will respect a stuttering boob that can't explain what they're supposed to be doing and hides...or flips...at the first sign of trouble.

    And it's all stuff you're going to need fresh out of school, if you're going to compete in a market that's fairly saturated.

    If you want to go into games...you need every math and science you can get your hands on and then some. Game balance is achieved through analyzing permutations, combinations, and statistics. Barebones physics is applied Calculus [acceleration, velocity, and position are derivatives/integrals of one another. Plotting in 3D brings vector math into the equation]. Rendering is a heavy application of matrices and the transformations thereof. Audio is all the study of waveforms, and control relies heavily on interpolation. Modern AI are state machines, which build very heavily on the fundamentals of CS theory. Game programming is one of the most demanding coding sub-disciplines out there.

  300. Statistics more than maths by tdelaney · · Score: 1

    I've done 2nd-year uni maths (multivariate and vector calculus), not that I remember any of it anymore ... In my 15 years as a software developer I've rarely needed any higher-level maths. What I have found is that my one first-year uni statistics course (which I paid very little attention to) has helped enormously.

    Programmers often have large data sets they need to analyse and need to be able to understand trends, how to spot outliers, etc. If you're profiling or optimising, you need to understand the important of statistical sampling and error ranges.

    Statistics is unbelievably boring as a subject. But it's actually useful and interesting when applied to real work.

  301. programming vs development/engineering by luis_a_espinal · · Score: 2

    The bulk of programming jobs have nothing at all to do with math beyond the high school level. Its mostly counting beans and keeping records.

    There is the activity of programming or coding, and the activity of software design. Coding by itself requires little behind HS math. Development/engineering, on the other hand, requires the person to have good analytic skills. From choosing the right algorithm or data structure to composing good architectures, they all boil down to understanding convergent and divergent series, discrete mathematics and combinatorics. To get to those fields one needs to have a good grasps of limits (ergo, Calc I). Similarly, every once in a while one has to make some form of probabilistic analysis at some point or another (ergo stats and Calc II).

    Knowing mathematics at the calculus level or above does not guarantee a person to be a good software developer. But not having good analytical skills almost guarantee the person will end up writing flat class hierarchies, architectures without layering, writing n-cartesian SQL queries, and loops that execute very expensive invariants.

    The error I've seen the most with developers with poor analytic skills is an inability to infer behavior from looking at code. That is, they are completely incapable of doing P->Q inferences. Worse still, they seem to have problems doing divide-and-conquer approaches. They cannot look at one piece of code, they have to look at the whole thing. When testing, they test the whole system in one single shot as opposed to testing and observing behavior of smaller pieces. In other words, they cannot handle complexity. They simply bang it - code it, compile it, run it, don't like the output, change it again, on and on until it prints the "right" thing (or things get hidden under the carpet.)

    YMMV, but that has been what I've seen since I started my career in software.

  302. Re:Diff equations are key to modeling the real wor by Anonymous Coward · · Score: 0

    But a huge amount of computer science is not about modeling the physical world. It is about organizing data or doing accounting or serving up web pages. Advanced calculus does not help at all with that.

    To put it baldly: If a student prepares himself with only enough skills for a career doing scut work, then he shouldn't be surprised when he winds up in a career doing only scut work.

    Moreover, he can't even lift himself out of that because he doesn't have the skills to qualify for better opportunities when they come along. It is hard as hell to try and study while holding down a full time job.

  303. It depends on the application. by RKBA · · Score: 1

    It depends on what type of computer programming you do. I'm retired now, but most of the programs I wrote didn't require the use of much math; however, one application required integral calculus to determine the orbital angular position as a function of time for the Cassini spacecraft as it passed over an optical telescope at Table Mountain Observatory in Wrightwood, California on Earth as it did its "slingshot" around Earth in an Earth gravity assist maneuver to gain velocity on its eventual journey to Jupiter.

  304. Not that often, its like an erection. by Anonymous Coward · · Score: 0

    But when you need it you are happy you've got it!

  305. Discrete math, then linear algebra for CS by dbc · · Score: 1

    Speaking for myself, yes I use calculus. But I lean towards the EE side of computers. For the pure CS side, discrete math is very important. Followed by linear algebra and abstract algebra. Calculus, not so much. For game programming, I would prioritize it linear algebra, then discrete math, then calculus (for understanding game physics), then *maybe* abstract algebra. You may not use the math every day, but on the days when you *do* need it, the insight it gives you and the power of the tools gives you the "passing power" to solve in short order the kinds of problems that your colleagues will struggle with for weeks. It really depends on how you want to spend your life -- implementing other peoples' ideas, or deploying people to implement your ideas. If you desire the latter, get the toolbox inside your brain well-stocked.

  306. It's how you think by Anonymous Coward · · Score: 0

    Good grades on mathematics (not just the stuff you could do with a hand calculator if they'd only let you) show that you notice details and follow them up, you understand the difference between something that sounds true and something that can be shown to be true, and you can see the simple kernel of a complex problem. These are all hugely valuable traits for a programmer. In fact, without them I'd say (under my breath) that you're still playing with coloured wooden blocks.

    That said, there are good programmers with relatively little mathematics in their education, but I think they would do well if they did take more of it.

  307. No Math in code development? RIGHT. by AnalogDiehard · · Score: 1

    Image Processing - my primary job function - relies on calculus, statistics, algebra, trig, geometry, matrix math, domain transforms, you name it. Look at any image processing function library and you will see functions heavy in math. We need developers with image processing experience and a strong math background is a requirement. This is the stuff that separates the men from the boys.

    My job title is Measurements Engineer and you better believe that advanced math is a regular tool. Our company has the largest staff of PhDs, MSxx, and other degreed personnel in the country and math is the tool for solving problems.

    Anybody who has ever developed a control system for large industrial format actuators has used an advanced math tool involving calculus. It's called PID - Proportional Integral Derivative - which is an essential tool to optimize latency between command and response and prevent destructive overshoots and oscillations.

    Programming isn't all games and accounting.

    --
    Eternity: will that be smoking, or non-smoking? I Corinthians 6:9-10
  308. If you don't know it, you don't miss it. by gurps_npc · · Score: 1

    If you don't already know it, you don't realize someone else does. Most people learn it back in school then promptly forget it. You can't measure how much people use things - those that remember it/learned it, will use it. Those that don't remember it will take twenty times as long (or their software will take twenty times as long) to do the same thing, and think "I don't need math."

    --
    excitingthingstodo.blogspot.com
  309. It's just hidden. by jouassou · · Score: 1

    For instance, most file formats for storing digital photographs, sound recordings and video clips are based on either the DCT or the DWT. Both these algorithms originate in Functional Analysis, a branch of mathematics that builds on the methods of Calculus.

    Most users rely on existing libraries to parse and load multimedia files. However, someone wrote those libraries for you. And I'm quite sure those people knew a lot of math.

  310. What kind of programmer you want to be? by fricc · · Score: 1

    There are few things in CS that are new these days, definitively very few since the 80's. Pretty much all we tend to do is rehash the old stuff in a new package. I personally find that pretty boring. One of the questions that I asked myself when I was younger was: how can I be creative? For some reason that it was, and it still is, a very important question to me.

    In a field where rehashing is the norm, how do you keep being creative?
    You need to challenge all that is given, ask yourself: why do we do things like that? Who decided? When? Does it still hold true today? Can I do it differently? Would it be worth it? Many times we do what we do just because we have always been doing like that. Pure habit and resistance to think out of the box.

    What do we need to think out of the box in a world of numbers? Math.

    Without a deep understanding of the mathematical foundation of the methods and algorithms we use, there is no way of ever do anything creative in this field.

    So, it is up to you: What kind of programmer you want to be?

  311. Set Theory and SQL by Anonymous Coward · · Score: 0

    I have used set theory to concisely describe SQL queries when the lonmg-form English description would have clouded the meaning to someone reading the comments about the SQL statement. It is amazingly easy to translate a query written in set notation into SQL and produce the expected result set.

    In my daily life I use mathematics including vector calculations and even calculus while operating a motor vehicle, and basic arithmetic to manage my finances. I have a BA (Natural Sciences/Mathematics).

  312. Queing theory by Anonymous Coward · · Score: 0

    There has been a couple of times that I can recall over a couple of decades that I have needed higher level math. One was a linear programming problem for load balancing. The other was a queueing theory problem for how many connections a box could handle without dropping. Like a lot of tools, you probably will not need it often but when you do need it it is the only thing that will solve the problem. As I recall queueing theory classes are off limits to anyone that hasn't done Calc2.

  313. Re:That's why you should have had calculus by Anonymous Coward · · Score: 0

    Battery charge / discharge rate is not constant over the charge level of the battery. The percentage reported by the battery to the OS is just the voltage reading, which is not truly linear to the actual charge level.

    If you had, you might have come up with an better solution than just the most naive one.
    But because maths isn't important, the naive solution is the only possible and because that's the only possible solution, you conclude that maths aren't needed.
    Sorry, but your horizon is simply not broad enough to imagine better, or maybe just different approaches.

  314. Computer science and math. Yes you need it. by prefec2 · · Score: 1

    When you design database schema, you need set theory, relations, cross product, etc. When you model and meta-model you need relations, sets, classes, rings and a lot of other math stuff you probably never had in a US high school. If you work on monitoring systems for performance or other properties, you need statistics, algebra, Markov chains, and more in that direction. You definitely need graph theory (to some degree). And for the software of the near future graph theory will become more important. When you analyse social networks, you need graph theory, set theory, and a lot to understand different types of filters. If you use logic, set theory is a logical choice. Also other concepts are required such as proof by induction and deduction.

    You could say: computer science is a special section of applied mathematics.

    If you model simulations, integral and differential equations are useful. When you develop domain-specific or other programming languages, APIs etc. you need formal languages, which require a lot of math as well. And actually when you are programming you use math as well, ypu just don't know it.

  315. Not per se by hacksoncode · · Score: 1
    It's not really the math itself that you use in programming. It's the mental processes that you learn learning math that are *also* useful in learning (and doing) programming.

    I won't go so far as to say that anyone who hasn't done advanced math *can't* be a good programmer, but I will say unequivocally that it's highly unlikely.

    But more importantly, being a really good programmer absolutely requires that you be *curious* about algorithms. It's mind-boggling to me that anyone sufficiently curious about algorithms to be a good programmer would even *ask* the question "do I need all this math?". Who cares? Why don't you *want* to learn it?!?!? Hint: "Just for the joy of learning it" is the right answer.

  316. I stopped by Anonymous Coward · · Score: 0

    I stopped when my teeth started to rot.

    Oh wait. Math. Never mind.

  317. Yes, game developers use math by Anonymous Coward · · Score: 0

    game development [...] Unity3D and OGRE [...] but I've never had to use any math beyond trigonometry

    If you want to keep going down the 3d graphics programming route, you must learn everything you can about 3d vector math. When I took the relevant courses, they were called "Linear Algebra" and "Calculus with Analytical Geometry". Various parts of calculus are prerequisite for understanding those topics. If you want to be a game physics programmer (whether for 2d or 3d games), then at a minimum you'll additionally want to learn Differential Equations.

    By that point, you will have enough math knowledge and practical experience using it that you'll be able to determine for yourself whether you actually need to learn more, and specifically which topics.

  318. Do you want to create tech, or just use it? by LordZardoz · · Score: 1

    If your content to use 3d packages like Unity, you can probably get by with little more than a strong understanding of matrix and vector math.

    If you ever want to implement any of the following more directly, you need significantly more

    3d Physics: requires calculus for certain ballistic calculations.
    Low level rendering: requires knowing how to interpolate a normal value across mulitple verticies
    collision vs true curved surface: if you want to use spline curves to represent geometry, you need to know how to calcuate an exact location on it to determine a collision normal.

    Or what happens if you want to use a 3rd level plugin for Unity that only works with Quaternions and all you have are the Vector / matrix based positions?

    You cannot always depend on an out of the box solution.

    Think of it this way: You do not need to be an architect to build a house. Any idiot can hammer together some walls and a roof. If you want the damn thing to actually look good or do something no one else has done yet, you need more. Any idiot can buy a 'just add water' cake mix and make a chocolate cake. But the guy who can make one from the raw ingredients is probably going to make a much better goddamn cake.

    Also, if it comes down to hiring an employee with high school level trig vs a guy with university level calculus, and the job involves working with those concepts even indirectly, than high school guy loses every goddamn time. Even if your not using it directly, your still going to be better off going with the guy who has a deeper understanding of what the hell is going on.

    END COMMUNICATION

  319. Math math and more math... by JFilz · · Score: 1

    Yes I have a many points of my life used Calculus and Discrete and Dynamic and other types of math and related theories. Luckly I don't have to crunch the numbers (or show all the steps) like in university as I write programs to do that. I do use math in programming - manually figuring out things on paper and/or in excel and/or other programs. Often thing are complex at first - write a function to work with the problem to derive the answer - then reuse that function or modify it for similar problems. Short answer - you need to KNOW how to do calculus - you may or may not have to actually perform it like you did in highschool/collage/university and may never crunch it like that..... but when given a set of data - you know how to formulate the equation and when given the answer - you should UNDERSTAND if that is correct or out in left field and totally is wrong!

  320. Practical Considerations by hardwarejunkie9 · · Score: 1

    One: if you want to look at what divides high-powered innovation, look no farther than the ability for those who are designing systems to understand high-level mathematics. There are all kinds of solutions out there to be applied in creative ways, but the problem is often in how to even comprehend the information that exists out there (relatively) freely in academic papers and demonstrations. Two: if you wonder what use math is, you probably need more of it. The interesting part of a mathematics education is that it teaches you the respect of its application. I never understood just how important linear algebra is until I had to start playing with it. Now, I realize just how much of the massive data flood we wade through is filtered and explained through such powerful methods. I've got an extensive mathematics education in my engineering degree and I never have had a good reason to regret a minute of it (after the initial gnashing of teeth, of course).

    --
    I like losing arguments, it just means that I can take your point and make it my own.
  321. Doing it wrong? by Anonymous Coward · · Score: 0

    I'm not sure about other game developers, but I had to teach myself calculus out of necessity. Working with Vectors and Matrices is calculus with a sprinkling of trigonometry and geometry.

    Outside of programming, I keep a small pad of paper and a pencil with me at all times. I got through one pad of 40 sheets every 3 to 4 months and only really use it for calculating things. I tend to do a lot of varied work, and have never encountered a single line of work that didn't require at least basic algebra. The more advanced stuff I only really use in programming and electrical engineering. Honestly the mandatory math that I had to take is all I ever used in ordinary life despite trying to find ways to work in the fancier stuff from advanced forms of math.

  322. It is the concepts by Anonymous Coward · · Score: 0

    It is the concepts of learning how to learn in mathematics that is so keen to any science. If an individual can't grasp basic calculus, they'll also fail in any advanced science. Most things you learn in school can't be directly applied to many professions, but that doesn't mean it was pointless to learn them. You become better and better at learning as one progresses through the sometimes tedious learning sessions.

  323. Take it! by Anonymous Coward · · Score: 0

    I took a math major route before applying to computer science jobs. I would say the advantages are thus...

    A MUCH stronger understanding of data structures.
    Much more prepared to decipher and write algorithms.
    Much more marketable to startups and places where IT is hired by those who are technical themselves.
    So many abstract concepts in programming were originally rooted in mathematics.
    Mathematics is more dense then code, dense code usually is laughably less dense then the math I did.
    The theoretical portions of math are especially interesting to juxtapose against most programming practices.
    There is this intangible sense that my programming perspective before my mathematics experience was just worse.

    Disadvantages:
    You're less prepared technology wise for what is out there if you don't also take a full CS degree, too. So you have to sell your ability to pick up on stuff in interviews.
    Mathematics is *harder*. CS people will disagree, but it is true. (this could also be an advantage!)
    Mathematics is less practical, and therefore much less rewarding until you develop a mindset that prioritizes actual knowledge over execution, which will later hurt you when actual execution once again becomes more important than knowledge in the business world.

    Finally, I believe that there is only going to be more demand for programmers who can really really really go the final mile in abstracting everything. I can only see mathematics helping with this.

    N

  324. Better Safe Than Sorry by cryptizard · · Score: 1

    It is probably true that there are many programming jobs where you don't use the kind of advanced math you are talking about. However, there are some that do, and the kicker is those tend to be the most fun ones. Why limit yourself by passing up a chance to not only gain some knowledge that might help your career, but also understand more about the world? It is absolutely true that math is the language of nature. I promise you will never regret taking more math classes, but you sure might regret not taking them.

  325. Maths by Anonymous Coward · · Score: 0

    Maths are models and there are lots of them. If you don't understand the principles of a provably correct model [mathematics] you will never be anything but a grunt. Sure you can be an average programmer with little knowledge but if you want to be one of the good ones you have to know the guts of what you're doing you have to understand the model behind it. Most of my fellow ERP programmers don't know the mathematical definition of a relation or function, that's why the come to me when doing what they always did doesn't work this time.

  326. Beyond? by Anonymous Coward · · Score: 0

    Your question itself is an example of why you need to take more mathematics; you say you haven't used anything "beyond" trigonometry. But mathematics education is not a straight, one-dimensional path that you must follow. There are plenty of computer science applications that use college-level algebra (many computational problems, especially in computer graphics and computational geometry, require knowledge of the combinatorics of arrangements of points) which does not require calculus, but is definitely beyond anything you have been exposed to in college. Working on problems that are 2, 3, or more dimensions become challenging very quickly and there is a lot of math involved in deciding which algorithms will be able to work on which problems.

    So,there are plenty of "beyonds" in directions other than calculus and differential geometry. And I use all of them in my job doing scientific visualization R&D.

  327. If you deal with machine learning... by frank_adrian314159 · · Score: 1

    Machine learning these days is all about multi-variate calculus. Anything statistical is going to require the use of calculus to understand it properly. If you do any engineering other than CS, you'll need calculus. If you happen to go into any application programming domain that needs calculus (see sciences and/or engineering), you'll need calculus. If you do scheduling work, you'll at least need to understand convolution (which requires calculus to understand) to get error bars on estimates of serialized tasks. Christ, are college kids this lazy these days? Now GTF off my lawn.

    --
    That is all.
  328. Should be a poll by vawwyakr · · Score: 1

    I'm sort of curious about this too (and don't feel like reading through 700+ posts and aggregating the responses).

    For myself, 99% of the time its fairly basic math (add, subtract, multiply, divide, etc) but on occasion I have gotten fancy enough to use some trig and statistics. I was pretty happy recently when I came up with a pretty clever trig formula that replaced a large block of code with a single math formula. Never had to use calculus or anything of the sort. I think the theory is that math is logical and therefore gives someone practice as logic and problem solving though I'm not sure I buy it.

  329. Tons of Medium difficulty, very little Advanced. by Timmy+D+Programmer · · Score: 1

    Unless your programming is for some very specialized fields it is most likely that the need for very advanced mathematics are few are far enough between, that by the time you need it you will likely need to look it up and refresh your memory anyhow. So long as you are able to learn/re-learn it, you are nearly just as well off learning it as you need it.

    --


    (If at first you don't succeed, do it different next time!)
  330. Don't overthink by Anonymous Coward · · Score: 0

    As a software engineer, you probably won't ever need to use Calculus.

    However, if you cannot do Calculus, you should not be programming, as your code will be buggy and hard to maintain (assuming it works at all).

  331. Math in CS courses by Anonymous Coward · · Score: 0

    It is gratifying to see members of the programming community on the whole supporting the need for an understanding of math in their work. I worked in the Math Dept of a university a few years ago where the Head of the CS Dept removed all requirements for Math for CS students, and helped in promoting a culture of "Math is dead" among CS students. Enrolments in Math dropped dramatically and the Math Dept lost lots of its academic staff.

  332. 40-Year Olds Wishing They Knew More Math by dcollins · · Score: 1

    I worked in video games and yes: logic, discrete math, linear algebra are all musts.

    More importantly, as a current math teacher it's literally freaked me out in the past few weeks how many former high school classmates have gotten in touch with me and all said something very similar along the lines of, "I really wish I knew more math; it's holding me back at my job that I don't know more; I have to hire people to do this job for me". In the past few weeks, they have been: an Artist, a Photographer, a Business Web Developer, a History teacher, etc.

    --
    We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
  333. Calculus - No -- Linear Algebra and Stats - Yes by WillAffleckUW · · Score: 1

    You almost certainly won't use Calculus.

    Even math professionals rarely use it.

    You are much more likely to use linear algebra and statistics. Focus on those.

    --
    -- Tigger warning: This post may contain tiggers! --
  334. Re:If you want to be a well paid game programmer.. by WillAffleckUW · · Score: 1

    Shader gurus do function calls to do any calculus, so it's pretty much a waste of time after say Calculus I.

    Heck, almost anyone coding is mostly just calling something somebody else wrote. Reinventing the wheel (e.g. a new calculus function) is almost always a massive waste of time, when most of your cycles are spent on other things that are far more important.

    --
    -- Tigger warning: This post may contain tiggers! --
  335. Its like my old professor used to say by Angrywhiteshoes · · Score: 1

    Don't wanna do the math? The art department is over there, I won't miss you.

  336. As usual from you: Interesting! apk by Anonymous Coward · · Score: 0

    Which is why you're one of the folks around here I enjoy listening to/reading.

    Anyhow/anways:

    Personally, I've found set theory useful for information systems work (along with stats, because you use those types of calculations quite a lot on reports), but the set theory material helps you understand how it works.

    I took discrete math during CSC AAS work, & some of it is useful, such as paths & in other coursework, I got into "shortest path" which helped when I worked for a logistics company.

    I also LIKED logic during discrete, but then, I took "full" philosophy of logic after & got more out of it - it is a HUGE fundamental in how/why computers work!

    (Sort of an "aside" here now: Why the heck they call it "philosophy" of logic is beyond me though, it's more math-like than anything else).

    In the end/lastly:

    Usually though in IS/IT/MIS information systems work, databasing in other words, where I've made MOST of my monies in computing over time since it's the "steady-eddy" end of the field where there is almost ALWAYS work (since nobodies systems, data, OR way of doing things is exactly the same), you mostly use algebraic work or stats, tops (took Stat I/II back circa 1985-1986 during BS degree).

    APK

    P.S.=> Back on the subject-line above though: You continually impress me, & you've done a few cool things! That's a compliment, & I don't generally give those out, but you're an exception around here...

    ... apk

  337. coder vs CS or programmer. by Anonymous Coward · · Score: 0

    If you want to do web dev, or UI coding then you probably don't need math. But you also don't really need a degree, you just need a lot of practice and a good experience in a company that can train you like a good monkey to fit in regular dev cycles.

      If you want to do computing then maths is essential.

      I'm not saying if you don't use maths you're not doing real stuff or anything like that, I'm just stating the obvious : computers' first mission is to do calculations, using logic written by programmers. If that's not what you want to do then maths will probably be "useless" for you in that regard.

      OTOH and this is just my opinion : understanding of the exponential and of basic calculus is possibly the most useful skill to comprehend the world surrounding you in this day and age. (with formal logic)
    Therefore I don't think any maths class can be be wasted.

  338. Love of math needed by ZombieBraintrust · · Score: 1

    If your the type of person who hates math then your not going to be very happy programming. Solving equations and programming are very similar mental processes. The fact that you want to avoid advanced math is red flag that programming might not be a good fit. Of course I could be talking out of my ass. Does anyone know of someone who hates math and is happy as a programmer?

  339. The wise random knowledge of bash.org.. by Acapulco · · Score: 1

    This whole thread reads like this bash.org quote :

    -----------------
    #152037 +(3230)- [X]
    dm> I discovered that you'd never get an answer to a problem from Linux Gurus by asking. You have to troll in order for someone to help you with a Linux problem.
    dm> For example, I didn't know how to find files by contents and the man pages were way too confusing. What did I do? I knew from experience that if I just asked, I'd be told to read the man pages even though it was too hard for me.
    dm> Instead, I did what works. Trolling. By stating that Linux sucked because it was so hard to find a file compared to Windows, I got every self-described Linux Guru around the world coming to my aid. They gave me examples after examples of different ways to do it. All this in order to prove to everyone that Linux was better.
    * ion has quit IRC (Ping timeout)
    dm> brings a tear to my eye... :') so true..
    dm> So if you're starting out Linux, I advise you to use the same method as I did to get help. Start the sentence with "Linux is gay because it can't do XXX like Windows can". You will have PhDs running to tell you how to solve your problems.
    dm> this person must be a kindred spirit of mine
    -------------

    Really...most questions are answered with: "so you are lazy and don't/won't try to figure X out, so you come to Slashdot for us to do your job" and so forth. But look at this thread. TONS of useful answers whatnot. This is why I love /. :)

    --
    Slashdot. Unreadable news to annoy nerds. - wonkey_monkey
  340. Most likely redundant, but some definitions by MDillenbeck · · Score: 2

    If you are talking college, don't think of a 4 year Computer Science (CS) degree as anything to do with computers. Instead, think of it as a specialty field of mathematics that should have been called Computational Theory. True, you can learn about how to program your own compiler, make your own database engine, program your own operating system kernel, and other things related to computers - but there is going to be a lot of discrete math that requires calculus, and a lot of complexity theory and proofs to do also. So, yes, if you want a leg up get as much calculus out of the way and make sure you are taking a math course every semester to keep your skills sharp. (Trust me, I waited over 10 years before going back to college and even with "cramming" all the math in my brain before enrolling, I am far behind in my math skills.)

    Along with CS is Computer Engineering (CE), which is more of building hardware. Circuit design, pathways, and all that stuff one intro course made me not care to do - and a lot of optimization is done in that field. Of course, any engineering field is going to be math heavy, so no real change there either (and also master your calculus based physics).

    What you are probably looking for is a Software Engineering degree - which, as an engineering degree, will require mathematics also but focus more more on programming and software design.

    Note the trend? 4 year college means lots of mathematics no matter what - and if you aren't in an engineering school but in a college of letters and sciences, then be prepared to have a liberal arts education (read: basic biological studies, basic natural science studies, an ethnic study, literature courses, humanities courses, and social science courses that will be at least 1/6 of your total credit load... as a coworker of mine said "a lot of BS work that I will never use". I disagree with him, my most useful courses have been english composition, contemporary art courses (which gave me a new frame of reference to draw on), and my environmental studies courses. They introduce new ways of thinking... and CS is all about thinking of new and efficient ways to solve complex problems.

    The only way to avoid heavy mathematics (namely, at the calculus level and above) is to opt for a vocational/technical college. You know, 2 year degrees with titles like "Web Programmer" or "Database Administrator". Also, there are multiple fields to choose within the computer industry.

    Of course, I don't want to discourage the 4 year route. It is hard, but worth it... and if you find you like academia, there are graduate programs that will open up a whole new way of learning. Heck, UW-Madison has imitated Cornell and implemented a Games, Society, and Learning program... its serious business, but their lab consists of a PS3, X-box, 5 networked computers, a library of video games, and tons of obscure board games - and something like that is most likely where I will be once I complete my undergrad (if tuition doesn't skyrocket... so if you are going 4 years, my advice is do 2 year transfer at a 2 year college that is less expensive and has significantly smaller class sized... Chem I and II or Intro Calc Physics I and II is much better in a class of 40 than 300.)

    1. Re:Most likely redundant, but some definitions by hazydave · · Score: 1

      I double majored in EE and Mathematics.. I had something like six really math heavy courses, starting with Calc2, and that's not counting some of the applied courses in EE. I didn't use much of that for 15 years, but I did eventually. It's an important background, because you just never know.

      If you're only interested in learning a specific kind of programming, that's for a technical school, not a University. But the thing is, what was hot in the early 80s when I was in school isn't so hot anymore. Teaching a programming language, that's a technical school thing at best -- it should really be a couple of days, tops, for an experienced software engineer (I had to learn a few of them on my last SW project).

      A University degree should give you the mental tools to adapt to any new job requirement. Math is an important part of that. The computer languages I learned in college (Pascal, LISP, SNOBOL4, APL, InterCal :-), etc) .. not terribly in demand today. The math... calculus and other numerical methods are a bit easier to do, thanks to computer tools, but they're just as applicable today.

      --
      -Dave Haynie
  341. Not berating you, but... by Anonymous Coward · · Score: 0

    2 semesters or 4 semesters of mathematics does not mathematician make. My advice is to cut the hyperbole and the resistance to learning a bit of math. you'll thank yourself later that you were open to it. you won't understand how it will benefit you until you do it.

  342. Calculus and linear algebra by tolkienfan · · Score: 1

    I've had the pleasure of fitting models to some interesting data. This required non-linear fitting... differentiation and linear algebra.
    Fun stuff!

  343. If you undertake a career as an engineer the more math you know the more problems you can solve.

    The more problems you can solve the higher your pay will be.

    It's that simple.

  344. There's a big difference ... by mixmasta · · Score: 1

    between CS, MIS, IT, and (whatever degree is appropriate for a web or enterprise code monkey). Math above algebra is a nice-to have rather than a necessity for everything but the first.

    --
    #6495ED - cornflower blue
  345. It's at least as much about understanding by qazxswedc · · Score: 1

    When I'm working with someone who's designed a horrible database system and they can't grasp the concept of exponential increases in difficulty (and therefore search time), it's a problem. I myself have implemented PID controller loops in systems I've developed. I may not have needed 3 years worth of calculus to do it, but I at least had to understand what I was doing and the significance of errors rather than blindly guessing why I didn't have it "right". Most common example of a PID controller people have seen is cruise control in a car. It's not as simple as "if speed preset, press gas harder, else ease off". Now, that said...where I went, you didn't need any truly hardcore math to get a CS degree...a basic calc class and discrete were about it.

  346. Every day. by Anonymous Coward · · Score: 0

    As an economist professionally, but a former programmer, I use math every day. Typically a combination of calculus, probability, statistics, and linear algebra.

    Definitely more math now than in my programming days. But still a fair amount of programming: C, Perl, etc. The skills I gained as a programmer have been very transferable to my current career, but my math training helped keep my options open. Stay sharp out there.

  347. applied mathematics history ... by Anonymous Coward · · Score: 0

    Please seek information regarding applied fields and waves mathematical functions. Essentially unsolvable for any "real world" problems prior to the advent of the general purpose data processing system aka personal computer - then someone took a translation of a 1917 or so Russian paper on reflection of waves and played around with it on the new "PC" which nobody had a clue what to do with it ... F117 ring any bells? The special edition of Physica D on non-linear systems from the late 1980's is also instructional on WHY math matters.

  348. Future of programming by cowdung · · Score: 1

    Its hard to say what the future of programming is, but more and more I see voice recognition, computer vision, self driving cars, data mining, and other applications of AI.

    While you may not need too much math for basic business oriented software fields that apply AI, that estimate the future, that analyze data may often need quite a bit of math.

    Math is basic knowledge that a Software Developer is expected to have. Some may get by without it, lots of us may not use it day to day. But certainly to understand the underlying principles behind algorithms math is very useful. One example is the law of limits for Big-O complexity. Understanding how continuos functions work and how to reason about things to the limit helps you write more scalable software.

  349. None and I am in finance by Anonymous Coward · · Score: 0

    Most math is done on an excel spreadsheet- not on a chalk board a la beautiful mind stuff. Who the fuck does that in real life outside academia?

    If higher education can actually drop the shit that is not needed- (think old army vet stripping off pack gear off a new recruit) it would benefit the entire economy.
    -drop poetry
    -Shakespeare
    -literature outside of non-fiction
    -excess non applicable math. if you are not an engineer but rather a office drone, like everyone else don't waste time with higher level math.
    -science or chem, physics and other "padding" type classes that are non-applicable to 99% of jobs.

    Focus on shit that matters, like public speaking, sales/negotiation, rhetoric, grammar, effective personal PR, maybe a basics on accounting to help manage personal finances and a skill or craft (like Switzerland does), and critical thinking. No finance gets done if you cannot close.

    Take a 4 yr degree drop it to 2 tops and focus on what counts, specialization. Generalists- even though it is essentially more better (ha ha get it, dummies?) than specializing, employers today do not feel that way.

    This way less student debt, faster time to possible employment and overall lower wages (which is good, takes real prices down with) which would open up new jobs and new companies because of less overhead costs.

  350. You will not use it, but you still need it.... by Cute+and+Cuddly · · Score: 0

    I have been working in the IT industry for over twenty years and I have never actually used calculus nor anything closely related, however when you are studying mathematics, you are doing much more than that. Your brain is being trained to think in a specific way, you are becoming analytical and realize the relationships between abstract concepts. Such way of thinking cannot be achieved by accident, your brain needs to be trained and needs to exercise in that way if you want to become a creative person that will be able to handle the requirements of working in IT.

  351. Math is Essential! by Anonymous Coward · · Score: 0

    I've been a professional software developer for 17 years, including a stint with the space program. I've only occasionally used higher mathematics, so although I excelled at it I am pretty rusty now. My advice is to take as many math courses as you can stand.

    Someone once said that education is what is left after you've forgotten what you learned. It's very true. Though I've rarely used anything above algebra professionally, studying mathematics exercises your mind and helps you see things you would have otherwise missed. Furthermore, higher math has less to do with arithmetic and bean-counting, and more to do with logic, proof, patterns, and structure -- the very stuff of computer programming. I've worked with far too many software developers who did not have an adequate math background, and the difference is very noticeable. You should see how some folks stumble about trying to assemble a compound Boolean expression, put together a join of multiple database tables, or understand the workings of a multi-threaded program or a distributed system.

    Do yourself a favor and dive into math. It's your friend. By the way, I would say many of the same things about music.

  352. Daily..Hourly? by Anonymous Coward · · Score: 0

    Might just be my chosen field but as an Electrical Engineer I use math constantly. even if it's just SQRT3 for figuring phase to phase vs phase to nuetral... things like sqrt 3 cos theta and sqrt 3 sin theta are constantly needed for watts and vars... higher math occasionally, like once a week example RMS calcs where .707 just won't cut it and integrals are needed. Having the actual knowledge to understand what the formulas mean makes all the difference in the world. At times, something doesn't fit and the numbers are wacky say when you are trying to figure out a fault and it turns out the formulas you use are based on a balanced circuit. If you understand the math you just plug in some angles and it suddenly makes sense... and confuses the heck out of the three technicians that called you out because "It just don't work" !

  353. Used LOTS of math in programming by EnergyScholar · · Score: 1

    Mostly because I've been writing software to dynamically generate problem/answer sets for First Year Calculus Based Physics. In my previous 15 years of writing software professionally, before starting that project, I've used juicy math just a few times. The first poster got it right, computer programming is mostly about counting beans and keeping records.

  354. If you want your work to be interesting -- by reiisi · · Score: 1

    I'd even go a bit further. (Completely ignoring some obvious questions begging in the topic about work in programming.)

    Every job worth doing has interesting things about it, if you know how and where to look.

    The math teaches you how and where to look.

    And you can do a much better job at any job you are interested in.

    Admittedly, there is a dangerous down side to that. If you get too interested in the stuff that isn't on the project goals, you may end up getting fired for playing instead of doing your job.

    But, if you're slinging burgers and you have the math, you can keep a running estimate in your head of which supplies are being used at what rates on what days of the week. That's a key to anticipating customer demand. And the only way you're going to make a living slinging burgers is to be a manager.

    Maybe you need to apply strategy when you talk with management about the things you notice, because managers can get paranoid when their employees seem to know more than they do, but the math opens options. It's up to you how you use those options.

    --
    Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
  355. What people don't know they know ... by reiisi · · Score: 1

    You may not have been aware of using calculus, but you were using calculus.

    Applied calculus is not always obviously calculus. You may not need to recognize it to use it, and there is a certain degree of luck, or instinct, in getting the calculus right when you don't know that's what you are doing.

    But you were using calculus. And a bunch of other higher math, too.

    --
    Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
  356. doing statistics without using calculus? by reiisi · · Score: 1

    The foundation of statistics is calculus.

    I encourage you to dicsover the calculus which you have been using without even realizing it.

    It will make your job more interesting, and will give you more options in improving your work.

    --
    Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
  357. Yeah. well, I AM a EE by Anonymous Coward · · Score: 0

    So, I've been banging electrons pretty seriously since the late 70's. And, yeah, ham radio involves calc, even though the equations are dumbed down for your random Ham.
    Got in when undergraduate work required FORTRAN and Pascal, had an original PC, and wrote lots and lots of code doing numerical analysis on DSP work, Z-transforms and all.
    And, after going to work in the industry, never stopped. DSP algorithms, analog circuit design, mixed analog and digital circuit design, solving Maxwell's field equations for oddball topologies. And coding, coding, coding. It used to be FORTRAN: Now it's C, C++, tcl, Vee, Labview, and homebrew operating systems for DSP devices.
    And my coworkers with CS degrees know and use their calculus: trend lines, Markov matrices, and so on. If you haven't guessed, Linear Programming heavily involves calculus in the solutions of huge matrices, and you had better know what the error terms are, where they arise, and what to do about them when they fail.
    I meet people who tell me that the algebra they learned in high school was useless. OK, so these people aren't in technical fields. And that's the point.

  358. You might still use it a bit into college by drfreak · · Score: 1

    and for a few years afterwards. I would strongly discourage it. Oh, Math! my bad.

  359. discrete math vs. calculus? by reiisi · · Score: 1

    Question for you:

    When did you take the discrete math -- before or after calculus?

    Unless you are an exception, you took it after.

    Go back and look at the tools for reasoning that you use to understand discrete math. Where did you learn most of those tools?

    Well, I know that in jr. high school, there were kids who instinctively understood set theory. I was one of them. But even for me, there were dark corners that I could not pierce until I had calculus, and it was getting light in those dark corners that made it possible for me to understand programs beyond the most rudimentary level of sequences, conditionals, looping.

    Even writing a function, without the tools I learned in calculus, I would have a much harder time defining the function, deciding what to include and what to put elsewhere, determining what should be parameters, etc.

    I don't consciously use derivatives and integrals, but I use the same tools that I learned to use when learning those. And calculus really is not just derivatives and integrals.

    --
    Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
  360. I think your are missing the point. by reiisi · · Score: 1

    All three of his personalities at work use math.

    --
    Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
  361. How do you define "use"? by Anonymous Coward · · Score: 0

    I'll spare you the usual snarky response I typically give to this question wherein I enumerate the various math I use on a daily basis because what I do (robotics) is pretty specialized and using my education somehow makes me an elitist. Instead, I'll ask you a question: did I "use" calculus today when I showed my colleague (a) where the threading bug was in his code and (b) how to fix it?

    I see two answers: "no", in the sense that I didn't solve an integral equation, didn't make an epsilon / delta arguments, appeal to continuity, or invoke Fubini's theorem. Of course that would be absurd. On the other hand, the answer I would give is an emphatic "yes" in the sense that calculus, together with trig and all the other math classes that I've taken over the years gave me the analytical skills to take the symptoms and put together a list of possible hypotheses, the proof and argumentation skills to immediately refute several of those hypotheses and know what additional facts were required to either confirm or refute the remaining hypotheses, and so on. More importantly, however, is the fact that my math background enabled me to communicate in unambiguous yet concise terms what I felt the next steps should be.

  362. Obligatory Tragically Hip... by Anonymous Coward · · Score: 0

    Sometimes, the faster it gets, the less you need to know,
    but you've got to remember: the smarter it gets, the further it's gonna go.

    When you blow at high dough.

  363. Math and Programming by asmcmnemonic · · Score: 1

    In my opinion, programming is putting mathematical concepts/theories/hypothesis into practical use based on a particular problem, and it depends on which programming language you're using and what mathematical concept you're using to solve a particular problem. Consider the usage assembly language as an LLL -- Low-Level Language; you'd use boolean algebra for not only coding, but also to interface a circuit under some circumstances, or just to understand the computer organization and architecture like those of VNA --Von Neumann Architecture. As for other HLLs -High-Level Languages like C/C++, Java, JS, C#, or Python, the picture becomes clear that you don't need to deal with the machine/low level specifics as such in the assembly language to manipulate binary digits. Instead, you use basic logic and algebra to reach your final goal from the source code. What I'm trying to state here is that the degree of the programming language determines the level of math and the type of math that you need to use to accomplish your desired task. Unfortunately, highschools have specified plans by the department of education, so it's no wonder that they're forced to stick with that plan. I mean, it is important to understand, for example, boolean algebra to understand the functionality of logical circuits, but it would seem absurd/weird to put that into the education system in schools. But culculus and linear algebra are being taught since childhood, and they're still being taught in colleges/universties. So, the question that pops into my mind right now; "How do we improve the mathematics classes in order to provide coverage for major fields that puts mathematics into practice?" To me, I don't know, but if I was a highschool student, I would either study whatever is given to me and keep up with the educational changes, or just get more information by reading external materials other than those presented in the highschool, of course if I'm interested in learning rather than waiting for the class bell to ring.

  364. Vectors, at bare minimum by rebelwarlock · · Score: 1

    I don't think I can even make a game without using vectors. I'm sure it's been done, but not by me.

    Look, people are always going to complain that math is hard and shouldn't be necessary. Suck it up and learn the fucking math. It's not poison; it won't kill you. Even if you don't ever use it, since when has learning math been a bad thing?

  365. Counting beans is calculus. by reiisi · · Score: 1

    Sum of a series.

    Nobody is going to pay you to literally count beans in jars all day long.

    Stuff beyond that requires the ability to work with sums of series that some people understand intuitively, and the rest of us learn in calculus.

    (And, actually, those of us who understood it intuitively generally discover later how much we missed because we thought it was too easy.)

    Yes, we use math even if we don't understand that we do. That includes higher math, and discrete math is actually part of the higher math.

    You generally take calculus first because most people don't have the tools to work with discrete math until they have taken calculus. Many of those tools are actually part of calculus, even though they can be understood and used intuitively by some people.

    --
    Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
  366. It largely depends on what sub-field of computer science you go into. If you do any DSP work (or more specifically, image processing/computer vision) there's going to be a ton of math. Some of those papers will make your eyes bleed. More to the point, if you're implementing some algorithm, even if you're using a library to perform say, an FFT in the actual code, you still have to be able to grok the paper to know what to do, and that will require some strong math skills.

  367. Math is a very broad subject by PenguinJeff · · Score: 1

    I think every one uses it at some level. There are many abstract ideas in math that apply everywhere. Like the concept of transativity. Addition is certainly used by everyone. You add in combinding things. Learning computer science has brought me to a new understanding of what math really is. Math is more than number and symbols. Some of us see it better in numbers and symbols and computers certainly can only really understand things as binary represented numbers.

  368. Get a life by Anonymous Coward · · Score: 0

    If you're determined to live life as a ward of the state and/or a homeless guitar player, english major, or forager then no, you don't have to use no math.

  369. Re:Diff equations are key to modeling the real wor by Anonymous Coward · · Score: 0

    Beg to differ. Calculus, like all math, is about the efficient categorization and precise definition of the smallest possible set of terms needed to describe a particular set of concepts. Or, in other words, "organizing data".

  370. Shorten battery life by monitoring by Narrowband · · Score: 1

    One complication -- if you start applying higher mathematics to calculate the battery life, don't you end up decreasing the battery life because you're invoking more processor intensive (and therefore power-intensive) calculations to monitor it?

  371. They're called money soakers by Anonymous Coward · · Score: 0

    Most universities require higher math (and other non-related classes) for computer science in order to soak up extra tuition fees and boost their profit margin (i.e. turn a two year curriculum into a four year one). The only class that I was required to take that I actually found useful was Technical Report Writing. I never used Chemistry 102, 102, 103. I never used Botany 101. I never used Calculus 101, 102, 103. Etc. The highest math *I* have used is Algebra with a smattering of basic Trig. As a disclaimer I must admit that I am NOT in an engineering or scientific business.

    It certainly doesn't hurt to know more, especially if you aspire to go into something scientific. But I have found reference books to be most helpful if I need to know something more specific

  372. What do you mean by Math? by Anonymous Coward · · Score: 0

    I use arithmetic and estimating everyday. I use mean and standard deviation on average every other day and trigonometry weekly. I use calculus monthly and advanced algebra maybe once or twice a year. Oh and my job title? IT Specialist.

  373. Yes by Anonymous Coward · · Score: 0

    I sold and fixed used computers in high school and thought that it was a form of engineering, and that there was no fundamental difference between computer assembly and design of the components themselves (I was 15). I went to a good college sort of by default and learned the difference observing actual engineering there.

    Math is like that, you don't think you need it until you get to a point where you try to generalize what you and others are up to, and suddenly math is fundamental to what could provide an advance to what you're trying to do. This is coming from a guy with a robotics PhD, so maybe I'm biased.

    Calculus in particular (up to the usual Calc II) is worthless, everything you need to know is the first part where they estimate the area under a curve using a bunch of columns. Calc III is good because it gets you used to vectors.

    , calc III is good in that you get used to vectors

  374. Same Here by Anonymous Coward · · Score: 0

    Statistics and linear/polynomial fits are most useful for GIS and remote sensing.

    I didn't study mathematics formally.
    To be honest, I buy and keep math books on my shelf so I can look concepts up when I need them.

    I am surrounded by PHDs from various disciplines. Most of them cant tell you how a priniciple components transform works,
    let alone *what type* they are using. They have heard of it though. Most of them cant function without Matlab or Ms Excel
    and considering the limited functionality of those programs that they tend to us, it leads one to wonder why they would keep
    spending the money on those licenses as opposed to using the same functions in some free software.

    I sometimes get flack when I expose flaws in thier application of statistics
    and mathematics. This always seems odd to me since getting the work done correctly should be more
    important than someones academic ego. These are people who *studied* mathematics (!!?).

    It's better to be able to find and apply information on mathematical concepts than just passing some
    test then promptly forget the material.

    Universities are the academic equivalent of the music industry. They provide a product that can be
    now be read from e-books and researched via the web. What we need is the educational equivalent of the
    MP3 to take the power of acreditation away from these corporations and put it back into the hands of people
    who can do the actual science.

  375. Calculus and linear algebra are very usefu by RevEngr · · Score: 1
    Despite working in the relatively mundane programming environments of enterprise and system software and consumer internet over 15 or so years, I've been amazed at how often calculus and linear algebra have simplified solutions and/or revealed solutions I wouldn't otherwise have found. This despite the fact that early in my career, after graduating with a computer engineering degree with a math-heavy curriculum, I was much more skeptical like you.

    Most recently, I've found calc and lin algebra valuable in applying machine learning techniques (neural nets and clustering analysis with big data) and earlier in my career in understanding adaptive audio/video networking protocols. I don't think I've ever 'implemented' calculus in software directly, but it was necessary in formulating the solutions that were eventually coded up.

    Obviously, some domains (game programming, genetics work, etc) are naturally more math intensive, and I've been doing spare-time work related to space and rocketry, and found I've had to go back and study my old math materials (and even learn some new stuff) to even begin to make progress in the field.

    A lot of programmers I know who are content to just build web sites, intranets, etc. have very little use for anything over algebra, honestly. But that's a different kind of job than I think most people graduating with cs or ce degrees are interested in.

  376. What would aliens think? Seriously... by Anonymous Coward · · Score: 0

    Only in the U.S. does one find questioning the usefulness of mathematics. Undergraduate mathematics does not suffice for much of the cutting-edge computing science happening today. Just finished a grad-level course on computer vision which is all mathematics (projective geometry) and my iphone project was an augmented reality app. Machine learning goes deep into math and statistics in grad school. I was even surprised how much honors level undergrad and grad school mathematics I am finding in grad school. Riemann integral (undergrad) does not always cut it so functional analysis is everywhere. Hilbert spaces, topology and all kinds of other higher mathematics. Just today I was writing CT image segmentation algorithms and was using FFT which is fast fourier transforms which is at least a couple years into undergrad school for level of education. So just stop it already. Just drawing a damn circle on your screen requires grade 12!

    Incredible how ignorant our society is about mathematics. And then to hear it from people who are clearly passionate about computers on slashdot? Seriously? Do you think scientists at google or apple are just taking the sin(45) all day long?

    Wake up to the new world. While you continue to try to find evidence that all you need is trig for your programming career, the rest of world is getting an education. And coming to get it here in the U.S! Did you know that in 2010, 6% of the U.S. population was of asian descent and that 45% of science and engineering undergrad degrees went to those of asian descent! 45%! That's just asian descent. The race issue is not an important one. What is important is that the mathematical education system for a developed country is so poor in the U.S. that we are even losing the notion that mathematics has importance at all!

    On the other hand, if all you want to do is query a database and display the results, then maybe only trig will do. But if you want to be the best programmer you can be then learn some math.

    One last thing. Math is awesome! Some of the beautiful and wonderful ideas can be found in math. Not in high school that is for sure but if you give it a chance, you'll see. It was challenging, but learning all that cool stuff and programming it was some of the most fun I've had. I'm still enjoying it.

    Let's just stop embarrassing our country with this 'math is useless' talk. If aliens ever landed here on earth, would you seriously try to convince them that math is not useful for programming our mathematical machines!?!

    I didn't think so.

  377. Mathematician by Anonymous Coward · · Score: 0

    Well, I use it a fair bit, but I'm a mathematician so I guess it goes with the territory. I work in agricultural research developing a farming systems simulator. I suppose you could call me a mathematical programmer. I take formulae and equations and turn them into code. I don't have a formal degree in IT or programming though, my degree is in Science (mathematics, funnily enough).

    1. Re:Mathematician by Anonymous Coward · · Score: 0

      (Same AC as above.. not sure how to edit)

      Having read some more comments, I should point out that even as a mathematician I rarely actually *do* maths as you see it in a high school course. I don't need to, there are plenty of packages and web sites that I use to do the heavy lifting for me. I use the results of those packages to transform data into useful information. The thing is you need to *understand* how those packages work so you choose the right one. Ever heard of the saying "garbage in, garbage out"? If you don't understand the maths behind the packages you will have trouble knowing what you should put in and probably won't understand how to use what comes out.

      Mathematics is a language. If you want to work with people who do understand it (and if you want to be a games programmer you will) you need to be able to talk to them in mathematical terms. No, alot of the stuff you will learn you will never use directly, but it's more about teaching you the procedures and processes; the grammar, if you will, of the language of mathematics. And that, you will use constantly.

      Oh, and mathematical programmers can earn a **it ton of money in sectors like banking and insurance.

  378. Can't answer by Anonymous Coward · · Score: 0

    can't count

  379. Outside gaming by Anonymous Coward · · Score: 0

    The hot programming jobs over the next decade will be in data analysis, and that is really just cleverly applied statistics, abstract geometry, calculus, and matrix algebra. Game development is fun, but it's a lousy living.

  380. if math is good for problem solving by Anonymous Coward · · Score: 0

    why has almost every math guy i have ever interacted with personally been useless for real world problems ?
    basically, there attitude seems to be, it is not my job to understand your problem - it is youor job to explain it to me in math, so I can fix the math...
    I mean, basically worhteless and a waste of time
    but maybe I'm not talking to the right guys, or I'm just stupid.

    Beyond that, the real question here is what % , x, of hte US population needs math beyond grade school 4functions ?
    I would say x 1,000) we have , as adults, to decide what it is that is worht teaching.

    I would say, looking at all the misery in human life, that psychology is a lot more improtant then math

  381. Numerical Linear Algebra by Anonymous Coward · · Score: 0

    So I though I'd chime in here.

    Computers only understand numbers. They do not understand equations, or any other symbolic representation other than numbers in binary format. This is where

    numerical linear algrebra comes in. Any calculus etc done on a computer is calculated by a numerical estimation, usually this system involves a system or

    multiple systems of matrices. What are matrices? They are grids of numbers.

    This is what I have gathered from the first two weeks of my current Algebra course. It's very interesting stuff. You can sit here and wank over who has learnt

    what but it seems that it does indeed come down to linear algrebra and knowing how to convert integrals, ODE's, PDE's etc into systems of matrices so that a

    computer can understand the input and compute the answer. Interestingly enough this week we used Nystrom's method for integral equations. This method sets

    an integral equation into a linear system and using Simpsons' or the trapezoidal rule to give an approximation. The larger the system the better the approximation.

    Further more, why is mathematics critical to computer science? Studying mathematics builds a very strong problem solving foundation, a foundation which can be

    applied to many different fields including programming. If you can take a course on group theory and understand alot of what is going on then you are likely to be

    able to pickup a book on C++ and learn the language. Of course being a good programmer is not just about knowing a programming language. There is algorithm

    efficiency to consider and many other things that I wont pretend to know about. However this can be learnt from a book. Of course you could say this about

    mathematics as well but in reality it's alot harder to adequately give yourself a solid foundation in mathematics than it is in computer science. Afterall Computer

    science is applied mathematics. Ideally you would major in mathematics and computer science.

  382. Scientific computing by Convector · · Score: 1

    As someone who does computational geodynamics (mantle convection, tectonics, tidal dissipation), I use math(s) all the time. I'm doing trig, vector calculus, complex (real and imaginary) analysis, PDEs, and linear algebra all night and day. Sometimes I even bust out the spherical harmonics, why not? I don't use things like combinatorics, number theory, or topology, though the last is relevant for setting up meshes for finite element models. I don't use a lot of statistics, but my colleagues who perform more data analysis are all up in there.

    The PDEs and the like are discretized for numerical integration, but I need to know the underlying continuous mathematics in order to do that. It's true that routines already exist for many standard problems, but if I want to add more physics or solve new problems, then I have to be able to do that myself. I also need to be able to solve simpler problems analytically, so that I can verify that the numerical models are actually giving the right answer.

    I should note that my educational background is in the physical, rather than computational sciences (specifically geology, physics, and astronomy). This involved a lot of mathematics classes. A major in physics comes with a free minor in mathematics. My computer science background is relatively week. I've only ever taken a couple programming classes. I picked up most of my computing skills in grad school or on the job.

  383. BSCS 1984, used Discrete Structures in 1985 by JRHodel · · Score: 2

    I went to college (for the 3rd time) at the age of 30. I had a hard time with Calc etc. and hated the first two semesters of Comp Sci, but got over that. I literally had to ask the Prof in 101 where the switch was on the machine.

    My first job was with a government tax department. One of their biggest problems was that small businesses kept changing their names trying to escape from last quarters' tax bill. I got assigned to write a routine to track business names - really to invent a way to track businesses changing their names. This led to designing an artificial key for a business, and assembling a list of all their names and date the changes.

    Then after some work I found that some of the businesses randomly changing their names would reuse a name eventually. Not smart if you're fleeing debt associated with that name, but what can I say? That created a closed loop that would circulate endlessly, or until a main frame operator got suspicious and stopped the job; or until I wrote code to escape a closed data loop.

    Making a really long story a little shorter, you will need math, and the skills learned working on math, no matter what kind of work you do, unless you are just a code monkey coding things with all the complexity designed by a systems analyst with 2 degrees in math.

    If that's all you want, to be a code monkey on a system you don't understand large parts of, then you don't need a degree in Computer Science. If you want to be any kind of scientist, or systems designer, like those who build gaming engines or rastor graphics programs, or tracking genetic variability in organisms being studied in labs in Research Triangle Park, NC; or at C-M University, in Pittsburgh; or Cal Tech where they just landed a curious robot on F'Ing MARS, then don't get a degree, don't study math, stay ignorant.

    That kind of work is actually going on everywhere now, not just these examples I pulled from my a**, I never left my home state to have a good career doing important work. I didn't use Calc every day, but I knew that I could if I needed to.

    "You can cure ignorance, but there is no cure for stupid."

    --
    Think of the Irony!
  384. Know how to do things others don't. by shess · · Score: 1

    The question is not whether you'll spend all of your time applying math. The question is whether there will come a time where strong math knowledge will help you solve problems which others cannot solve. There are any number of specialties which this applies to. Do you really need parsing abilities? Database abilities? Filesystem abilities? Network abilities? Image-processing? No, of course not - except that if you have them, you will find them helpful at unexpected times.

    Unfortunately, it is usually not the case that someone will be weak in a subject AND they will still be able to identify that their skills are not up to the problem. Rather, what usually happens is they just keep hacking away, oblivious to what they're missing, spewing bugs in all directions.

  385. As mentioned previously: domain specific by dsgrntlxmply · · Score: 1

    I have lived on both sides of the fence, having written code for 35 years having failed second quarter calculus and thus the entire university program. After 35 years, I took a break from work, went back to school, passed 4 semesters of calculus and many other courses, and came out with a BS in Physics at an amusingly advanced age.

    In the course of my first-segment career, there was were a couple of projects where I had to rely upon someone with greater math background and an expensive MATLAB DSP application package.

    The first project was a low-jitter timing subsystem, where a device needed to synchronize to timing derived from a signal from a master device. I coded it, then used a combination of fragmentary digital filter experience that I'd picked up on a couple of silly personal projects over the years, and partially informed intuition, to run the filter algorithm at two different rates: a high (but CPU-expensive) rate for acquisition (where the abstract design failed), and a lower rate, exactly according to the abstract design, for tracking.

    The background that I received from 4 semesters of calculus (that included a skeletal introduction to differential equations) might have helped here, but it would not have been sufficient.

    The second project was a digital payload processor / modulator. I initiated and functionally specified much of the project (which mostly was an implementation of certain published standards), but it required contributions from 3 PhD researchers with evolving expertise in CIC filter design, to make the implementation feasible in a modern FPGA with integrated multiplier/accumulator blocks.

    My contribution consisted mostly of generic software, but there was one area where I had to quickly try to teach myself some mathematics, and it was mathematics that would not be taught in undergrad physics, and most likely is not universally taught in other than cursory treatment, in undergrad comp. sci. programs: finite field arithmetic (error control coding). The objective here was to examine whether a legacy implementation whose design rationale had not been adequately documented, was truly equivalent to a published standard (it was, but I discovered a subtle gotcha), and to validate a proposed implementation against the standard.

    What arguably has been most valuable after emerging from even a late and rudimentary education in a scientific discipline, back into software work, is having been exposed and held to a scientific standard of rigor. This stands in devising a sufficient and feasible scheme of measurement, in collecting sufficient data, in formulating claims that are supported by data rather than mere belief, and in making clear when the line between data and belief must be drawn and crossed. At times it turns me into an organizationally inconvenient holy terror. It also allows me to deeply examine and locate defects that are potential product and reputation killers, to endure hypothesis-destroying experiments, and to emerge with a clear understanding of the nature of the defect, and how to cure it.

    I do wish that I'd had time and energy for more math: a practical course in statistics and design of experiments, preferably one designed to teach students who are well along in some field of study, rather than as an early weed-out for weak students in oversubscribed majors. The introductory statistics course at my university, which mercifully is not required in the physics major, is of the latter type and is generally reviled, even by the capable.

  386. Re:If you want to be a well paid game programmer.. by aarku · · Score: 1

    I just thought you should know you're wrong.

  387. Every day that I'm working on code by muridae · · Score: 1

    but not the way you think. You can get away with game development now without knowing how physics works. Get a game engine like you mentioned and just treat every object as a Newtonian solid body and let it's physics system handle the math. Or you could go for calculus overkill and let wind affect every bullet in a shooter game by treating them as particles and integrating up from delta-delta v (change in wind acceleration). More likely, you'll want to know the calculus, some of the simplification like a parabolic arc, and know some of the mathematical estimates of the multivariable equations; and you will mix and match to meet the requirements you have. If you don't know the math for any part of that, then you are missing that tool in your mind and can't use it.

    What math for what parts of a game? Calculus based physics for physics engines, obviously. You could do algebra based and discrete time steps, but try it with anything past a 2 body problem and it's a simulation, not a game. Someone else mentioned and I'll second quaternions for graphics; learn to love them because lots of the hardware is accelerated for them and Euler angles will screw you when you least expect it. Graph theory for space partitioning, which shows up in both graphics engines and AI. Statistics shows up anywhere, from simulations to helping you figure out where and why programs crash (simple example, a function that handles random numbers in a game crashes 1 out of 36 calls when called by some part feeding it the results of 2 six sided dice. Write your test case for 1 and 12.)

    So if you are comfortable using tools from other people, and writing code that glues pieces together, you don't need a ton of math. You may not spot problems as quickly, and your code may not be optimized as much, but it will work and sell. If you want to write the engines that other people use, or want to add things in to other engines, then you need a lot of math.

  388. Re:Money by muridae · · Score: 1

    You need to use vector math to figure out Big O complexity? Maybe for a specific application like some vector math based functions, and proving the complexity of a specific function operating over N-dimensional space, but the principle doesn't require anything past knowing functions and exponents.

  389. From an engineering perspective by jhiv · · Score: 1

    OK, I'm not your typical engineer - I have a doctorate in Chemical Engineering and I work at a National Laboratory.

    There is a common meme that engineers just plug numbers into formulas. Let's suppose that is true - who develops the formulas? That's the job for those (supposedly) over educated engineering nerds like me.

    I use calculus about twice a week, and about four times a year, I have a really interesting problem using advanced differential equations or advanced statistics.

    i just want to point out that there are occupations for which mathematical skill is essential..

  390. You had better learn something! by bobs666 · · Score: 1

    Learn English and write quests. That's story telling. Are you good at writing a good story?

    Take Art classes and make skins and Landscape. Can you paint with oils?

    If you want to do graphics You had better know how to wield a rotation matrix! That's Linear Algebraical. You did not take that in high school. At not in the US. Perhaps some other countries teach that in high school bu not here.

    At my collage a renown grad student said Calculus taught programers symbolic manipulations, I think any good programmer should cope with that. Math will not hurt you if you have any smarts at all. But perhaps you should learn to paint.

  391. It's in the application, not the formula by LostMyBeaver · · Score: 1

    I for example us a great deal of differential equations when I'm developing audio and video filters (FIRs, IIRs etc...). I don't even have a math education past trig, the rest is from books and websites.

    There are cases where I'd chose to perform real-time filter calculation for adaptive filters (things like calculating the points of an FIR without knowing my desired frequency response before hand), it's not terribly common outside of for example echo cancellation where I'd want to design the shortest possible filter with the desired effect for the current environment instead of just using a long filter with good response in all frequency ranges.

    I generally do most of my math work in a tool like Matlab (sometimes Mathematica if it's more mathy and less computery) and then when I have the coefficients I desire for a formula, then I'll code it in C or C++... oddly sometimes in DSP assembler.

    That said, another example of where I'm using calculus, though not terribly advanced calculus is that my 8 1/2 year daughter, 10 year old son and I are writing a platform scroller for their phones. The girl is doing pretty well with coding the object structure, my son is doing much of the artwork. I'm working mostly on things like motion. In the case of motion, I make use of rate of change calculations and apply them using simple physics. For example, if the user holds the right arrow for X amount of time, I increase the positive moment energy. If they press the left arrow it applies negative momentum energy, if they simply let go of the arrows, then at a given rate, the horizontal momentum energy reduces towards zero. For jumping, when the user presses space, depending on the duration, upward energy is applied until a peak is reached which will fight gravity. Gravity however works as expected 32feet *...

    I also have used math a bit in producing a TDR for cable length detection.

    Math is VERY useful in programming so long as you choose to work on projects where math is interesting :) Even when I was working for a web browser company, I'd find myself writing a JPEG decoder which isn't really hard math, but it's at least somewhat advanced.

  392. Every fucking day by Anonymous Coward · · Score: 0

    I use meth every fucking day I dont think I could get though the day without it......oh wait you said math

  393. Thanks! by Anonymous Coward · · Score: 0

    Thanks for all the great responses! I'll look into taking "discrete math for programmers" (thanks @Immerman), or just discrete math. And I'll definitely keep taking math classes.

  394. Using calculus in a program by jwbales · · Score: 1

    Several years ago I wrote an octonion calculator using javascript. To compute exp(X) for a general octonion (a type of eight dimensional number) I had to use a power series expansion and test for convergence. This is calculus. To see the code, just view the page source:

    http://jwbales.us/rpnOctonion.html

  395. Don't go for the CS/Technical degree by Anonymous Coward · · Score: 0

    If you have to ask the question as to whether or not you actually should be taking Calculus; don't

    Its a lot of work and you will hate it. You will probably end up dropping out with a shit load of debt, where you could have been doing something you actually wanted to.

    It also mean that's one less resume I have to deal with.

    Seriously, not having a CS, Engineering, or Physics degree makes it really easy for me to circular file your resume. Sure there are developers out there without technical degrees, there are even good developers out there without them. But you had better be a fucking rockstar if you don't have the technical degree to back it up.

  396. Business Analytics by GrantRobertson · · Score: 1

    Perhaps I shouldn't let the secret out, but my son makes some pretty big bucks for his programming-experience-level precisely because he can do the heavy lifting in the math department. He was a physics major in college, which anyone who reads XKCD knows is the highest form of applied math (in terms of being the applied math that is closest to pure math). For his undergraduate research work, he worked on software that processed data from one of the neutrino telescopes operating in Antarctica. So, yeah, he had to use some pretty high end math to design his software. Now he does business analytics. He is on the leading edge of a technology that will drive the future. And I don't mean "technology" as in some nifty, new programming trick which will be obsolete next month. Or a programming language that looks slightly easier to read. I mean Technology (with a capital T) which applies across all fields from biology, to marketing, to astronomy to how to best manufacture the tires on your car. Every EFFING thing you will ever touch or do anything with for the rest of your lives. Analytics and it's cousin, Modeling, will play a part in it. Even the keyboard you type on all day required some pretty high-level math just to design the springs to give it just the right feel so you can keep tapping away all day thinking you aren't using any math.

    Now, perhaps the reason most of you programmers out there don't think anyone will ever use any math in programming is merely because YOU will never use any math in programming, because YOU don't know how to do it. And I am not talking about just taking a course in calculus, maybe getting an A, but then moving on and forgetting what you learned. (Admittedly, exactly what I did.) If you really want to learn and KNOW math you gotta beat your head against it for years. Practicing more and more and never giving up even when your brain has gone into nuclear melt-down for the fifth time today. Taking more advanced courses and courses that require the use of that math all the time, not just a couple of times a semester. Perhaps, if you actually still knew any of the math you were forced to sit through, you would have been offered jobs where you would use that math and then you would be singing a different tune.

    Has everyone forgotten that Google is based on a mathematical algorithm, not just a lot of fast servers or fancy programming. How do you think they calculate the trajectories for Mars missions and make real time adjustments, taking into consideration the lag time between when the message is sent and when it will be received, as well as the relativistic factors considering how fast the vehicle is moving now and how fast it will be moving when the maneuver is finished..... I guaran-damn-tee you that they don't just do a hash-table lookup and then do an x++.

    So, if all you ever want to do is write more code to push more HTML and bits and CSS out to browsers, like a bajillion other programmers, then stay in your comfy, mathless world. Just keep in mind, that it is easy to train billions of Indian and Chinese programmers to do the exact same thing. Soon, there will be software that does it almost automatically. However, if you really want to participate in the most exciting parts of computer technology that are coming up in this century, then I highly recommend that you double-triple down on that math.

    Now, I know I am getting a little braggy and preachy. But hey, people ask questions because they want opinions. And all I saw was a bunch of boring answers based on a limited, dead-end view of the future. And, I am really proud of my son. So there!

  397. Yes it is needed by Anonymous Coward · · Score: 0

    It isn't so much the practical use of mathematics that is required in progeramming, rather the state of mind and way of thinking that it forces upon you.

  398. One word: Gödel by Anonymous Coward · · Score: 0

    Gödel.

  399. Background knowledge by jandersen · · Score: 1

    Maths isn't directly necessary in most programming. But ...

    Is history necessary for most people's jobs? What is the practical value of learning about literature, religion, ...? You don't need them if you are hammering nails all day, or writing programs, but they give you a background that is often valuable in other circumstances. Do you need to know about golf to do your job? Of course not, but if your boss plays golf, it can give better contact to him because you can talk about a shared interest.

    In order to learn mathmatics you need to learn a certain way of thinking and solving problems, which is very useful in general and in programming in particular. So, you do need your maths.

  400. Every day by Ghostworks · · Score: 1

    Pretty much all engineering can be described as, "will solve second order differential equations for food."

  401. It depends by undefinedreference · · Score: 1

    Advanced mathematics is critical in certain spheres. However, in greater than 95% of software development positions you will rarely do anything beyond advanced algebra. The fraction of time you'll do anything beyond the simplest algebra will be well below 1% of your time.

    What most programmers do involves a lot of string parsing and handling/formatting data from databases; these completely eclipse all forms of mathematics in business software. If you ever end up in web development you could easily go for months to years without touching anything more complex, mathematically, than incrementing a variable. For example: I built a fairly large web interface package that has no math of any kind. None. It parses strings and reads/writes files, chooses what to return to the browser based on header data (string parsing), etc. A later version had simple iteration of a couple values. It has a lot of regexes for data validation and processes/juggles some crazy arrays of strings. Eventually it needed to support a binary protocol, which required the most complex mathematics in the code: a modulo 256 checksum. Whatever pays the bills, I guess.

    Trust me, either way you'll suffer on one side or the other. If you have the skills you'll end up on a series of projects where you never use them. If you don't, someone is sure to throw a problem at you that requires mathematics you don't know.

    This is, sadly, the bleak reality in store for most software developers that must develop business software to pay the bills.

  402. If you need it explained, you will never get it. by Anonymous Coward · · Score: 0

    Philistine.

  403. There are already 859 other comments on this by DeathToBill · · Score: 1

    so the chance of you seeing this one is minimal. But, for what it's worth, I use math.

    I'm an engineer. Qualified as a computer systems engineer, but work in control systems software for large machines. Actually it's not that often that I need to sit down with a pencil and paper and figure something out. It happens - occasionally someone wants to express a control function as continuous-time parameters and I have to implement it in discrete time, and then I have to sit down and do the bilinear transform myself and code it up. But it's pretty rare.

    The vast majority of the time the work I do is based on some math, often involving linear differential equations, time to frequency domain transforms and back, s- or z-domain frequency response assessment and so on, but I don't need to have all the details in my head. What is much more important is an intuitive grasp of what the math means. If someone says to me, "That frame has a natural frequency of 1.25Hz," I don't need to be able to sit down with a pencil (or some other tool) and show that they are right or even be able to figure out how to write down what they've just said in a precise mathematical form. But I do need to know how that feeds in to the control design and then into the structural design.

    I think that this intuitive grasp can only be gained by having sat down for a few years and studied the math underlying it in detail. I can't just write down all the math now, but when I was studying I could, and given a couple of hours I could do it again.

    --
    Slashdot - News for Nerds, Stuff that Matters, in ISO-8859-1 Has just realised that beta makes this signature redundant
  404. Productive days are 100% math. by Anonymous Coward · · Score: 0

    I'm a gradstudent specializing in Machine Learning at a top US university.
    The best, most productive days are spent with the computer off and an engineering pad.

    As the mouseover text here says, the fun parts of life are optional:
    http://xkcd.com/1050/

  405. math is essential by Anonymous Coward · · Score: 0

    Math is essential. Most of the projects I worked on required in. Pattern reco at LMCO required linear algebra (matrix operations) and abstract algebra (error correction codes - galois field theory) and statistics. Audio encoding/decoding needs the knowledge of diff eqs and trig. Math is essential otherwise You know how to code but have no idea what to apply it to when dealing with applied problem solving. Currently the stock market job requires diff eqs, statistics and linear algebra knowledge + a bit of economics.

  406. Original poster, what do you say to all this? by beachdog · · Score: 1

    I wonder how the original poster is handling the flood of impressive comments from many highly qualified respondents?

    Which respondent you have read so far speaks to your condition?

    Which respondent sounds to you like what you will say and do regarding mathematics in five years from now?

    I have an idea for the original poster. Print out the single item in this Slashdot column that you regard as the advice you want to take. Come back to Slashdot in five years and tell us (might not be me) how your next phase in math learning worked out.

  407. It's a requirement for my job by Anonymous Coward · · Score: 0

    As a programmer for a large game developer, I find myself constantly using many forms of maths. A knowledge of subjects such as linear algebra and discrete maths tend to be critical in my field, and although there's always a library to do it for you, it's not being able to do the math that's important, it's knowing when, how and why to apply it.

    A good knowledge of maths can affect many aspects of programming, ranging from knowing and understanding how to perform low-level bit-wise operations (and why you'd use them), to being able to produce good implementations of algorithms, and how to pick the best one for the job. Being able to use math as a programmer puts you at a huge advantage over those who don't.

  408. University math by Anonymous Coward · · Score: 0

    At my current position, math skills are absolutely needed. I use them for image analysis, data fit, physics simulations et.c.
    Since some of my co-workers are phd's and use analythical math more than algorithmic solutions, I must understand such math to a degree that I can implement it. It's also often great fun and smart solutions which I would never think of myself in the first place since I have compuer science background.
    I think that you should always have a basic understanding of what you are doing and what your tools are doing. Otherwise you will someday end up using statistics without proper assertions or miss a great opportunity to enhance your software/site because you didn't do your metrics right.

  409. Anyone who counts by Anonymous Coward · · Score: 0

    ...or actively is involved in logic thinking and communicates the results of that with others.

  410. Learning math was incredibly useful... by agnordby · · Score: 1

    ...but not in the sense that most people think...

    I don't use much math per se, I almost never have the need to calculate anything by hand. But, learning math taught me the very important, and constantly needed skill of abstraction thinking and how to use symbols to represent just about anything.
    This skill has, among other things, paved the way for learning programming, a skill used in my daily job.

  411. Mathematical epidemiologist by Spacelem · · Score: 1

    I'm just finishing my PhD in mathematical epidemiology (and before that I did an MSc in applied maths).

    Yes, I use calculus: it forms the basis of almost everything I do. I've used systems of ordinary differential equations (ODEs) to model disease spread, and the effects of culling. I've also used spatial stochastic models to examine the effect of space and small population sizes, which are based straight from the ODEs.

    Partial differential equations (PDEs) are also commonly used to study spatial effects at both large scale (e.g. spread of disease at country level, waves), and small scale (e.g. tumour spread).

    Programming is pretty important for me. My models range from simple (100 lines in GNU Octave to examine long term effects of changing parameters), to intermediate (2,200 lines of C for the spatial stochastic framework examining population based models), to huge (for the stochastic individual based models that I'm looking at next). My supervisor (whose supervisor's supervisor was Peter Higgs) started out as a physicist, and still uses Fortran 77. Some people I work with aren't big on coding, and just start with someone else's model and adjust it, although they usually have problems if they don't understand how it all works.

  412. Brain Muscle by Anonymous Coward · · Score: 0

    Your brain is basically a muscle. Math will train your brain. Developers needs brains.

  413. yep by Anonymous Coward · · Score: 0

    otherwise you wouldn't come with this kind of thing. https://en.wikipedia.org/wiki/Fast_inverse_square_root

  414. ...rolls eyes by Anonymous Coward · · Score: 0

    hey man, do us all a favor. be lazy and don't learn any advanced math. as americans, we surely don't need any people knowing both how to code well in multiple languages AND having the mathematical background to make rigorous predictions about the physical world. na, you should learn as little math as possible. and hey, it's a lot easier to get good grades when you aren't taking some difficult infinite dimensional analysis class.

  415. Get while the gettin's good by Anonymous Coward · · Score: 0

    Even if you do not use it directly in your disciple, learn as much math as you can and go as far as you can go. This adage is applicable to any pursuit. Those of us who program for signal processing will use a TON of math which helps us also to understand music, art, human perception, video, compression, cellular technology, and just about everything that impacts your modern life. I pity the individual that does not know math--they are missing out on some of the most divine insights life has to offer. Galileo: "Math is the language of God". I agree. Recommended reading: Barrow's Pi in the Sky. Good luck.

  416. College will be interesting for you... by multimediavt · · Score: 1

    I hate to say this, but computer science is applied mathematics. If you're not up to taking higher level math courses then you're not going to be a computer scientist. If you really want to go into gaming but don't want to learn math, then I hope you can draw as concept artist may be your only other hope to get into the design side. Otherwise, you're going to have a good time in college trying to figure out what you're gonna be when you grow up. Or, you just won't grow up. Either way, mission accomplished and you get to choose how much math you take. Enjoy!

  417. Everyone, All the Time... by flyneye · · Score: 1

    I can't get through my day or even an hour without my ability to apply numbers to lifes situations, factor in numerical modifiers and spit out ratios and percentages of probable outcomes and their forks. I find it keeps me about 10 steps ahead of the less evolved monkey boys around me.( I've shoved a few grifts down more than one confidence mans throat). I don't seem to be able to quantify my method well enough to teach my daughter though, and it makes me sad. Perhaps this will pop up in further generations as my contribution to mankind, perhaps it belongs to me alone. Any of you, thus afflicted?

    --
    *Repent!Quit Your Job!Slack Off!The World Ends Tomorrow and You May Die!
  418. You need maths by Anonymous Coward · · Score: 0

    If you want to do graphics, databases, data mining, machine learning, networking, etc, etc, you need a good understanding of maths and not just basic maths. You need calculus, discrete maths, probability, statistics, logic, first-order logic, linear algebra (++ if graphics is your thing), trigonometry, and more.

    If you want to be a code monkey desk slave, do not study maths.

    If you do not like maths, perhaps consider a career other than computing.

  419. "dabbling around Unity3D and OGRE" by Anonymous Coward · · Score: 0

    Contributing to those projects, or using those as SDK?
    The former likely requires quite a bit of math depending on what exactly you contribute to, the latter can be done with very little math.

  420. Ours brains develop pathways according by Anonymous Coward · · Score: 0

    Ours brains develop pathways according how they are used. When You study Math,isnt just for use as a tool for some situation only,but to create more and more complex pathways in your brain that will help you to get solutions and you dont need solve a equation or 2+2 for that,but need to have created in your young times,a well creative, logical, spacial ,verbosal ,memory trained and mathematical brain.

  421. After reading all of the comments thus far by poofmeisterp · · Score: 1

    After reading all of the comments thus far, I see the discussion is stuck in a head-butting stalemate.

    Much like religion, mathematics will always have people arguing over the issues of its relevancy rather than actually working to find a true solution. No pun intended.

  422. Math has helped me program by Anonymous Coward · · Score: 0

    Behind a firewall at work, so posting AC.

    I am not a computer programmer. I have had 2-3 classes in programming. I am a math and physics major. I have a BS in both.

    However, my day job has come to involve a great deal of programming. And I can safely say that I have used Discrete and Abstract Math weekly, in addition to Analysis techniques that I learned in undergrad. (all requiring calc 3)
    -Any time you step back and need to calculate an efficiency rating (my boss loves this), you will use higher math
    -Any time you need to optimize a problem (often saving hours of your life), you will use higher math
    -Any time you get into the guts of a program, you will use higher math (Fourier or Laplace transform errors, Signal analysis, Analog to Digital errors, etc.)

    I have found that even with very light training in programming, I can follow high level programming ideas primarily because of the vast knowledge of math that I have. Example - I built a SVM from scratch in about a week on a whim. I then found a better SVM program (shogun SVM) and switched to that. Am I the best code monkey in the world? No. But I can optimize existing programs. I can think through a program and find good ways to do things - and this has proven just as useful as knowing how to manipulate libraries and do OOP.

    If you plan on being a programmer or doing programming for a career, I would recommend that you get as much math under your belt as you can. You can get away without it, but knowing it will make you a better programmer.

    Plus, calculus holds possibly the 2 most powerful tools humanity has ever known - the concept of the derivative and the idea of integration.

  423. Math teaches you a way of thinking by Anonymous Coward · · Score: 0

    For the software I ship, the math is limited to: add one, subtract one, multiply by two, divide by two. But I also have to write software used internally to analyze performance and scalability. For that you need a statistics class. As for the calculus and what-not, even if you don't use it directly, it's a good way to learn how to think straight.

  424. You probably use math every day by Anonymous Coward · · Score: 0

    Most people use math every day, even programmers. The only question is..... How difficult is the math? Incrementing counters is trivial, finding an offset in memory based on an index and object size a wee bit more difficult.

    Consider this small example. You have a large box and a small box of cereal. Which one costs less per ounce? The grocery store probably does this math for you, but, for some products, they label the sizes using diferent units (such as cost per ounce and cost per quart or pound). Now this should be stupid simple math, but for many people it is a problem. Now, make the problem more difficult, throw a coupon into the mix. Oh my.

    I worked a small job where an average was needed for some data. An average was also needed for various subsets of the data. So, first the average was taken on different portions of the data. Next, the total average was obtained by averaging the averages. Do you see the problem? If I have 1000 things that have an average weight of 10KG and 10 that have an average weight of 20KG, the average weight of the 1010 things is not 15KG, it is closer to 10.1KG.

    At the end of the day, you use the tools and skills that you have. Although I will admit that some tasks are not likely to involve much math, you will use the skills you have to solve the problem that you have. I recently worked a project that handled a "double blind auction". To solve the auction, I was required to intersect a set of line segments. This is really very simple math if you think about it, but it turned out that based on the input numbers, the system was sometimes ill conditioned. I happen to know about ill conditioned systems and I know how to best solve them, so I used a solution mechanism using full pivoting and the rare edge conditions started working.

  425. Most Math isn't what you think it is by ohmiccurmudgeon · · Score: 1

    I actually don't use a lot of geometry in my job, but I use the basic skills of logic and proofs that I learned in geometry. I don't often solve algebraic equations but I find myself tutoring my employees in the logic of intervals. Calculus was a drudge and I almost never integrate a function, but the concepts I learned about functions I use every day. I'm not sure you can use functional programming without exposure to calculus. Almost every math subject has an ulterior motive. Geometry is there to teach you logic. Pre-calculus is to teach you about functions. Calculus is the first math where you're introduced to infinity and infinitesimal entities. Without that math I'm not sure your mind has expanded enough to work for my company.

    I don't expect programmers to solve differential equations in front of me, but I doubt their technical literacy if haven't done it at least once. You don't have the tools to manage complex projects without knowing about diff Q. Likewise, you can't be a computer scientist without discrete math -- you just wouldn't have the mental tools to address the subject. Sure, you could stumble along, but you would just be depending on someone else who did the math.

  426. Re:Diff equations are key to modeling the real wor by Anonymous Coward · · Score: 0

    Even accounting and things like data compression in serving up web pages uses statistics.

    In your web page test, or accounting system test, how many transactions do you need to run, how long do you need to run, to have a valid performance test?

  427. Not now, but someday... by hazydave · · Score: 1

    When I got out of school, I got into computer systems design (things like the Commodore Amiga 2000)... not a great deal of complex math in there. But I actually did double major, EE and Mathematics, so I had that toolbox of stupid math tricks available, once things got a little more demanding than just calculating worse-case timing and power budgets.

    Which they did. One thing I did, which many folks think is cool (and it is, particularly if you don't care about getting paid that well)... I got into startups. When you're at a startup, you find you wear just about any hat that fits, and you also get pretty good at tailoring those that don't. Having a proper background in math will definitely help you at this. And it's not unusual, particularly if you're a hardware guy at a small startup, that you're expected to solve EVERY possible hardware problem... or at least know it well enough that you can solve things with the occasional help of a consultant.

    So since Commodore, I've done control systems and sensor systems (robotics), digital radio systems (R/C cars, more robotics, general purpose mesh routers). I wrote an NTSC decoder for a software radio.... all sorts of different math in there (FFTs, filters, etc)... and knowing math well enough is critical to building things like this well... you can find dozens of books on the analog TV signals, but doing that all in software, you really need to understand things. I've also been working in cryptography, more SDR, and other kinds of signal processing... even wrote a few audio plug-ins for my own use, which may one day get released somewhere.

    Of course, with great tools like MathCAD, you may not find yourself actually "doing" the math they way you might have back in school. No pencil and paper, you have tons of primitives that do complex things for you. But you need to understand how it all works to able to use such tools.. and without that knowledge, you'll be unable to adapt. The other guy who wants that cool new job won't have that limitation.

    And in fact, the very best thing I learned out of my more-expensive-than-Dad-had-budgeted college (and those extra ten years of monthly payments) was the ability to adapt. The specifics we learned in the early 1980s (Pascal and LISP programming, TTL logic, etc) all but vanished. The big ideas don't. An education shouldn't worry too much about today's specifics... you have no idea today what kind of engineering you'll be doing in 5, 10, 20 years. Even if you don't change jobs, the nature of the work can change out from under you. I went from HW design last summer to a software project (and the need to learn three new languages), then back to hardware this summer -- with some pretty deep mathematics in the mix now.

    --
    -Dave Haynie
  428. Re:If you want to be a well paid game programmer.. by hazydave · · Score: 1

    Games sure. But also embedded control systems. Robotics. Cryptographic systems. Signal processing: digital video, digital audio, software radio, etc. I think the need for "real math" is on the rise.

    --
    -Dave Haynie
  429. Learning math helps you learn to solve problems by emuls · · Score: 0

    Learning math helps you learn to solve problems, so no I don't use calculus every day, but I do solve problems every day. Discrete Math, Calculus, and Physics in my opinion are some of the most important courses a software engineer can take. Programming languages are easy to learn, problem solving abilities come from LOTS of practice.

  430. Wouldn't it depend what you were programming for? by Anonymous Coward · · Score: 0

    "Programming" covers a lot of areas. I work for big pharma as a statistician in clinical trial drug development, but our programmers need a statistics background to be effective. They don't actually use math daily, but have to understand statistics and what the statistician is asking for. So they need to be familiar with math through calculus, and then several basic and (perhaps) advanced statistics classes. Our most effective programmer has a PhD in statistics, and boy, does he ask appropriate questions.

  431. Business Development / Operations use math daily by Anonymous Coward · · Score: 0

    I've led major defense contractor teams in business development and business operations.

    Algebra is used at work daily. Statistics at the college level is normal, and while most folks don't crank the numbers, all are expected to have intuitive grasp of the numbers cranked out by others. If you have NOT mastered at least one course in Stats at the college level, you cannot understand modern business metrics and reports.

    Geometry and trigonometry are regularly useful at home in making volume estimates, figuring out where you can put that satellite dish, etc.

    Math's not essential to home life, but a basic understanding of the normal high school requirements (Alg I and II, Geometry, and basic Trig) sure makes a LOT of things much easier.

  432. Training of the mind by Anonymous Coward · · Score: 0

    Math--Calculus and beyond is a training of the mind. Americans have been so dumbed down and lazy that they can't even recognize the fine tuning of thinking and development of the mind. So, if your intention is to stay as dumbed down as possible -- to do as little as you possibly can--then don't take any more math.

  433. Everything takes Calculus these days by Anonymous Coward · · Score: 0

    There are college majors in business in a local SD college that include calculus as part of the curriculum with the end result to run a hotel. It's been put there at the request of hiring managers IIRC. They request that the students take calculus to be considered and admit that there's nothing in the job tasks that remotely require it. They claim if they can tackle that course, then they can tackle the demands of actually running a hotel. I don't know if that is true. Sounds like they just want to see if the prospective student will jump through useless hoops.

    1. Re:Everything takes Calculus these days by lpq · · Score: 1

      It due to the retention factor.

      You won't use the higher math, but having to pass it, means you reuse the lower math ALOT till it's 2nd nature and you can do it in your head. That's what is necessary to do most of the jobs.

  434. Math ... the language of life... by servant · · Score: 1

    I am retired now, but as a computer scientist (by degree), programmer and analyst and sysadmin (by functional activity), math higher than algebra does come in useful.

    Even if I didn't directly use statistics or calculus but once every few years they provided a great understanding of what I saw in information I had to analyze to solve workplace problems.

    Yes, there were the programmers around me that thought it was all 'hocus pocus', but they were also the ones that brought their problems to me to 'do my magic' whenever the analysis was above their level of understanding.

    Even digital systems design allowed me to develop of optimization algorithm's for tax problems for a couple of fortune 500 companies during my career. It took a couple of months to come up with a couple of lines of code (and 20+ pages of explanation so others could maintaining it after I was gone).

    Even after marrying a geologist/geophysicist who now teaches horseback riding to beginners, we have found education adds to the tapestry of life. Whether it is math, history, theology, music theory, rocks, or anything else. All education is good. ... Much of it will not generate a $$ of income. Some will pay off better than any slot machine you have ever seen.

    I have found teaching my kids that posing problems that they are interested in solving and let them get frustrated helps. Then introduce 'tools' (whether it be math tools, or a screwdriver) that help them solve the problems. A few times of this, then they start learning that learning about the 'tools' it takes to address lifes problems isn't so 'dry' after all. ... Thankfully we found a college that uses that concept for my son. He now is a MechEngr, is in a couple of 'startups' but has a 'job', and is a partner in a coffee concern in the Boston area. ... I attribute part of it to luck, part of it to training, and most of it to learning to love learning about so many areas.

    Once again, learning is never lost. Education can't be taken away even if you are 'fired'. All education adds to the quality of life. ... Oops ... sorry about preaching. But this is obviously important to me. I hope it helps someone else make good decisions for themselves.

    --
    ... "When you pry the source from my cold dead hands."
  435. Everyday by Anonymous Coward · · Score: 0

    I work (advanced) tech support. I use math all day but mostly statistics and algebra.

  436. more math by Anonymous Coward · · Score: 0

    I use math everyday. Sometimes it's as simple as trig or algebra, but it can also be advanced calculus to liner algebra. As I'm sure you've already seen you might understand a problem, and even understand a way to program it. For instance solving a simple equation without algebra is very easy by trial and error, and is very easy to program, but understanding the math will improve your understanding and may influence your approach approach.

    Many things are very easy to learn after school: new programming languages, new technology, etc... However, advanced math is more difficult to learn on your own. I'm a software engineer, without mathematics anywhere in my job description, but it's the one area I feel I could have had more education, and I was a math major in college.

    Take as many math classes as you can!

  437. Algebra, Boolean, Queuing, Graph, Probability by dakra137 · · Score: 1

    I do system modeling, architecture and design, capacity planning, and design for high availability, high capacity, high performance, continuous operations,, and occasional programming. I am not in a research organization. I am in the world of commercial IT. Most of my career has been in technical sales.

    I use simple algebra all the time. Workload growth over time implies exponentiation. In the last few years I have used logs and even quadratic equations in system analysis and modeling.

    I use Boolean logic, AND, OR, NOT, XOR, IMPLIES, DeMorgan's Law etc to construct and understand & debug other's complex if statements and hierarchies of them.

    I use probability to understand variations in workload coming in to servers, their business (busy-ness), and how to combine multiple workloads together.

    When considering servers (machines and programs) capacity and responsiveness, I use queuing theory, and consider where things get buffered and queued along the way and at the layers between clients and servers.

    I use graph theory to be able to understand network flows, linkages between relational tables, multiply linked lists, and graph databases.

    When modeling communications links or systems availability, with lots of things with very low error or failure rates, I do binomial expansions and sometimes Maclaurin or Taylor Series.

    I do most of all this in spreadsheets, but sometimes the provided functions are simplistically written, so they cannot handle combinations of large and small parameters. Then I had to substitute a better algorithm.

  438. Yes, study math by Anonymous Coward · · Score: 0

    I am a professional computer programmer, and I can say that 90% of my job is math, from algebra through calculus. I am moving into game design, and I may have to take a few higher math courses to keep ahead.

  439. yes and no by Anonymous Coward · · Score: 0

    I'm going on about 15+ years in this "field". I am currently on my very first project that ACTUALLY implements a calculus formula in code. I - personally - am not doing ANYTHING special. I know colleagues who are doing some really cool stuff - but even that is not as cutting-edge as some things I am seeing out there.

    I would say that there is a whole wide world of computer "work" (including coding) that does not involve math higher than algebra and trigonometry. That's me. That's most of us.

    But there is also a whole wide world that most programmers and integrator-types don't even get exposed to - where intimate knowledge of very advanced math is very necessary. Hardware and system design. Engineering. (I've even been in large projects where we used calculus to estimate cost, and help the manager project budget). Spaceflight. Search engines. AI and machine learning.
    Notice that the internet has not REALLY changed much since 1998. Seriously.
    There's some very cool gadgets that come out once in a while. But has anything REALLY REALLY changed?
    I've seen some pretty cool innovation in machine learning over the past couple of years - self driving cars and quadrotors, and things like that. But I don't think that enough people are doing this. The amount of people who have this kind of expertise are so few and far between.
    I think that if we had a lot more people working at these higher levels, especially with more high-level math, in the fields of applied AI and machine learning, we would be seeing a lot more innovation like this - rather than "innovation" like: social network websites - (which is really 1980's Compuserve - warmed-over, on faster hardware).

    I will absolutely point a finger of blame at our society's idiotic approach to math education.
    We should be starting to teach our kids calculus and linear algebra concepts when they're 12. They should be pretty much through algebra by then. ALL kids. We shouldn't slow-track kids out of the field, who are slow to grasp the hard concepts - we should double-down on the effort needed to teach them. (ie. more classtime, not less).

    In our system - if kids don't demonstrate competency in math at age 12, they're slow-tracked into a series of remedial math classes, and they end up graduating without any exposure to calculus in secondary school. That's insane and idiotic. Now: if the kid doesn't WANT to track into a technical career at that time, that's fine. If the kid DOES want to - the system shouldn't shut them out.

  440. It's not just math by DedTV · · Score: 1
    Math certainly comes in more handy than all the writing practice has.

    I do make occasional use of Algebra, Trig and Geometry even in daily life. But I've never once used MLA or Chicago citations outside of school. And being that I absolutely despise writing essays and reports on subjects I care little about, and in the real world I hire people to do that crap for me on the rare occasions I need it. It was the biggest limit to my education as I actively chose courses with as minimal writing requirements as I could and avoided writing intensive courses like the plague.

    Math doesn't unnecessarily limit student's educational choices. It's the structure of degree programs where half or more of the required coursework is irrelevant to the field the student is studying to enter that limit people's educational choices and most of the skills learned will never be used. Math is just the most prevalent example. If someone is bad at, or dislikes math, they're most likely going to choose a degree program and elective course work as light in math as possible or avoid college entirely. Ditto for those who dislike writing, public speaking, history, science or some other task. That all degree programs are filled with such courses and requirements is the biggest limitation to education.

  441. How many of me? by Lost+Race · · Score: 1

    Either 0 or 1, depending on what I'm doing. Usually 0 but occasionally 1.

    Protip: Always write to a singular audience. If you want to pluralize the audience, use first-person ("How many of us...?").

  442. Problem: office hours by md2perpe · · Score: 1

    Here's a problem I've seen asked several times:
    Calculate the number of office hours between two given times. Office hours are Monday - Friday 8.00 - 18.00.

    How would you solve this in an efficient way? Actually, knowledge of integration might be useful.

  443. Calculus in C, C++ or C#, or anything else by captainzilog2 · · Score: 1

    You haven't had enough math. To solve integrals, Fourier series (also called Fourier Integrals) are commonly used. Pi, sine, cosine and other trigonometric values are computed using Fourier series. A Fourier series is a discreet incremental integral. I don't know these reductions off the top of my head but I know where to find them and how to implement software for them. You are not likely to find general Integration functions in any language. You have to know the math. If you are doing UI, you probably don't need to know this stuff. Even for games, this stuff is there, in the libraries (especially physics libraries). Fourier series (and other methods, I would guess) can calculate these Integrals to any number of decimal places that you would like. This can also be done with pencil and paper but it is extremely tedious.. Fourier converts an Integral into a series of discreet computed values. Granted if you need to solve an integral that has no Fourier solution, very difficult.... A good reference for this is the "CRC Chemical Book". Not sure of the title or even if it is available any more. I've had mine for decades.

  444. Re:Diff equations are key to modeling the real wor by Anonymous Coward · · Score: 0

    And this is why there are so many poor programmers and so much poor code out there!

    If you can't determine the O notation performance of an algorithm, even if it's to count beans, how can you expect to write decent code? If you can't collapse an algorithm from exponential to polynomial time you're going to be a poor programmer.

    If you want to work as a software developer in financial services (some of the better paid jobs) you'd better understand advanced calculus!

    Personally I write cloud based code for ebanking apps for a job and image processing code for a post grad degree. While the first isn't particularly demanding of higher maths skills, I still need them from time to time.

    The second would be impossible without a fantastic understanding of linear algebra, matrix math, tensor calculus and high order geometry.

    So can you get a job as a programmer with minimal math skills? Probably. Is it going to pay well or lead to promotions? Probably not.

  445. A few possible applications by werepants · · Score: 1

    I have more of a robotics/embedded systems/physical computing background, but I can tell you calculus is all over the effing place there.

    The PID controller is an integral (pun intended) part of everything from autonomous cars to thermostats - it stands for Proportional, Integral, Derivative. Calculus is a very cool part of these things, although, when implemented in programming, it won't look very much like calculus. A knowledge of the concepts really informs your understanding of how these things work, though.

    Also, if you ever want to program an application that does significant motion control, think wiimote or smartphone apps (and you don't have a nifty library that does all the thinking for you) you'll need to know calculus to be able to turn your accelerometer readouts into velocity and position information. Same thing for turning gyro data (roll rates) into rotational position or acceleration data. Missiles, UAV's, spacecraft and a bunch of other things use these principles - look up IMU (inertial measurement unit) , or AHRS (altitude and heading reference system).

    You can see here that calculus is a very fundamental part of understanding physical motion and behavior, so I imagine that if you ever get into the dirty work of designing a physics engine of any level of realism calculus could be extremely helpful. Even if you don't explicitly take a derivative anywhere, it helps you have a better understanding of things that change continuously, and even just be mindful of the way various forces operate.

    Finally, Calculus is just goddamn beautiful. I'm no expert at it, but if you've got any interest in things like programming, math, and science, it is something you ought to be familiar with just because it is such an elegant and astonishingly simple way to understand so many really complicated things.

  446. Cheez Wiz fire extinguishers by Anonymous Coward · · Score: 0

    This goes for all the math you can stand; one should never quit one's mind of mathematics:

    Having a robust understanding of many mathematical concepts is an extremely useful asset throughout life, regardless of one's studies or eventual job. Considering the massive impact and implications a thorough education in mathematics, or the lack thereof, it does not suffice to simply say, "I have never used that math in my... "I never used any of those formulas to calculate... "It may help to have a few math courses under your belt..." or whatever and be done with it. I know everyone is only concerned with whether or not they will actually be asked to perform such calculations by the entity(s) which hand them a pay check. The benefits to cognitive development, the enormous impact on critical thinking skills, spacial/dimensional awareness - there are myriad reasons which give all who seek employment in computer science good cause to pursue a wholistic body of mathematical knowledge and understanding.

  447. programs are theorems by pascalfares · · Score: 1

    The activity of programming is the art of solving problems. This ability is learned by math. In fact a program is a theorem..... so learning to prove help find algorithms and programming. Many others aspect of programming are related to math : abstarction, logic, modeling, deducing, ....

  448. who is zooming who by Anonymous Coward · · Score: 0

    Sometimes I iwonder if my self and all of us are the unconscious agents of the integers, that it is they who use us

  449. It depends on what you program .. by Anonymous Coward · · Score: 0

    Today, I do SQL and data bases. I really use my set theory, logic and stats every day. I started off as a FORTRAN programmer and used my algebra every day. When I did COBOL, I wish I had taken some accounting courses -- and so did my clients :)

  450. I don't use math anymore.... by Anonymous Coward · · Score: 0

    I use Excel

  451. Re:It Teaches How to Play Ball and Complete a Proj by Anonymous Coward · · Score: 0

    Thank you for the especially informative review, I'll keep that in mind!

    - Anonymous Reader

  452. remembers to count the shoes by Anonymous Coward · · Score: 0

    I try to remember to count the shoes before i go over to a girl on the beach.

  453. Zippers as derivatives by Anonymous Coward · · Score: 0

    I've used "type-lifted" calculus a lot, in the sense that many data structures are expressed as fixed points of polynomial functors. A zipper on a data structure is the derivative of the functor.

    http://en.wikipedia.org/wiki/Zipper_(data_structure)#Zipper_contexts_and_differentiation

  454. Pushups by Anonymous Coward · · Score: 0

    How many of you actually use pushups?

  455. Gradual School Math in programming by vServer+Center · · Score: 1

    Most programmers are doing low level programming works which may only require high school level math. However there are high level programming works that require not only college level math but also graduate school level math.

    For example, if you try to program a good way to compress images and videos. You try to get the best compression ratio so you can have a smaller file to save storage space (think how much it can help Youtube). You try to send the best compressed video to a remote location and decompress it with near original quality (think of Apple Facetime or Skype video). To do well on image compression you need to know a lot advanced math such as Fourier series, Wavelet, ...etc. They are graduate school or even beyond graduate school level math.

    Many Wall Street algorithmic tradings (robot trading, high-frequency trading, ..etc) are programmed with advanced math. The simplest trading model: momentum trading is based on the second derivative which you can learn in Calculus.

    Many firms like to hire Math Ph Ds and then teach them how to do coding. They don't hire high school coders and then teach them Fourier series, Wavelet, ..etc. You can see why.

    As a high school student who is interesting in programming, you can:
    1. Get a programming job after high school, stop learning college and graduate school math. You maybe able to find a job and happy with your life for a while. But when you are 40, you can be easily replaced by some young high school graduates.
    2. You learn a lot math including graduate school math. Do some high level programming with your advanced math knowledge. You may invent some new computer chips, get some patents, and retire at the age of 45.

    It is your call.

  456. Every time I cut code by Anonymous Coward · · Score: 0

    It doesn't matter much what the code is, I need maths and I don't even think about maths when I use it. The reason is because when I write an algorithm or data structure, I need to decide what algorithm or data structure I will use and to make that decision I need to be able to compare the various costs of those choices. If I don't have a good handle on the difference between N, N^2 and N.log(N), then I can't do a good job of writing code. What's particularly useful is that I don't have to think about what that means, I just know it.

  457. Go Where Other's Can't by obscuro · · Score: 1

    One of the adages I feel has the greatest validity in technical business is, "The key to sustaining and advantage is to go where others can't." It's true that programming certain popular things doesn't require an understanding of much math. It's also true that math is critical tool for modeling phenomena in the real world. You have to ask yourself whether you want to be someone who CAN'T do that. Modeling phenomena in the real world isn't just for scientists. Its part of finance, operations, geography....

    Why would anyone look at how much easier it can be to learn in today's world and chose to learn LESS fundamentals than their predecessors? How do you think we lost the engineering knowledge of the Romans and the medical knowledge of the Greeks for 1000 years? My bet is that someone looked that a trivial moment in their culture and said, "Why do we need to know that?"

    --
    Every rule has more than one consequence.
  458. Let's be fair... by Anonymous Coward · · Score: 0

    If you can't handle the math, someone else can. And they will be better than you at whatever you do.

    Understanding of advanced mathematics, real full-blown comprehension of it (even just some of it) completely changes your outlook on every aspect of your life. I mean, imagine if you had never learned multiplication - your life would be pretty different. For example, after you join your sorority/fraternity (which sounds about on track for you) your understanding of multiplication will help you determine exactly how many more kegs you will need when the next sorority/fraternity over crashes your party. The level of the mind-jobs increases proportionally from comprehension of the basics because math and specifically logic underly the structure of reason itself. Make it to topics in set theory and begin contemplation of the continuum problem and then explain to me how irrelevant concerns about the validity of your math studies have become.

    The series of mind enhancements that you tack on for the low cost of doing your math homework will then get you closer to perceiving a thing that eludes the majority of people: reality. Having a better understanding of reality tends to help you compete against your coworkers, aka the zombie hordes.

    So, suck it up slacker. Do your homework, quit whining, or perish under the crushing competition. If you don't somebody else will and will beat you into submission with it. Anything less will be settling for mediocraty, and at that point you may as well major in business.

  459. Not as much as many promised I would by Anon8---) · · Score: 1

    Most mathematicians and professors have always done a wonderfully horrible job at presenting the direct applications of maths. This applies directly to every single maths teacher I had. Every so often a pupil would ask "why do we need this" and was greeted with "stop asking me that question" or (combined with) "you don't know enough to understand yet" ; highly arrogant and unhelpful.

    That created a lack of interest and drove me to that part of computer science where maths simply isn't that important : specifications, requirement engineering, web and UI development, script writing and bug fixing in network driven applications. I leave the maths to the mathematicians and those that understand it. I stick to what I do well.

  460. Yes I've used it, but it was for engineering softw by Captain+Chad · · Score: 1

    I used complex variables to do circuit analysis when I worked on a software GPS receiver and also used Fourier transforms and vector math. In addition, I've used numerical methods to extrapolate data. But in both these cases, it wasn't computer programming that required me to use the math; rather, it was the nature of the subject area.

    --
    Check out Chad's News
  461. Math is a tool by Anonymous Coward · · Score: 0

    IMHO Mathematics is simply a tool which you either have at your disposal, or not. Since maths is really a language for describing the real world, having it available makes a lot of problems a lot simpler to solve.

    So you don't HAVE to study maths, but studying it will simply add a tool to your belt for the many problems you are going to face in the real world!

  462. On not taking enough mathematics by Anonymous Coward · · Score: 0

    I personally think that it would be a serious mistake for any high school student, no matter how talented you may be as a programmer to assume that you already know enough of anything to support the broad range of career and entrepreneurial opportunities you will have I the future. In the better public and private schools, higher level math is being taught In progressively earlier grades and every student should make every possible effort to get as much of that instruction as possible. What if you get to college and realize that a field such as computational tissue engineering is what you really want to do and with the entrepreneurial opportunities available in this field, plus the university connections that would be open to you, you most certainly would not want to be shut shut out of your chosen field because you neglected to go far enough into math to be qualified for the higher level courses you will need. It must be understood that the same Mathematics underlies every field of science and engineering and given the accelerating rate of change now occurring worldwide, you are making a serious mistake if you think that you know now what you career path is going to be even a decade from now, or just how much math is going to be required for you to achieve goals in fields that may not have even beein invented yet.

  463. Analytic skill is key by Anonymous Coward · · Score: 0

    Calculus isn't strictly required for computer programming, but the best programmers I've met know it cold. The reason for this is simple. Math is about solving problems analytically. Computer science is as well, although much more in an applied way. The best programmers solve problems analytically first, drawing on their analytic skills, while never losing sight of the application.

    Linear algebra is an important skill for programmers looking to get into gaming. It gets heavy usage in the APIs for 3D applications and rendering, for example.

  464. for engineering software... by crutchy · · Score: 1

    ...particularly involving dynamic systems or electricity... calculus, partial fractions, laplace/fourier transforms, etc are a must

  465. Calculus and Trigonometry by gseidman · · Score: 1

    I've used calculus and trigonometry for UI animation with some regularity. Sinusoidal easing makes for very comfortable and natural interaction, for example, and it takes a combination of calculus and trigonometry to code it properly. For that matter, it requires familiarity with both to even think of using the technique. So, yeah, it's worth knowing your math even if your CS work is just polishing user interfaces.

  466. All day by solidraven · · Score: 1

    It seems people miss the point of calculus quite badly. Calculus allows you to prove or simplify quite a lot of trigonometry. Numerical calculation methods also depend heavily on it. Your entire computer is the work of calculus being applied to physics. So do pay some attention to it and you might learn a useful thing or two. On top of that your game engines also need realistic physics. Good luck doing that well without a three dimensional field of vectors.

    But where advanced mathematics really show their real value in my personal opinion is in electronics. Analog electronics, especially high frequency and RF systems can't be described or even approached without it. All the "rules of thumb" find their backing in advanced math. Even something as simple as the Fourier transform requires calculus to explain correctly. And lets not forget about our friend Maxwell...
    In short, in the current society where electronics play a major role in almost any device it might be a good idea to be able to approach the subject. But you need calculus for that. A nice bonus is that calculus has helped me the past few years in reducing the amount of taxes I pay. Cause calculating an optimal solution to a problem is also something calculus is an excellent tool for.

  467. me = noob by KingBenny · · Score: 1

    so, dont take it as professional advice, i don't know how much actual math you need when using libraries but if you were to do some 3D you'd need a serious chunk of matrices and geometry at least before you get a single dot in screen where it has to be

    --
    Free speech was meant to be free for all... how can anyone grow up in a nanny state ?
  468. Advice from my Proff by Anonymous Coward · · Score: 0

    When in college I was struggling a bit with my Calculus homework and asked my professor if I needed to rethink my career. He said "If you ever get a job and they ask you to do that quit on the spot". When I asked why they were torturing me by making it a required subject I was told it was to help develop problem solving skills.

    1. Re:Advice from my Proff by crutchy · · Score: 1

      at university they tell you something similar... "when you get out in the workplace you will remember less than 10% of what we teach you here, but what you really learn here is how to learn and track down information yourself when you need it"

      from my own experience, and depending on how you learn (i'm more a visual learner), i forget a lot of stuff from uni, but when i need to know something i google it and it comes back to me much easier than it would if i'd never seen it before. i think a lot of understanding from school and uni is retained in something like your unconcious

  469. Use the math to be a programmer Jedi by Anonymous Coward · · Score: 0

    Any skillful programmer have at least stronger abilities in some mathematical aspect.
    A Jedi must have the deepest commitment, the most serious mind.
    Hmm? What he was doing. Hmph. Adventure. Heh. Excitement. Heh.
    A Jedi craves not these things.
    Only a fully trained Jedi Knight, with the Force as his ally, will conquer math.

  470. All education (math included) is good by servant · · Score: 1

    Most of the math in the world is arithmetic, a little algebra and geometry helps a lot.

    Higher than that, is seldom needed in normal things in life, but I have found calculus and understanding 3D geometry very useful in programming for companies that don't even know they have problems that are more easily solved using techniques from those spaces.

    IMHO, education is never lost. More education even if I 'never use it' is still better. Sometimes it just helps clarify what others view as noise or 'magic' in the world.

    In high school I almost gave up on math in Algebra I. After taking a graduate level statistics class as an under grad at a good college, math finally got through that I had had enough, both mentally and practically. But it still adds to my quality of life as a retiree, I still work on projects out of my comfort zone, just to keep expanding my interests.

    --
    ... "When you pry the source from my cold dead hands."
  471. use of math by Anonymous Coward · · Score: 0

    Only when you don't want to guess, unless counting.

  472. Re: calculus and discrete math by Anonymous Coward · · Score: 0

    Actually, discrete math is not exactly a tool to do math on the computer.

    Numerical methods (of solving differential equations, computing integrals) are algorithms which could be considered part
    of discrete math, but a small part.

    " I haven't seen any clear way to calculate say an integral using something like c++ or c#.." Usually C++ is not used because
    of overhead, not justified in repeated of same, relatively simple, code.
    People use C or Fortan for that.

    You will find such spftware e.g. here:
    #
    List of numerical libraries - Wikipedia, the free encyclopedia
    en.wikipedia.org/wiki/List_of_numerical_librariesCached - Similar
    You +1'd this publicly. Undo
    The NAG C Library is a collection of numerical analysis routines developed by the Numerical Algorithms Group which can be called from user applications ...
    #
    List of numerical analysis software - Wikipedia, the free encyclopedia
    en.wikipedia.org/wiki/List_of_numerical_analysis_softwareCached - Similar
    You +1'd this publicly. Undo
    It comes with its own programming language, in which numerical algorithms can be ... engine for charts and mathematical routines for Approximation, Interpolation, FFT, ... PARI is also available as a C library to allow for faster computations.

  473. IP Addressing and Subnetting by Anonymous Coward · · Score: 0

    In the network world, the only math you'll probably ever have to do is IP address/Subnet calculations

    It's basic math... I took calculus in high school and in comparison subnetting calculations are child's play.