Slashdot Mirror


Ask Slashdot: How Important Is Advanced Math In a CS Degree?

AvailableNickname writes "I am currently pursuing a bachelor's in CompSci and I just spent three hours working on a few differential equations for homework. It is very frustrating because I just don't grok advanced math. I can sort of understand a little bit, but I really don't grok anything beyond long division. But I love computers, and am very good at them. However, nobody in the workforce is even going to glance at my direction without a BSc. And to punish me for going into a field originally developed by mathematicians I need to learn all this crap. If I had understood what I was doing, maybe I wouldn't mind so much. But the double frustration of not understanding it and not understanding why the heck I need to do it is too much. So, how important is it?"

656 comments

  1. depends on what you're going into by davecotter · · Score: 4, Insightful

    if you're going into app development or IT, probably not much math needed. i've been in app dev for a long time (and quite successful). Those times that i actually need math? I just look it up, program it, then forget it. I never have needed much math. However, if you're going into some CS field that requires math, well, obviously, it's worth your while to study it.

    1. Re:depends on what you're going into by Cryacin · · Score: 5, Insightful

      If you're doing quants work, or business intelligence, data mining etc, sure. Hardcore math is a must. If you're developing business software or something like that, it's more important to know Djikstra, the gang of four and closures.

      --
      Science advances one funeral at a time- Max Planck
    2. Re:depends on what you're going into by JBMcB · · Score: 5, Informative

      If you're developing business software you're going to need stats. It's inevitably going to rear it's ugly head sooner or later.

      --
      My Other Computer Is A Data General Nova III.
    3. Re:depends on what you're going into by geekmux · · Score: 4, Insightful

      if you're going into app development or IT, probably not much math needed. i've been in app dev for a long time (and quite successful). Those times that i actually need math? I just look it up, program it, then forget it. I never have needed much math. However, if you're going into some CS field that requires math, well, obviously, it's worth your while to study it.

      I think that was the point of the query here, exactly what fields remain today that require the level of math that is (rather arcanely) still infused within a CS degree?

      I fell into this same trap when initially pursuing my degree. Avoiding all the advance math requirements due to my own hatred of it, I was facing three separate tracks of nothing but I/II/III math courses, which were obviously best taken in succession. It was going to take me way too long to accomplish this (while going stir-crazy on nothing but math), so I ended up switching to the MIS path, which didn't have the absurd math requirement.

    4. Re:depends on what you're going into by Hatta · · Score: 5, Insightful

      If you're not going to need much math, you proabably don't need a CS degree either.

      --
      Give me Classic Slashdot or give me death!
    5. Re:depends on what you're going into by Deep+Esophagus · · Score: 1

      It was going to take me way too long to accomplish this (while going stir-crazy on nothing but math), so I ended up switching to the MIS path, which didn't have the absurd math requirement.

      This. My state U had two different paths to a CS degree, BSc and BBA. The former required calculus, which I tried three times and failed three times before I realized it just wasn't going to happen*. Switched to the BBA which required a couple of accounting and marketing courses I never used, but at least I was able to get that piece of paper saying I know how to write computer programs.

      Sadly, they were still pushing COBOL as the pinnacle of software development and by the time I was out looking for a job, it was all PCs.

      * It may have turned out differently if I actually read the lessons and did the homework and stayed awake in class, but at 19 I was an idiot.

    6. Re:depends on what you're going into by FilmedInNoir · · Score: 5, Informative

      Advanced calculus/linear algebra is a must for game engine development. I try to read articles about rotating 3D objects.... *WHOOSH* over my head. But I've done well for 13 years doing IT client/server programming and just looking up the occasional algorithm for lat/long distance calculations, permutations, etc. Still need to be able to translate math formulae into a computer language though.

      --
      Sig. Sig. Sputnik
    7. Re:depends on what you're going into by internerdj · · Score: 4, Insightful

      If you are going to go further in your education then you will need to learn all that math too. I've spent a sizable chunk of grad school reviewing math because I didn't take it serious during my undergrad. Solid statistics is used in countless places. Linear algebra is key to understanding computer graphics and has powerful tools for other more specialized applications. Differential equations are used for all sorts of real world simulation problems. If your university is like mine then you will get an in depth discrete math course from the math department that covers the problems you hit when using a discrete machine to try to work with infinite things. You might get that from the CS department but our CS coverage was all sorts of CS related math. If you do anything hard then the CS coverage may not cut it.

    8. Re:depends on what you're going into by Anonymous Coward · · Score: 2, Insightful

      I just look it up, program it, then forget it.

      You must have forgotten "study it" between "look it up" and "program it". I don't think you could just "look differential equations up", except if the case is extremely simple.

      Also, a construction analogy: for a lot of construction work you won't need strong mathematical skills, but don't try designing a bridge if you lack them.

    9. Re:depends on what you're going into by interval1066 · · Score: 1

      Sadly, they were still pushing COBOL as the pinnacle of software development...

      OMG yes... I left uni with a bunch of cobol crap running through my head, this was when the first Mac had just been introduced and I wanted to write GUI apps for it; interestingly writing gui apps for the first Mac didn't require COBOL or Fortran jobs punched up on decks of cards... what a waste of time. Interestingly I had to try to recall it all back for the y2k nonsense in '99... what a crazy world.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    10. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      ...Sadly, they were still pushing COBOL as the pinnacle of software development and by the time I was out looking for a job, it was all PCs.

      * It may have turned out differently if I actually read the lessons and did the homework and stayed awake in class, but at 19 I was an idiot.

      I was forced to take a COBOL class as a prerequisite. Not Java. Not C#. COBOL.

      There were six of us in the class.

      They flew the instructor down once a year from another state to teach the course.

      Talk about not letting go. While it was somewhat interesting, I still despise having to do that.

    11. Re:depends on what you're going into by Anonymous Coward · · Score: 3, Interesting

      I second this. I made some recent "statistical process control and analysis"-based improvements at my job (determining past typical variation and comparing to it as a measure of quality rather than unconnected arbitrary thresholds), which nobody else even knew were possible. We aren't a manufacturing company - we just deal in images. The improvements should have been immediately obvious to anyone with an understanding of statistics, but nobody here in the past ever understood statistics.

    12. Re:depends on what you're going into by jellomizer · · Score: 2

      Even though you Looked it up and programmed it and forgot it. You knew what to look up.
      That is part of the reason for Advanced Math in Computer Science.

      Sure most of the programs you do the most advanced math may be Division, however sometime you need to pull out the books (or google) about stuff in Statistics (Oh we have a data set, what is most common), Calculus (Lets find the most optimal spot), Discrete Math (Will you hair-brain idea even work), Linear Algebra (If you are doing 3D graphics), My Program had Dif-Q as an elective, I took Advanced Discrete Math.

      But still I suffered these classes, but after college was done, I found that knowing it was more useful to me then not, and I was glad I took the classes.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    13. Re:depends on what you're going into by DJ+Jones · · Score: 1

      Agreed. You may not always need a math background depending on what you decide to do. I have a CS and Applied math degree and I worked in finance for 5 years where the math background was an invaluable tool that helped me excel where my coworkers without it did not. For other jobs I've had developing apps and UI's for start-ups, it rarely came up; however, whether you use the math or not on the job there will always be fundamental math quizzes during technical job interviews and having a higher understanding of mathematics will always help you in that regard.

      Also if you ever develop a large-scale database or system, mathematical optimization will always come into play in ways you never thought it would.

    14. Re:depends on what you're going into by locopuyo · · Score: 2

      I have a BA in CS and I took some advanced calculus and linear algebra classes. I've done game development, desktop application development, and web development. The only time I've ever had to use any advanced math was when doing game development.
      Even when doing graphics programming most of the fancy math is already handled through frameworks. You don't actually need to know how to do vector calculations when you can simply call Vector.Add. It obviously helps to know of their existence and what they are used for, but I don't think you would actually need to take a class for that information.

    15. Re:depends on what you're going into by phantomfive · · Score: 2

      Advanced calculus/linear algebra is a must for game engine development. I try to read articles about rotating 3D objects.

      FWIW I took a linear algebra class and a 3D graphics class. There was about 1 class period of linear algebra that was relevant to game development. The Linear Algebra necessary for game development can be learned in a day if you're willing to apply yourself.

      --
      "First they came for the slanderers and i said nothing."
    16. Re:depends on what you're going into by Anonymous Coward · · Score: 5, Informative

      Differential equations - control theory and anything that brings you in contact with engineers (or if you want to work in finance)
      Linear algebra - signal processing, computer graphics (don't even think about doing computer graphics without knowing linear algebra)
      Logic - system modeling and software verification, and basically everything else
      Calculus, discrete mathematics - high performance computing, simulation, communication, anything that brings you in contact with physicists

    17. Re:depends on what you're going into by elfprince13 · · Score: 4, Insightful

      Also, if you're doing any serious work in algorithms, a strong understanding of proof techniques and discrete math is a must.

    18. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      You may not be using “hard-core” math, but you are using problem solving, abstract thinking, logical thinking, and algorithmic skills that are developed by studying math.

    19. Re:depends on what you're going into by Dcnjoe60 · · Score: 2

      if you're going into app development or IT, probably not much math needed. i've been in app dev for a long time (and quite successful). Those times that i actually need math? I just look it up, program it, then forget it. I never have needed much math.

      However, if you're going into some CS field that requires math, well, obviously, it's worth your while to study it.

      I think that was the point of the query here, exactly what fields remain today that require the level of math that is (rather arcanely) still infused within a CS degree?

      I fell into this same trap when initially pursuing my degree. Avoiding all the advance math requirements due to my own hatred of it, I was facing three separate tracks of nothing but I/II/III math courses, which were obviously best taken in succession. It was going to take me way too long to accomplish this (while going stir-crazy on nothing but math), so I ended up switching to the MIS path, which didn't have the absurd math requirement.

      The reality is that many people go the CS route because they are told that is where the jobs are, but most of those jobs are in corporate america. A better route for corporate america is a business administration degree with a minor in computer science or even just some programming classes. The traditional Computer Science major is more akin to an engineering degree than anything else. Nobody gets an electrical engineering degree for the purpose of becoming an electrician, that would be overkill. Likewise, a CS degree for the purpose of becoming a corporate programmer is overkill.

      When I used to work for a large Fortune 100 company, we very often pulled employees from operations and taught them to program. It was much simpler than taking programmers and teaching them the business and business culture. I always encourage business majors to pick up extra computer classes and computer majors to pick up business classes. Unless you are going to work for clandestine government organizations or one of the giant software companies, you will get much further in your career being average with a mixture of those skills than being great with only one or the other.

    20. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      No it's not. I have a History degree, CS minor, and an MPA and I manage a team of SAS programmers doing marketing ETL.

      In fact, out of my entire team, only one of us has a degree in any way related to math (MS in Biostats).

      It's not that I don't find people w/those skills important, I do; it's just that it's not necessary to have them to do BI or data mining.

      You just need an analytical mindset and the ability to learn to code in SAS or R.

    21. Re:depends on what you're going into by Dcnjoe60 · · Score: 1

      It was going to take me way too long to accomplish this (while going stir-crazy on nothing but math), so I ended up switching to the MIS path, which didn't have the absurd math requirement.

      This. My state U had two different paths to a CS degree, BSc and BBA. The former required calculus, which I tried three times and failed three times before I realized it just wasn't going to happen*. Switched to the BBA which required a couple of accounting and marketing courses I never used, but at least I was able to get that piece of paper saying I know how to write computer programs.

      Sadly, they were still pushing COBOL as the pinnacle of software development and by the time I was out looking for a job, it was all PCs.

      * It may have turned out differently if I actually read the lessons and did the homework and stayed awake in class, but at 19 I was an idiot.

      Too bad, COBOL programmers are still in high demand in the finance and banking industry along with government, particularly as the baby boomers start to retire.

    22. Re:depends on what you're going into by lgw · · Score: 1

      For business software or the layers under it (infrastructure, kernel, DB internals, etc) you're not going to need advanced math, except very problem-specific math for special cases. What's overwhelmingly important is that your quite comfortable with arbitrary symbol manipulation as a tool to manipulate abstractions of a problem in a way that you can trust that the result solves the problem.

      I strongly recommend the first year of calculus because of this. It teaches you a different view of symbolic algebra - not just how to use an equation as a tool to solve a problem, but how to view an equation as an abstract object that can be manipulated by a set of rules to solve a problem.

      This sequence is most programming: real world problem -> create abstraction of relevant parts of problem -> manipulate abstraction -> solve problem. Calculus forces you to take that on in purely abstract terms, which really helps develop the right mental muscles.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    23. Re:depends on what you're going into by RabidReindeer · · Score: 1

      Specialized computer technologies often require some form of advanced math, which can be anything from statistics all the way up to tensor analysis.

      However, if your goal in life is to develop webapps and payroll systems, these disciplines are useful:

      1. Algebra. Because you aren't going to be able to do squat with symbolic arithmetic without a thorough knowledge of algebra.
      2. Differential calculus. Not so much for the differential equations as for the concepts of functions, domains and ranges that underlie the structure of most common programming languages.
      3. Symbolic logic. Because it's basically "algebra for booleans". There is a particular sub-domain known as the Calculus of Propositions that has been immense help to me, but I don't think that it's all that common.

      In actuality in my state, Calculus 1 (differential) and 2 (integral) are requirements that I'm not even sure that the football majors can avoid. Calc 1, is useful for CS, as I said, but I did very poorly in Calc 2 because it had been several years since high school trig and I had completely forgotten that there was such as thing as a "trigonometric identity", much less how to employ them. That's even sadder, since before I got into programming, I was big on geometric and trigonometric proofs. Which, themselves are symbolic manipulation disciplines. But it shows exactly how much practical use I'd had for them in the intervening years working as a professional developer.

    24. Re:depends on what you're going into by thomasw_lrd · · Score: 4, Funny

      Almost all of Linear Algebra can be learned in a day, if you're willing to apply yourself. At least that's how my Linear Algebra was, but then again, the Prof said it was pretty dumbed down. So go figure what I know.

    25. Re:depends on what you're going into by Doghouse13 · · Score: 1

      Spot on. If the software you're going to work on needs to do maths, you need to understand maths. If it doesn't, you probably don't.

      I have a degree in mathematics. I was a commercial programmer for a decade and a software tester for some of IBM's (seriously complex) flagship mainframe software for another two decades, During that time I can't honestly say I ever directly used a single thing from my degree. Nor even were many of the people I worked with, mathematicians - sure, we had a fair sprinkling of them, but quite a lot of people from completely different disciplines as well (including several historians, for some reason - feel free to insert obligatory "fossil" jokes now, by all means). What everyone unquestionably did make use of were the discipline and ability to think critically that we picked up whilst studying.

    26. Re:depends on what you're going into by NReitzel · · Score: 5, Insightful

      The bottom line is very simple. If you have the math - and I'm talking diffeq and applied mechanics and dynamics - you will get jobs that others cannot. And strangely enough, those jobs pay very, very well.

      Just like everyone else says, if you're content being a web programmer at a medium--to-ok salary, then forget the math.

      If you want a job writing control code for F22's, at a salary that can make your head spin, then consider the math as supremely important.

      --

      Don't take life too seriously; it isn't permanent.

    27. Re:depends on what you're going into by narcc · · Score: 1

      GoF is, well, worse that nonsense. (Ask Dijkstra) I have no idea why people treat that waste of time like the damn bible. (This is to say nothing of the many, many, problems that terrible tome as caused!) Closures? No one cared about them for years, despite how long the concept as been around. Their use in mainstream languages is extremely limited (in terms of utility). They're best avoided -- even in languages like Javascript. Take a look around. You'll find most people don't understand them, often confusing them with anonymous functions! Functional programming is a bit of a fad right now, which has spawned this recent ridiculous interest in closures. It'll pass, just like the last time, and for the same reasons.

      On topic, the parent is studying computer science, where math is essential. CS is math, after all. Quoting Fellows & Parberry:

      Computer science is no more about computers than astronomy is about telescopes, biology about microscopes, or chemistry about beakers and test tubes.

      See, the parent (for reasons beyond my comprehension) wants to write software for a living. He clearly has no interest in CS. This confusion isn't necessarily his fault as CS programs have been turning in to trade schools at an alarming rate.

    28. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      if you're going into app development or IT, probably not much math needed. i've been in app dev for a long time (and quite successful). Those times that i actually need math? I just look it up, program it, then forget it. I never have needed much math.

      However, if you're going into some CS field that requires math, well, obviously, it's worth your while to study it.

      I started with card punch. Other than working with different bases (2, 4, 8, 16...) and basic algebra, never had to deal with hardcore math. The most important skill to develop, with ANY discipline, is COMMUNICATION. This is the single most valuable commodity. Few people can do it, and the ones who know how win. Focus on learning how to write with correct grammar and spelling. You may think it doesn't matter, but it does. As others here have stated, if you're programming, all you need to do is write an algorithm once, then save it to your library. Logic is also priceless. Good luck.

    29. Re:depends on what you're going into by drstevep · · Score: 5, Insightful

      Bullshit. You want to develop game engines, you have to know how to move things around. You have to know how to create a world. You have to understand what your team is doing, and understand it at a gut level. This isn't rendering, this is creating a world.

      So learn your math well. It will give you an additional layer of depth that will differentiate you from those who don't.

      Disclaimer: I just coded up some low-precision trig operations. I'm generating some simulated waves in the world I'm creating. Costing hundreds of trig calls per frame, and figure 50 frames per second... My routines are around 3 to 5 times faster than system calls, you want to look up that hundreds per frame at 50 fps again? It means I have a lot more CPU available for other tasks. Math. Taylor series. Error analysis. Makes me the person that gets hired instead of the one that gets passed over.

    30. Re:depends on what you're going into by samkass · · Score: 1

      DiffEq is probably the least-necessary of the "advanced" math courses in a CS career. Most of the people who use it are primarily mathematicians in their job for which CS is a bonus. For everyone else, in the (very) rare case where you need it, look it up.

      Combinatorics ("Discrete Math", "Modern Math") is extremely useful in all sorts of estimations and algorithmic design ("Balls in boxes === How big does a hash table have to be for this data"). Linear algebra is critical in games, graphics, pattern recognition, or any significant computational field. Statistics is incredibly useful in both professional and day-to-day understanding of the world. These three are the ones I'd focus on.

      --
      E pluribus unum
    31. Re:depends on what you're going into by drstevep · · Score: 1

      Look it up, program it, forget it, and leave it for someone else to fix the bugs because you didn't understand it...

    32. Re:depends on what you're going into by Machtyn · · Score: 2

      Yep, stats is important. But stats isn't diff. eq. Once you understand differential equations, they're really cool! Unfortunately, I'm in the same boat as the author of the question, I was a B- at very best on the advanced maths. Linear Algebra was also very cool. I can completely see where it applies to computer calculation optimization, geometric calculations and a bunch of other things. But, again, I couldn't follow the process very well while in the class and certainly not now.

      But stats... no matter what field you get into, even if it isn't an engineering (or pseudo-engineering), stats will come up.

    33. Re:depends on what you're going into by SCHecklerX · · Score: 2

      Or satellite orbital mechanics. Oddly enough, way back when, I had my AHA!!! moment in how to do 3d computer graphics (it was a hobby, this was in the time of future crew, renaissance, etc) when I took a spaceflight dynamics class. Yup, rotating and translating, to include 3d equations of motion and acceleration for spaceflight are EXACTLY the same thing you do to render the stuff on a computer (except you have to add the perspective, 2d screen and all that).

    34. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      If you're not going to need much math, you proabably don't need a CS degree either.

      In an ideal world, yes - but we live in the real world, alas, where a CS is a generic degree meaning you're suitable for everything from low level tech support to developing a kernel in your spare time.

    35. Re:depends on what you're going into by drstevep · · Score: 1

      Did the math... around 100K trig calls per frame. Maybe a few thousand points, but each calculated the intersection of multiple phased waves. And my code was faster than a table lookup!

    36. Re:depends on what you're going into by ewanm89 · · Score: 1

      Actually it is programming that is the specialisation of mathematics the specialisation is called discrete mathematics.

      Any 3D Game Engine will include graphics rendering as part of it, as well as audio decompression. Admittedly they will try and leverage premade libraries and the gpu but someone still needs to write the shaders and write the code to pass the correct commands to the gpu as to how to render and update the polygons.

      The only thing you correctly stated was that game engine development is only one possible career path with a C.S. degree.

    37. Re:depends on what you're going into by Fallon · · Score: 1, Informative

      I had this discussion with some developers at my previous job, and their consensus was they didn't really use all that much advanced math compared to what is required on most college degrees. These developers were writing satellite simulation software & dealing with orbital mechanics... I tend to think that colleges require advanced math to make things hard & because it's advanced, not for practical reasons for 90% of their students. Yet another reason college tuition is skyrocketing & a degree is loosing value compared to more specific certs.

    38. Re:depends on what you're going into by TWiTfan · · Score: 1

      You will if you don't want HR to toss your resume into the trash.

      --
      The cow says "Moo." The dog says "Woof." The Timothy says "Thanks, valued customer. We appreciate your input."
    39. Re:depends on what you're going into by Bob+the+Super+Hamste · · Score: 4, Informative

      Too true. I just finished working 5 hours on a proof with another guy in the office to show that something had complete coverage of the state space, will always produce the correct output for all inputs. Now it is time to code once I finish my lunch. Granted some of that time was spent simplifying the final solution. I use higher math almost every day, granted it ins't diffeq, but I often use linear algebra, boolean algebra, discrete math, and proofs (the non shapes part of geometry). I don't use calculus or stats in my current line of work but in my previous job stats was a big part of it writing insurance code.

      --
      Time to offend someone
    40. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      I wish I knew this after getting my comp sci degree ten years ago. Like OP, I struggled with the advanced maths, and now I hate my field. In fact I am going back to college to get a second degree in biology to go into my real passion, the natural sciences.

    41. Re:depends on what you're going into by afidel · · Score: 1

      I also failed Calc I three times in a row, but the first and last time it wasn't from failure to attempt to do the work. I took it at two different engineering schools and the course was taught by hardcore math guys in a large lecture hall. I then took it at a local community college with an adjunct professor in a class of 15 students and her approach finally made it click. I eventually made it through diff eq, but without someone who could actually teach I probably never would have been able to grasp it. I still remember one of the problems from my Calc II final, given a perfectly efficient pump of HP x and a cylindrical container of dimensions x and y filled to height z how long would it take to drain to level z-b. It sticks out in my mind because it was probably the most real world problem I ever encountered in an advanced math class =)

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    42. Re:depends on what you're going into by vtcodger · · Score: 1

      I'd say this is mostly a marketing issue, not a knowledge issue. In 50 years including a number of years working on missiles and satellites, I really never needed to know much beyond trigonometry and algebra. The occasional (and they were rare) forays into linear algebra (for non-mathematicians that's using matrices to solve systems of linear equations). and statistics were stuff I could look up if I knew where to look which I did. I'd venture to say that operating systems programmers, database programmers, etc probably don't need any math they didn't know when they were eleven.

      But there is a problem with selling yourself. Your problem is how to do that.

      On the bright side. I didn't come close to understanding calculus. For the most part I still don't understand calculus beyond a vague idea of what it is trying to do -- at least not integral calculus. But I discovered early on that most of the budding engineers and scientists in my classes didn't understand the subject any better than I did. So I managed to squeak out Cs.

      Not only have I never needed integral calculus, no one has ever asked me what sort of grades I got in any of my classes.

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    43. Re:depends on what you're going into by tnk1 · · Score: 2, Insightful

      University requires advanced math for CS for the sole reason of preparing the CS student for Graduate level Computer Science. CS that remains in the academic world will have a lot more options where advanced math is useful or even critical.

      University have a few indicators of how "good" they are. In addition to their undergraduate job placement, their graduate program admittance is also very important to them. Since advanced math isn't going to hurt anyone in job placement, but it's lack can keep you from getting into grad programs and research intensive projects, they make you take the advanced math.

      For a normal business programmer, advanced math comes down to something that might be useful to know if you are working in some field that is particularly numbers intensive, and there are many that are. Still, most generic business stuff these days is just how fast you can read and write data to a database and then presentation. You will get much more out of knowing the tools, the library functions, and the intricacies of the language you are developing in than you will with math. Your CS degree is simply a straight ticket into your first job. As long as you get about 2-3 years of actual experience, a CS degree starts becoming more and more optional.

      Long story short, you can be an excellent developer without advanced math. As part of the CS program, you have to understand that it is there because it is a one-size-fits-all path for you to get an advanced degree. Universities are not really vocational institutions, they expect you to be an academic at heart, so they expect a deep level of interest in the field and the default assumption is that you are preparing to be an advanced student.

    44. Re:depends on what you're going into by phyzicist · · Score: 1

      Mathematics, itself, is a form of programming.

      Sorry, fellow slashdotter, but I couldn't let this one slide. Is physics then a mere specialization of engineering?

      Mathematics seeks to be descriptive of universal truths. An integer, for example, is a mathematical concept, not an algorithm. Algorithms are a part of both math and programming, but math is not programming.

    45. Re:depends on what you're going into by njnnja · · Score: 1

      This. I actually wrote the other day (in response to the "How did you learn to program" article:

      I grew up with "programming" on the C64 too, and it is funny that it did not seem to help very much when learning to code for real. However, my undergraduate degree is in pure math (not statistics or discrete/applied math) and it's funny that the kinds of things that I learned on that C64 helped me tremendously in mathematics.

      There is a unique blend of creativity and rigor that is very similar when you write a program or write a proof, that you need when you look at the blinking cursor at the top of a blank screen, or a sheet of paper that begins with "Thm:" and ends with a lonely "Prf:". You need to be able to connect what you know, and the tools that are available to you, and have some inkling as to how they might reach the goal at the end. Sometimes it is as simple as unpacking some definitions, or just plumbing together some libraries, but the tough/fun part is when you need to figure out some non-obvious trick that will get you to the other side. And once you have that insight, you are not done; both require a great deal of rigor, such as covering all possible conditions of a conditional branching structure, or making sure that counters and loops start at 0 and go to n (or is that 1 and n+1? :) ).

      Now I work with statistics, and although the work deals with many more numbers, and most people would say that it really is "math," it really doesn't feel the same as the math I did at school except when I have to create some interesting data structure or use some optimization trick to get everything to fit into memory. And those neat coding exercises are more like "math" to me than a bunch of numbers coming out of some numerical method.

      Your description of "arbitrary symbol manipulation as a tool to manipulate abstractions of a problem in a way that you can trust that the result solves the problem" is a much better way of saying what I was trying to say. If you can't think through several layers of abstraction into a problem you are going to have a difficult time contributing towards large software projects. Mathematics teaches you rigorous symbol manipulation and abstract thinking at multiple levels in a way that many other disciplines do not.

    46. Re:depends on what you're going into by fahrbot-bot · · Score: 5, Insightful

      Even when doing graphics programming most of the fancy math is already handled through frameworks. You don't actually need to know how to do vector calculations...

      Unless you want to actually work *on* those frameworks... Someone has to develop/maintain the tools the rest of us simply use.

      --
      It must have been something you assimilated. . . .
    47. Re: depends on what you're going into by Anonymous Coward · · Score: 2, Informative

      It is impossible to write code for orbital mechanics if you don't know math. These guys may just have a different notion of what advanced math is. I don't consider differential equations advanced math. Advanced math is stuff like Hilbert spaces and topology. Differential equations are practically physics

    48. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      Are you new? Christ web dev kids are toxic.

    49. Re:depends on what you're going into by Dishevel · · Score: 1

      Interestingly enough knowing COBOL well now can earn you a a boatload of cash supporting systems that have been running forever and can not be taken down.

      --
      Why is it so hard to only have politicians for a few years, then have them go away?
    50. Re:depends on what you're going into by Randle_Revar · · Score: 1

      Of course the math/F22 job will pay better, but personally I consider web programmer salary more than "medium-to-ok". My brother is a web app programmer, first in C#, now in Ruby, and I sure would like his salary. Granted I am just an IT tech, but even when I move up to a more sysadmin position (soon, hopefully), I don't expect to match his current range for *quite* some time.

    51. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      When is the last time you encountered a real-world situation that was anything like a timed advanced mathematics test?

      "Okay, you have one hour to solve these problems, and you can't look anything up or ask for any help!" said my boss.

      Barring some McGuyver trapped-alone-in-a-jail-cell-with-a-ticking-bomb, you will never in your life encounter anything resembling such a scenario outside a classroom. And it's just that scenario which keeps a lot of great programmers from ever getting their CS degree. I'm a great programmer, but my mind isn't fast with math. Give me an untimed test, and I'll do pretty good. Allow me to look up basic formulas and I'll do even better. Put me in an artificial situation of a timed test with no reference materials--and I'll fail any math test beyond basic Calculus.

    52. Re:depends on what you're going into by tibit · · Score: 3, Interesting

      Yeah, and for this you need not only math, but an intuitive understanding of modern computer architecture. You've discovered, as many previously have as well, that memory is much slower than most computation. Doing a few adds and multiplies is almost always faster than pulling in a fresh cache line. This especially if your lookup table access is sparse and you're paying the penalty of fetching an entire cache line just to look up one number (a float is just 1/16th of a cache line). Sparse table lookup of floats generates 16x higher memory bandwidth that what one may naively expect.

      Memory is slow. Adders and multipliers are pretty damn fast. You're also possibly reinventing the wheel :)

      --
      A successful API design takes a mixture of software design and pedagogy.
    53. Re:depends on what you're going into by wisnoskij · · Score: 2

      I think I disagree. The point ot Math in CS is not to memorize a bunch of formulas that you might use in a program, or even to be able to derive a few yourself. The point of Math in CS is that CS is Math and Math is CS, every aspect of CS is governed by Math that you should understand. On their surface there does not seem to be much Math on a banking app, but it is there. Encryption, efficiency, performance, and just CS in general is all Math.

      --
      Troll is not a replacement for I disagree.
    54. Re:depends on what you're going into by tibit · · Score: 1

      Functional programming is a bit of a fad right now

      Functional programming's main benefit is that it's much easier to prove theorems about functional programming code. If you want a hard-core mathematical proof that your code fulfills certain post-conditions etc., there's a large body of knowledge about how to go about it when the problem is posed in a functional programming language. Doing it to an otherwise unconstrained piece of C code is much harder.

      --
      A successful API design takes a mixture of software design and pedagogy.
    55. Re:depends on what you're going into by tibit · · Score: 1

      given a perfectly efficient pump of HP x and a cylindrical container of dimensions x and y filled to height z how long would it take to drain to level z-b

      Interesting - that's the kind of stuff the brighter students at my high school were expected to be able to do in grade 11 :/

      --
      A successful API design takes a mixture of software design and pedagogy.
    56. Re:depends on what you're going into by Ultracrepidarian · · Score: 1

      So, do they understand it now, or just trust their "gut".

    57. Re:depends on what you're going into by Alsee · · Score: 1

      Skip the Differential Equations. There is virtually zero chance you'll ever see any use for Differential Equations in programming.

      As the parent post suggested, Discrete Math. Take any and all the Discrete Math you can get. Discrete Math will teach you to be a better programmer.

      Discrete Math nothing like "crazy advanced ugly math" like Differential Equations and Calculus. Discrete Math is stuff like Information theory, Logic, Set theory, Combinatorics, Graph theory, Game Theory, etc. Discrete Math will teach you concepts and techniques that are valuable for designing algorithms and handling data. This is Core Programming material.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    58. Re:depends on what you're going into by tibit · · Score: 1

      Discrete problems are often approximations of some continuous problems, and the continuous problems may be easier to pose or easier to make proofs about. So, here comes one of my favorite Feynman stories:

      The router of the Connection Machine was the part of the hardware that allowed the processors to communicate. It was a complicated device; by comparison, the processors themselves were simple. Connecting a separate communication wire between each pair of processors was impractical since a million processors would require 1E12 wires. Instead, we planned to connect the processors in a 20-dimensional hypercube so that each processor would only need to talk to 20 others directly. Because many processors had to communicate simultaneously, many messages would contend for the same wires. The router's job was to find a free path through this 20-dimensional traffic jam or, if it couldn't, to hold onto the message in a buffer until a path became free. Our question to Richard Feynman was whether we had allowed enough buffers for the router to operate efficiently.

      During those first few months, Richard began studying the router circuit diagrams as if they were objects of nature. He was willing to listen to explanations of how and why things worked, but fundamentally he preferred to figure out everything himself by simulating the action of each of the circuits with pencil and paper.

      [...]

      By the end of that summer of 1983, Richard had completed his analysis of the behavior of the router, and much to our surprise and amusement, he presented his answer in the form of a set of partial differential equations. To a physicist this may seem natural, but to a computer designer, treating a set of boolean circuits as a continuous, differentiable system is a bit strange. Feynman's router equations were in terms of variables representing continuous quantities such as "the average number of 1 bits in a message address." I was much more accustomed to seeing analysis in terms of inductive proof and case analysis than taking the derivative of "the number of 1's" with respect to time. Our discrete analysis said we needed seven buffers per chip; Feynman's equations suggested that we only needed five. We decided to play it safe and ignore Feynman.

      The decision to ignore Feynman's analysis was made in September, but by next spring we were up against a wall. The chips that we had designed were slightly too big to manufacture and the only way to solve the problem was to cut the number of buffers per chip back to five. Since Feynman's equations claimed we could do this safely, his unconventional methods of analysis started looking better and better to us. We decided to go ahead and make the chips with the smaller number of buffers.

      Fortunately, he was right. When we put together the chips the machine worked. The first program run on the machine in April of 1985 was Conway's game of Life.

      --
      A successful API design takes a mixture of software design and pedagogy.
    59. Re:depends on what you're going into by DuckDodgers · · Score: 3, Insightful

      In general, advanced mathematical topics require you to grapple with abstract concepts and find connections between them, and link them together in ways to accomplish tasks. Any interesting software development (i.e, work that is not "change the color of the login button and move it 7 pixels left") uses the exact same kind of abstract thinking.

      So even if you never do multi-variable calculus or ring theory proofs or topology exercises at your job, any time you spend learning those things hones skills you will use at your job.

    60. Re:depends on what you're going into by Ultracrepidarian · · Score: 1

      Or new pontoons for Washington's 520 floating bridge.

    61. Re:depends on what you're going into by mattack2 · · Score: 1, Funny

      If you're developing business software you're going to need stats. It's inevitably going to rear it's ugly head sooner or later.

      Apparently you don't need to learn grammar.

    62. Re:depends on what you're going into by DuckDodgers · · Score: 1

      Functional programming may be getting more hype than it deserves, but it may not. Most functional programming languages have some aspect of the following three very useful features:

      1. A focus on using immutable data objects. In functional languages most functions don't change their input objects, they construct a new output. That lets you reason more easily about your program - if x is 5 in the current scope, it's staying 5, period, and you don't have to worry that you're using it after some other part of your program changed it to 42.
      2. A focus on functions with referential transparency - the outputs depend upon the inputs, period, and global state is irrelevant. This makes reasoning about functions, testing functions, and especially re-using functions simpler.
      3. Simple syntax for working with higher order functions, lambda functions, partially applied functions, and function currying. You can pass around a function pointer in C or use java.lang.reflect.Methods in Java or anonymous classes, but it's a much heavier syntax for accomplishing some of the same things and the logic of what you are trying to do with the code gets obscured by noisy syntax.

      I'm not sure if this means most of us will be using Lisp/Scheme/Haskell/F#/Scala/Clojure in ten years, but I do think some of the swing in this direction is valid, even if it just teaches run of the mill Java, C#, Perl, Python, PHP, etc... developers to use immutable data structures and referentially transparent functions more often.

    63. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      Linear algebra - signal processing, computer graphics (don't even think about doing computer graphics without knowing linear algebra)

      A little bit of group/ring theory wouldn't hurt, either. In fact, you can think of linear algebra and logic as specialized forms of group theory. It may seem redundant, but you'll come to notice that sometimes a "difficult" problem is one that has already been solved using a different vocabulary.

    64. Re:depends on what you're going into by VortexCortex · · Score: 4, Insightful

      Game Engine development has nothing to do with Mathematics.

      I'm just going to call you out on this complete and utter bullshit statement. Tell me, how do you best classify assets that exist in three intersecting sets: stored on disk, loaded in memory, and available for rendering (in the GPU)? Keep in mind we would like to minimize cache misses. Even a moderately heavy statistics / logistics calculation in the asset manager is beneficial if it reduces the occurrence of expensive cache misses slightly. Furthermore you pigeon hole ENGINE DEVELOPMENT by saying its not about all those other things that it actually is about. For instance, I wrote my own PKI encryption library so that modders can sign their game mods and I can sign our game updates, and everyone can use decentralized distribution while players can trust the source. That doesn't come bundled in a box with a bow, neither does tweaking the sound or image / video compression algorithms to be less generalized and more targeted to the content you're delivering. FFT's and frequency domains aren't rocket science. Physics IS Mathematics, allowed error bars and instability propagation limiting, the whole damn thing, it all benefits from some higher mathematics -- It's not "just programming". Parallelism is CORE to engine design. Where to draw the lines and segment the engine matters A LOT, and you can use mathematics to inform the decision instead of just wasting time guessing and checking, like a blind person in an orgy.

      "No, Advanced Mathematics is not required," bullshit. First off: Define "Advanced". Secondly, CS is not just Programming. Third, learning a bit of higher math is really useful and actually not hard to grasp, especially if you have a game engine to work with -- The most advanced graphing calculator in the world: You can make visual graphs that plot equations and react to the inputs real time. That really helped me teach myself this stuff. Want to combat power creep or balance your enemy / weapon strengths? Ensure your platformer difficulty follows pacing well? Guess what? Break out the statistics, buddy. Even that high level "game designing" -- most removed from the engine development -- benefits from mathematics. Getting past the disconnect between the cryptic symbolics of mathematics and being able to convert them into the more verbose and simple source code is a skill worth an infinite amount its weight in gold. If you can't do that, then hit the books. Once you can do that, then the scales will fall from your eyes and the gameworld will truly become your playground.

    65. Re:depends on what you're going into by bennomatic · · Score: 2

      I'm somewhat of the mindset that deep understanding helps developers apply the tools more intelligently. Without understanding the underlying math, some of the work would be trial and error, and while that might lead to a working system, it might have very difficult to debug problems based on poor logic. To use a metaphor, you can certainly build a bridge, given the right tools and equipment, but without math, it might fail suddenly and catastrophically at an unpredictable moment. I'm thinking of that famous wind-wave bridge collapse you've probably seen on YouTube.

      Some may call that mindset pedantic, but I think deep understanding separates the experts and artisans from the low end technicians. Some of that deep understanding can be gotten on the job, but there is something to be said for a formal mathematics training if you're going to be using advanced mathematics tools.

      --
      The CB App. What's your 20?
    66. Re:depends on what you're going into by Em+Adespoton · · Score: 1

      I think what this thread is missing is that Computer Science and Computer Programming are not the same thing; if your college/university only has a BSc degree in CompSci and no BA/BASc/etc., then maybe you need to try for a different degree if you don't want/need the maths.

      If you graduate with your Computer Science degree, people will expect you to know the maths behind the computers, and understand how the system works, from building state machines to optimizing data sorting algorithms. Programmers who have this knowledge have a leg up on people who just know that if they tell the compiler to use certain libraries in certain combinations, a certain result will occur; it's like being able to create your own recipe from scratch vs. being able to use a recipe to create a good meal.

      That said, ask your faculty regarding the required courses -- when I went to university, we challenged the faculty on some of the maths requirements, and the result was that the next semester, those courses were no longer required. I'd already taken them, but hey... future years didn't have to. And surprisingly, I find I still use those maths skills today (although not for writing software).

    67. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      I used to be a surveyor, programmed an HP33e to calculate all of my radial spin-outs, curb and gutter and utilities stake-outs.
      Spent another seven years building GIS systems and learned how to let the software do the work for me.
      I've been building business software for the past 15+ years and, aside from an entrance exam to graduate school (which I aced ftw), I have not had to get within spitting distance of any math more complicated than add/sub/div/mul/mod. Plenty of SQL that could blow your head apart but really, very very little math

      Matter of fact, one of the better programmers that I have worked with had his BS is Business, so you may go that way and never take anything tougher that stats, which isn't saying much because it is just jamming on a calculator these days

    68. Re:depends on what you're going into by greg1104 · · Score: 3, Interesting

      Skills for game development are fun, but the at best 1% of the software development market they represent is not something a budding programmer should worry about too much.

      Getting a CS degree involves a number of things that aren't just software development. Part of the reason degrees are considered valuable is because they prove people are willing to stick to the end of a project even if there are parts that are difficult for them. Almost everyone has something in a solid degree program that's hard for them. I breezed through math but struggled with chemistry. Sucked it up and worked through the parts that didn't come easy, because that's part of what degree programs are supposed to be about.

    69. Re:depends on what you're going into by will_die · · Score: 1

      Use to do that stuff but with satellites and no math was not really needed above basic algebra. The reason were there were people with advanced math skills and a specific team that just did all the funcations and procedures for math.
      That area is so tested it is a hassle, on another project, again with a lot of math but specific people for that, we were writing the software in Java but the libraries were in another language it was easier to link to that other language then to rewrite and get them recertified.

    70. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      If you want to make your mark in geometric modeling, be prepared to tackle this. The list was not meant to be exhaustive, just a glimpse of applications that make some of the mathematical disciplines useful which aren't usually associated with computer science. There's no way around statistics, combinatorics or graph theory either. If you're not using math, you're not doing computer science.

    71. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      I know people who do / did write F-22 code. They don't make that much, but they are a lot better off than the piles of business app development folks that work at the same company.

      As far as the CS degree is concerned, the math is what makes me respect the CS degree. You may not use it, but passing it shows me you have the intellect and determination needed to do so. Without it you might as well be an art history major.

    72. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      3D object rotation is more or less just matrix multiplication. I wouldn't really consider that advanced math... come talk to me when vector calc and diffeqs get involved.

    73. Re:depends on what you're going into by PRMan · · Score: 1

      And the best games are typically built on top of someone else's engine. Look at Arkham City, said by many to be the best game of all time. They used off the shelf engines for the 3D world, sound, even physics. But they added a great writer, great voice actors and a ton of cool-looking fighting moves and an open world and made it a truly great game. None of the things that differentiated Arkham City required diff eq. If you love that stuff, great. There's a (high-paying) job for you. If not, suffer through and then come and join us (in a slightly-lower but still high-paying job). You know, the people that haven't used Calculus once since university.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    74. Re:depends on what you're going into by stanlyb · · Score: 2

      And then you wonder why there are so many H1-B with CS and advanced math......

    75. Re:depends on what you're going into by gr8_phk · · Score: 2

      Almost all of Linear Algebra can be learned in a day, if you're willing to apply yourself.

      WTF? Matrix multiplication can be learned in a day. How about geometric transforms, diagonalization, basis vectors, eigen values, etc... Sure I can refresh my memory on ALL of those and more in an hour or two, but to learn it the first time is not a one day task.

      Read the AMS article on PageRank and tell me how someone could grok that after studying linear algebra for one day.

    76. Re: depends on what you're going into by Anonymous Coward · · Score: 0

      "It is impossible to write code for orbital mechanics if you don't know math."...

      or ADA :)

    77. Re:depends on what you're going into by emt377 · · Score: 3, Insightful

      I strongly recommend the first year of calculus because of this. It teaches you a different view of symbolic algebra - not just how to use an equation as a tool to solve a problem, but how to view an equation as an abstract object that can be manipulated by a set of rules to solve a problem.

      I think the usefulness of calculus is even more basic than this - it teaches the student to think in terms of change. And since everything is always in a changing state it's a pretty basic low hanging fruit when it comes to training practical everyday intelligence. It's not advanced math... It's pretty basic thinking skills. The notation can be daunting, admittedly, but there's no way of discussing these abstract concepts in plain english.

      Any work with discrete samples deals with approximations. Calculus expresses the real thing. For instance, to understand the difference between adding samples and integration, where integration is the perfect solution and accumulation an approximation, requires understanding the concept of integration. In many cases feedback loops are created either explicitly or implicitly when code makes use of previous calculations (recursion in the mathematical sense), and understanding control theory gives a gut feel for when these are likely a risk and need damping. Control theory deals with recursive change, and without understanding change there's no understanding of control theory. IMO good education teaches understanding, and someone with an academical degree needs an understanding beyond plugging numbers into formulas.

      Calculus is hard because we have no natural senses that express the world that way. It's typically the first exposure a student has to considering reality in a way that's orthogonal to their natural human senses. It's hard because it's different and it is a challenge, no doubt about it. It takes everyone a while to get it, but then the next abstraction will be easier (often linear algebra).

    78. Re:depends on what you're going into by jafac · · Score: 1

      True; but STILL . . . I went for a few years coding without really having much of a need for math beyond Algebra. Then I started getting into some interesting projects. I had to force myself to learn calculus. (realizing that: - a lot of basic calculus is already embodied in programming structures - it's just expressed differently in mathematics. Already having a background in programming gave me an insight to calculus that made it a LOT easier to understand, than when I struggled with pre-calc in High School).

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    79. Re:depends on what you're going into by narcc · · Score: 1

      I should probably point out that my intent wasn't to attack functional languages. Also, I feel the need to mention that points 1, 2, and 3 aren't in any way restricted to functional languages.

      Anyhow, my point wasn't that functional programming is bad, just that it's currently a fad. (Not a new one, of course, we've been down this road before.) In general, functional languages are really neat, but terribly impractical. Closures are all the rage right now (a result of the current functional hype) even though they're poorly understood, difficult to read / identify (in many modern languages, that is) and have extremely limited utility. To call them essential, particularly in this case, is more than a little silly!

      Just for fun: If you want to see a really neat functional language, check out Joy. It's a purely functional language, but it's not based on lambda calculus. It's very cool.

    80. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      As one educator said (sorry, can't remember who): "We are very good at teaching kids how to add, subtract, multiply and divide. We are very bad at teaching them why they need to add, subtract, multiply, and divide."

    81. Re:depends on what you're going into by jandar · · Score: 1

      You are sure you could write flawless in the native language of mattack2?

    82. Re:depends on what you're going into by lightknight · · Score: 1

      Hmm, this is a tough one. See, the math you are usually going to use in CS on a daily basis is not going to be using actual numbers, which is where things get tricky...as some of the engineers / mathematicians / other scientists will occasionally point out, you reach a level where you stop using real numbers, and start using symbols (variables)....similar idea with Computer Science on a basic programming basis -> when you are trying to determine whether this old algorithm needs to be replaced (i.e. do I need to focus on this, or should I leave it because it isn't worth it), you are, essentially, integrating in your head the performance, and having had experience with Calculus, can make the right judgement call. Linear algebra lends itself to programming, again, on a basic level, as, at times, you are adjusting several equations at the same time, if not solving all of them simultaneously.

      --
      I am John Hurt.
    83. Re:depends on what you're going into by jandar · · Score: 1

      I couldn't even cut&paste the right user ;-). I meant Machtyn.

    84. Re:depends on what you're going into by greg1104 · · Score: 1

      Related tangent: if you beat "Injustice: Gods Among Us", along with the credits for the graphics engine, physics engine, etc., at the very end you'll find the very viral and unusual OpenSSL license. Even Batman has to yield to weird software licenses!

    85. Re:depends on what you're going into by dlingman · · Score: 1

      Table lookup to precalculated values right?

    86. Re:depends on what you're going into by phantomfive · · Score: 1

      Someone who learns all, or even a substantial portion, of Linear Algebra in a day is much smarter than I.

      --
      "First they came for the slanderers and i said nothing."
    87. Re:depends on what you're going into by OrangeTide · · Score: 1

      if you're going into app development or IT, probably not much math needed

      Then why get a CS degree at all? You don't need a CS degree to be an app developer. You can pick up what you need from a trade school. The science part of Computer Science implies that you do research. Most of us are glorified technicians with trumped up titles (myself included).

      I am a professional computer programmer without a CS degree or Mathematics related degree, but I still strongly believe that CS degrees ought to be very math centric.

      --
      “Common sense is not so common.” — Voltaire
    88. Re:depends on what you're going into by geezer+nerd · · Score: 1

      Excellently said!

      I would recommend that a person wanting to do serious software development, they should study some core subject and then do a minor of CS for learning progarmming skills. If one then starts developing software to solve problems in their core subject, they will use the math knowledge from that subject to inform their work, and will likely do better than someone who just did straight CS.

      In general, doing the advanced math operations is seldom if ever needed. What is important is to gain an understanding of concepts so that aspects of the problem at hand might be addressed in a more rigoroud manner. Linear algebra and discrete math are the main topics a developer should know because they come into play in understanding complexity of algorithms and such.

    89. Re: depends on what you're going into by ClickOnThis · · Score: 4, Insightful

      Mod parent up. This whole discussion has a distorted notion of what constitutes "advanced math" in the context of an undergraduate degree in a scientific discipline. I would classify advanced math as anything taken at the junior/senior level, i.e., in third or fourth years. And yes, that might include such topics as topology and Hilbert spaces.

      Freshman and sophomore math that includes differential equations, linear algebra, statistics and introductory discrete math (combinatorics, etc.) just comes with the territory of a comp sci degree. It's not advanced math, it's the price of admission into a scientific or engineering discipline. Suck it up.

      --
      If it weren't for deadlines, nothing would be late.
    90. Re:depends on what you're going into by geezer+nerd · · Score: 2

      And it is very important to understand O(x) concepts. When you did not understand you built code with an O(n**2) dependence and n got very large in your production installation one night at midnight and you wind up spending the wee hours frantically trying to find a different algorithm so the system can actually do useful work in reasonable time again -- you will understand what I mean.

    91. Re:depends on what you're going into by ClickOnThis · · Score: 1

      Amen. Consider just how important software is in our lives. Software practitioners should be trained at a level well above where they work typically, if only to train them to recognize their competence and self-train later on when they encounter the unexpected.

      --
      If it weren't for deadlines, nothing would be late.
    92. Re:depends on what you're going into by elashish14 · · Score: 1

      If all you want to be able to do is simple stuff like matrix multiplication, or solving linear equations using matrix inversion / Kramer's method / whatever, sure. You can learn the process in an hour or so, remember it by heart, and implement it wherever you want to go. You won't understand it though.

      Linear algebra is very abstract. If you want to actually understand it, you need time to learn and go over the concepts. If you want to work with more abstract and intuitive concepts like rank, subspaces, orthogonality, basis, eigenvalues, SVD, determinants, differential equations, matrix factorization, and so on, that also requires more time.

      In the end, it comes down to how abstract you make it. More abstract -> (more time to learn , better understanding of concepts). I barely understood linear algebra when I learned it. I didn't understand it until I started using it, in classes like numerical programming or quantum mechanics, etc.

      --
      I have left slashdot and am now on Soylent News. FUCK YOU DICE.
    93. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      Really? So you're telling me that you can learn how to prove theorems dealing with vector spaces, matrix transformation, inverse matrices, etc. in one day? Go watch some MIT 18.06 Linear Algebra videos, then report back whether you can truly learn "almost all of [l]inear [a]lgebra" in one day. Have fun!

    94. Re:depends on what you're going into by ebno-10db · · Score: 1

      Once you understand differential equations, they're really cool!

      A geek's geek. Ok, I also found DE's cool, but not so much linear algebra.

    95. Re:depends on what you're going into by bored · · Score: 1

      barely understood linear algebra when I learned it. I didn't understand it until I started using it, in classes like numerical programming or quantum mechanics, etc.

      And, I would move that this is the fundamental problem with a _LOT_ of education. Sure, you can rotate and transform that matrix in linear algebra class to solve for n values.... But do you really understand what your doing, what its really for? Nah, that takes real applications, and being presented with problems you cannot solve without the math. Or for that matter problems that require you to use that math in a way not taught in class.

      So, i was in the same boat you were, busy learning some aspect of diffeq in semiconductor devices that in theory I already new based on the fact that I passed the diffeq class. Same thing with some AI/ML classes I took (yah I was one of the few that completed the big MOG) wow were my statistics bad/rusty. But I might move, that it wasn't until I took that class that I really understood some of the stuff that we spent 1 day on when I was in college 15 years ago.

      So, maybe the problem is that we even try to teach math without the applications. Of course teaching it with the applications means that instead of spending a semester on linear algebra we have to spend three or four because the applications get in the way of "learning the math".

    96. Re: depends on what you're going into by Anonymous Coward · · Score: 0

      Hate to tell tou, but the security clearance required for that job inflates the compensation much more than your education does.

      The PMP project manager sitting next to you probably has as big a pay differential relative to his/her peers as you do.

      The government pays a metric asston for your butt, and how cheap you are to the n subcontracted layers above you matters more than your education.

    97. Re: depends on what you're going into by Anonymous Coward · · Score: 0

      Mod parent up. This whole discussion has a distorted notion of what constitutes "advanced math" in the context of an undergraduate degree in a scientific discipline. I would classify advanced math as anything taken at the junior/senior level, i.e., in third or fourth years. And yes, that might include such topics as topology and Hilbert spaces.

      Freshman and sophomore math that includes differential equations, linear algebra, statistics and introductory discrete math (combinatorics, etc.) just comes with the territory of a comp sci degree. It's not advanced math, it's the price of admission into a scientific or engineering discipline. Suck it up.

      Seconded, as a physics grad working as programmer.

      If you cannot handle stuff like DE, matrices, algebra, etc, you ability for abstract thinking is poor and you will have trouble grasping practical programming stuff like data flow, program and data design, HA and failover, etc. Then stuff like writing HTML as a web programmer, or simple CRUD screens for local database are all you can competently do.

    98. Re:depends on what you're going into by ahabswhale · · Score: 1

      I don't know where you get this shit from but you don't need a lot of math to make a lot of money. I make more (and usually a lot more) than the vast majority of programmers I know and I'm well above the $100k mark. I live in the Midwest, not Silicon Valley. I have never needed anything more than basic algebra and I've been doing this shit for over 20 years. In short, there are plenty of high paying jobs where little math is required. Your salary is dictated by the demand of your skills and your ability to negotiate and there are a lot of high value skills that have nothing to do with math.

      --
      Are agnostics skeptical of unicorns too?
    99. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      Even when doing graphics programming most of the fancy math is already handled through frameworks. You don't actually need to know how to do vector calculations...

      There's never a need to understand how things work, as long as they work. But if you are dealing with a framework, and something goes wrong, an understanding of how it works is extremely helpful to finding the bug. So I would say this is quite wrong.

    100. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      Almost all of Linear Algebra can be learned in a day? Serious WTF. Tried machine learning through kernels, all linear algebra.

    101. Re:depends on what you're going into by next_ghost · · Score: 1

      You never know when you'll run into an awful corner case which requires a lot of code to be taken care of. Even in app development. Advanced math usually helps to make it go away much faster. The best case scenario is if you can prove it can't ever happen.

    102. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      i'm also a games programmer and your post just left me wondering... why? generate a lookup table if you are going to use it in a cache-coherent manner, or google a polynomial approximation like everyone else. almost all the math you will ever use as a games programmer can be found in an introductory text on games programming. you need an intuitive understanding of vector math, matrices, quaternions and that is about it. the additional math used in graphics programming is a second book, published 20 years ago.

    103. Re:depends on what you're going into by bWareiWare.co.uk · · Score: 1

      It is very unlikely you will need 'accurate' stats. though.

    104. Re:depends on what you're going into by DuckDodgers · · Score: 1

      Thanks for the suggestion, I'll take a look at Joy.

      My understanding of the benefit of closures - which could be wrong - is that you capture the state of the program at a given point for use later. If that's the main benefit, then immutable objects give you the same benefit with code that's much easier to understand. Is there something else I'm missing?

      I realize that the functional features I mentioned are not unique to functional languages. But I think making something idiomatic really is a big help. Maybe I just haven't been around long enough. :) I got started writing software in college in the late 1990s, so the Object Oriented Programming Language craze was in full swing, and I got carried along with it.

    105. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      The bottom line is very simple.

      Need to dumb that down a little for the new kids.:

      Good with computers? Be a computer technician!! No stinking degree required!

      Want to program computers? Be a computer programmer!! No stinking degree required!!

      Want to design solutions for complex problems that have nothing to do with computers, really, at all? You'll need a 4-year computer science degree. and most of that is hardcore math! Quadratics, logarithms, trigonometry, radicals, summation, differential equations, integration... and statistics and symbolic logic... non-linear equations... the good stuff.

      Want to design and build computers from scratch? OK, if you have great grades, you're good at math, and insane test scores, we'll let you have a shot at computer engineering... but the competition is stiff, and even the real geniuses fail out too.

      Want to be smart? Nearly any career in technology is a dead end disappointment. Forget it kid. Unless you already have all the Cisco certs, or can parkour on any database anywhere regardless of the initial conditions, by the time you're 18... and then if you did why would you bother with an academic degree... .

      Listen to me. Forget about technology. It's neat, we get it, you think it's neat. Now forget it. Forget all about that.

      Want to be a successful member of society that can find a job nearly instantly any place in the world and never have to worry about money or work? Become a registered nurse. It's a lousy 2-year degree. WWAAAAAY better returns, on average, than an academic degree like computer science... or even a practical degree like law.

    106. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      So, do they understand it now, or just trust their "gut".

      Presumably, they now trust their in-house expert (the GP AC). Which just shows you how knowing maths is good for your career.

    107. Re:depends on what you're going into by Darby · · Score: 1

      Mathematics, itself, is a form of programming. Programming is an expression of algorithms to be performed, states, etc. Mathematics is a specialization.

      No.
      The entire field of computer science is one small branch of mathematics.

    108. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      If all you're going to write is For i = 1 to 10 : Print i : Next i, then fuck the math...
      If all you're going to do is what someone else tells U 2 do, 'n punch their clock, take smoke breaks when they say U-can, go to the bathroom when they say U-can, punch their clocks and do their projects, then fuck the math.

      But if U R ever gonna do your own thing, U better put it under your cap. OTOH, if U have a pocketful of money, U-can hire someone else to do it. No shame in that. People with limited skills in litter-uh-tewer are always hiring ghost writers who can spell and slapping their own names on the books when they're done.

    109. Re: depends on what you're going into by MrResistor · · Score: 1

      Also if you're doing anything related to games. Graphics, movement, and collision are all linear algebra, of course. But even you aren't an engine guy you'll likely have to write at least one spline editor (their popular in animation and cinematic tools), and it won't be long before some of the more advanced simulation techniques are standard in the industry. Check out the DMM plugin for Maya, which uses finite elements to model material properties, for example.

      --
      Under capitalism man exploits man. Under communism it's the other way around.
    110. Re:depends on what you're going into by lsatenstein · · Score: 1

      If you're doing quants work, or business intelligence, data mining etc, sure. Hardcore math is a must. If you're developing business software or something like that, it's more important to know Djikstra, the gang of four and closures.

      ===
      Definition of advanced math please?

      I would make it a requirement for probability and statistics and queuing theory to be a requirement. When I started in IT, I was working in a Bank's IT department. The bank had a standard that said "No atm customer should wait more than 4 minutes of turn around time -- Queue plus service).
      The bank executives wanted to know the impact on ATM queuing if the increased host transaction response time by 25,50,75 and 100 ms. For each level, where would there be bottlenecks in the network at peaks, and in how many locations would they have to add an ATM machine.

      Thats where your advanced math in the above topics would come into play.
      Yes, we got answers, and then we found out that we could get atm's delivered within a month, but the building codes, security, and other permissions and concerns to work through ( needed to install an additional ATM) required between 6 months and a year to obtain.

      --
      Leslie Satenstein Montreal Quebec Canada
    111. Re:depends on what you're going into by datavirtue · · Score: 1

      You probably don't understand it because math courses in school focus on the tools instead of on the thought processes. It is better to be faced with a problem you cannot solve unless you have a certain math tool. In that case it makes a hell of a lot more sense when you are trying to learn the tool. The math subjects in school are just collections of tools. You would think that people who are "experts" at teaching others could come up with better ways to teach math than just working problems over and over again and testing you on the mechanics of the process of using the tool. Sure they ge to the end of the chapter or section AND then dive into the application. I always have an easier time learning a tool when I'm faced with the problem it is meant to solve and I have already spent time trying to solve the problem on my own. For instance, trying to learn SPRING without being faced with the problem it solves makes the framework seem really complicated and difficult to grasp. Bounce up against the problems over and over and then it suddenly fits the way you are thinking.

      --
      I object to power without constructive purpose. --Spock
    112. Re: depends on what you're going into by Anonymous Coward · · Score: 0

      I started on a cs degree, got thru Calculus I & II and gave up at III. Three good friends worked at HP in their programming and troubleshooting areas and NONE of them ever needed calculus. I firmly believe that they made it a requirement just to subsidize the math faculty. So I changed majors to something else, and finished with a BA in that and a completed minor in statistics, which I thought was fun. I was at least semi-fluent in fortran, pascal, sas, spss and basic at one time or another and do some computer consultant work (consumer idiot level most of the time).

    113. Re:depends on what you're going into by Aereus · · Score: 1

      The Management Computer Systems degree at my Uni used to require Calc3 and 2 semesters of stats. Over the last 10 years they've basically gone down to requiring 1 semester of stats, and I believe 1 semester of Calculus. Possibly just Trig. I took AP Calc in HS so I haven't looked at that part of my AR closely. And my degree is known to be excellent and with 100% placement out of college, so I assume they know what employers are looking for.

      I'm content with business applications development, or possibly coding in a game design capacity. If it ever came to the point that I felt I needed more advanced math to advance in my career, I would just go back and take more advanced math courses. Because short of having a CS degree with a full math minor, having taken dynamics or whatnot will only appear on a transcript.

    114. Re:depends on what you're going into by narcc · · Score: 1

      My understanding of the benefit of closures - which could be wrong - is that you capture the state of the program at a given point for use later.

      That's where they seem to appear most often lately as more people are discovering (read: forced to deal with) asynchronous programming. Unfortunately, modern languages haven't caught up to the antique ones yet, so we're waiting for old solutions to be reinvented and implemented!

      I don't know that capturing state is a safe way to think about it. (Maybe even a little dangerous, depending on the language you're using) You're right in that closures are often used to get data to a function that's to be called later -- arguably a legitimate use if the language doesn't offer a reasonable alternative. If you think in terms of capturing state, however, you're just asking for trouble. Take this famous example in JavaScript:

      for(var i=0; i<5; i++)
      {
      setTimeout( function() { console.log( i ); }, 1000);
      }

      If you think that you're capturing (I'm reading that as "preserving") state, you'll expect the output to be 0 1 2 3 4. In reality, the output will be 5 5 5 5 5 as all of your anonymous functions close over i. Your loop will long be over by the time your functions are called, at which point i will be 5. To make this really clear, you can add i++; to the end of the anonymous function to get the output 5 6 7 8 9.

      Granted, in some languages this isn't the case. In others, like c#, it's actually changed. (Really, in c#, the output of a similar example is different from what is used to be.)

      Anyhow, I don't want to say that closures are inherently bad (they're necessary or otherwise useful in some languages) it's just that they're best avoided in many modern languages for the reasons I gave and many others.

      My grouching is all about what is practical, after all, which seems to be in the spirit of the question at the top of the page.

      the Object Oriented Programming Language craze was in full swing

      Yeah, we really took a step backward there. I blame marketing. Had we trusted the research over the brochures, OOP would have died in the 80's. Fortunately, people are starting to see that its not the panacea they were promised, which may explain the trend toward "multi-paradigm" languages and the recent interest in functional languages.

      I'm a fan of simplicity. Bolting on extra features (like c# has been doing) just increases complexity; the promised benefits, naturally, are dubious. Some of the things you mention in your earlier post, like referential transparency, give you simplicity for free -- no extras needed. That's always a good thing.

    115. Re:depends on what you're going into by drstevep · · Score: 1

      Nope, too slow. Two-term Taylor series.

    116. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      If you struggle with math, you might not have a future in game development - but that does not imply that you cannot be a good programmer. There are numerous positions in industry that require problem-solving skills and logic, but do not require upper level math. An alternative to CS would be an Information Systems or Management Information Systems degree. These degrees typically mix business knowledge with programming. (check with your university's school of business) If you are a good communicator who likes to solve problems (but does not enjoy math) then this may be a good approach for you. (I do agree with others who have posted that statistics would be of value as well as some basic algebra, but you probably would not need 2 full years of calculus to complete an MIS degree)

      On the other hand, If your idea of fun is optimizing frame rates, then you should push through with the math.

    117. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      if you have the time, i recommend not learning advanced calculus when trying to do things such as rotating 3d objects. i mean, its just 3 axis relative to some static shit (beginner lvl).

      try to figure it out yourself. calculus was birthed through deduction and discovery - no reason you cant (re)discover the same stuff. (re)birthing it yourself reveals parts of the inner monologue that're "behind the scenes" of further discoveries/disciplines.

      plus youll often discover "cheats" that serve as practical, rough approximates of the real thing that can be computed by a sneeze.

    118. Re:depends on what you're going into by Xest · · Score: 1

      By the time you've learnt what vectors are, what they represent, how they're used, why they're used and what they mean in a 3D environment you'd be hard pressed to have not learnt the math anyway.

      Even though stuff is tied up in libraries it doesn't mean you can use it without knowing the math.

    119. Re:depends on what you're going into by Xest · · Score: 1

      "I think that was the point of the query here, exactly what fields remain today that require the level of math that is (rather arcanely) still infused within a CS degree?"

      All of it if you want to be any good at your job.

      Sure you can get by without math, but you're always going to be outdone by those with it.

    120. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      +1. business wise... A deep understanding of at least advanced Algebra and a few courses in business stats will halt the consumer's of your apps from making bad decisions based on bad data. Your mathematical assumptions must be 100% correct when you write even lowly business programs. If you don't understand what you are mathematically doing with the data, you will probably hurt a lot of business people.

    121. Re:depends on what you're going into by Pseudonym · · Score: 1

      I had this discussion with some developers at my previous job, and their consensus was they didn't really use all that much advanced math compared to what is required on most college degrees.

      I've only professionally used a fraction of the maths I learned as an undergraduate. You probably won't either. However, it's impossible to predict in advance which fraction you will use, because the job you'll need it for hasn't been invented yet. It's better to have done a bit of it all, so you'll know that there is something to look up.

      Incidentally, for the OP: advanced maths seems like a drudge now, but I guarantee you'll find it interesting when you have a problem to solve that pays money.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    122. Re:depends on what you're going into by Alioth · · Score: 1

      Hold on - isn't that solvable with linear algebra? I've never done calculus myself (I intend to do it later this year) but it's the sort of thing that comes up in linear algebra word problems all the time. (It's of course possible that the question was a lot more detailed than that and so needed a different approach to solve, but I'm curious as to what it was that meant plain old linear algebra wasn't usable)

    123. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      LE is very cool once you grok it.

      It is great for networking stuff and absolutely amazing for solving difficult differentials quickly.

      Of course, you will never get Physics without understanding LE.

    124. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      " require problem-solving skills and logic, but do not require upper level math"

      Math is problem-solving skills and logic.

      If you don't understand the mathematics behind programming(ALL programming is mathematical) then you are not a programmer, just a language end-user and those types of jobs pay =$35000/yr

    125. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      Don't forget

      Group Theory - OOP
      Relational Theory - relational databases - do you know how few people actually understand what a relation is? Too many wannabe's think it has to do with how tables 'relate' to each other
      Counting theory - the basis of probability and stats
      Set theory - Turing machines - it is amusing and absolutely amazing that Turing machines were created to solve the at the time unresolved, decidability question and not really devised as a basis for computer languages. If you haven't read and understand "On computable numbers, with an application to the Entscheidungsproblem" GTFO

    126. Re:depends on what you're going into by Anonymous Coward · · Score: 0

      LOL at the notion that DE and Calculus are "advanced" math.

      If you think so you do not understand math at all.

  2. Can someone help me here? by Anonymous Coward · · Score: 0, Offtopic

    How the hell is this a front page article?

    1. Re:Can someone help me here? by fishbonz · · Score: 1

      i guess because it starts with the words Ask Slashdot:

  3. well by Anonymous Coward · · Score: 5, Funny

    If a few differential equations are giving you so much trouble, you can stop worrying about learning advanced math. ;)

    1. Re:well by gweihir · · Score: 1

      Not my experience. I had and still have trouble with differential equations. OTOH, I never needed them so far. I have no trouble with other advanced math, including modern algebra, logic, and others. Differential equations are basically only needed in CS if you have an engineering application field that needs them.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  4. Think About It This Way by eldavojohn · · Score: 5, Insightful
    The verdict is: it's important.

    I have two resumes in front of me. I need someone who can write some fairly complicated software. Are they writing the kernel to an operating system? No. But they'll be making complexity decisions between a server and a client. Not exactly new or novel but important to me and my clients.

    So I look at one resume and the guy has suffered through integration by parts, linear algebra, differential equations and maybe even abstract algebra. The other guy went to a programming trade school where those are not taught. The trade school likely taught inheritance, pointers, typecasting, and all that good stuff just like the Bachelor's of Science degree would.

    Now do my solutions need integration by parts, linear algebra and differential equations? Absolutely not. But if I'm going to pick between the two, I'm going to take the applicant that solved more difficult problems in order to make it to a class. Few people actually care about those concepts deep in their hearts -- and I'm sure neither of my prospective employees did. But in that same vein, no rational developer is going to care at all that my client likes to be able to drag and drop files instead of doing file navigation to find the files he wants. But I want the applicant who's going to do the inane stuff that he doesn't personally view as important.

    Challenge yourself. Take the math courses. Take the logic courses. Take the statistics and combinatorics courses. Take the finite automata courses. Prove to yourself that there are no obstacles in your way. They are a great expense of time now but they are a huge investment in yourself -- no matter how pointless they appear to you.

    If I had understood what I was doing, maybe I wouldn't mind so much.

    You should attack this problem two different ways: 1) increase the amount of time you allot to your own personal enrichment in these topics/courses (three hours is very little time if you are approaching new concepts in math) and 2) seek outside instruction as it's also possible you have a professor who doesn't understand what they're doing either (the teaching, not the subject matter).

    --
    My work here is dung.
    1. Re:Think About It This Way by phantomfive · · Score: 2, Insightful

      Let's be honest, if they can program well, and your company has any resources at all, you'll hire both of them. Good programmers are in short enough demand that it's worth it to hire a good one when you find him, whether he has advanced math skills or not.

      --
      "First they came for the slanderers and i said nothing."
    2. Re:Think About It This Way by platypusfriend · · Score: 1

      You forgot to mention personality. And I'm not talking about "I figured out his personality from the interviews"... I'm talking about really getting to know someone. That is the primary key (if you will) to creating relationships in the workplace. Because it's not just a workplace. It's a place where you and I work with others, and we, in reality, do more than work. If I had to choose, I'd take someone with less "expert" math knowledge, and more "expert" personality.

    3. Re:Think About It This Way by dynamo · · Score: 2

      If you are looking at resumes that actually list what /classes/ the candidates took, they probably have zero experience. The other guy who has some actual experience or did some personal project interesting enough to fill the space will get the job.

    4. Re:Think About It This Way by OneFlame · · Score: 2

      I have been hiring IT professionals for years, hardware, networking, security, and software gurus. Give me a high school senior who has contributed to the linux kernal, published their own android game app, created their own web site, over an advanced mathematics student /any day/. The IT field is about self motivation, natural Intuition. Without these qualities, (which are the evidence an applicant being self taught), the applicant is really very useless. IT is a lot about creativity, abstract analysis, linguistics, and logic. Any applicant with a modicum of these fields of training is significantly more valuable than the Math Guru. And even still, give me the passionate high school self-starter--any day.

    5. Re:Think About It This Way by Anonymous Coward · · Score: 1

      The biggest issue is that hiring and interviewing is hard. The only solution is really to use other people's "pre-filtering" to your advantage. The trade school guy could be 10x the programmer as the university grad, however it is much harder to get into the university and graduate. So if you are pre-filtering by the percentages, the university guy is likely better. For example, let's say the chances you are a good programmer are approximately:

      Trade School - 1%
      University - 15%
      MIT Graduate - 50%
      Worked for Google 50%

      Because places like MIT and Google filter incoming candidates really well, they have the highest percentage. I'm still of the firm believe that a good school doesn't make a student better significantly, they just recruit better students. In hiring we use this pre-filtering to our advantage to get past the 100s of resumes

    6. Re:Think About It This Way by davecb · · Score: 1

      You end up needing it later, anyway... I struggled with logic initially, and wondered if I'd ever need it. I ended doing a ton of it in ADL just to test some libraries! And as a performance engineer, I rapidly discovered that DBAs don't know deMorgan's law, hoping that the query optimized does (;-))

      --dave

      --
      davecb@spamcop.net
    7. Re:Think About It This Way by N_Piper · · Score: 2

      As a 30-ish adult trying to get into the industry who has gone through trade schooling I cannot say this emphatically enough
      F-you you elitist so-and-so your type are why I am literally going hungry
      Not all of us made the correct choice in College or have the time and money to go back.
      My blue collar resume and tech school are all I have and somehow you think my education is a character fault?
      Where the hell do you get off?

    8. Re:Think About It This Way by Anonymous Coward · · Score: 0

      Challenge yourself. Take the math courses. Take the logic courses. Take the statistics and combinatorics courses. Take the finite automata courses. Prove to yourself that there are no obstacles in your way. They are a great expense of time now but they are a huge investment in yourself -- no matter how pointless they appear to you.

      There are some faults with this logic, one primarily being cost. College is not free, so "pointless" efforts that pan out to be pointless are also a considerable waste of money. If you can afford it, or if the challenge interests you, then so be it. But in pursuant to a job? Might be something to think about a little harder as you calculate your school debt that might be coming up due before you manage to even land a job.

      Morse code and calligraphy are dying arts for often valid reasons. We don't exactly have to sit around with an abacus anymore.

    9. Re:Think About It This Way by geoscodin · · Score: 1

      I agree with you. I believe that everything we learn and experience rounds us out and teaches us to look at problems in a wider variety of ways. But as far as resumes go, mine has never included college courses. It includes previous employers, brief job descriptions and accomplishments, and references. I spent 11 years as a high level consultant before giving up the travel and was asked only once for a transcript, and that was a technicality after I had already been hired.

    10. Re:Think About It This Way by Frobnicator · · Score: 3, Interesting

      I have been hiring IT professionals for years, hardware, networking, security, and software gurus.

      If you are hiring IT professionals and gurus, you don't need computer scientists.

      I work in the video games industry, inside the guts on game engines. I absolutely need math.

      If you are simply working on 3D games you need math through linear algebra and calculus. If you are working on any high-performance graphics processing you will need sharp math skills. When you are talking about a billion polygons per second you don't have the luxury of allowing a computer to do all the work for you; you need to pre-solve everything you can, which in turn means having solid mathematics skill.

      If you are working on games physics simulations, all those PDEs in college will look easy. You also better know your stuff from the highest level concepts of math down to the details of getting the most from associative caches. Again, a solid mathematics background is a must.

      If you want to get a job as an "IT Professional" writing crappy business software, the math (and really, the whole computer science degree) doesn't really matter.

      If you are a business programmer where 20ms means a database transaction, you don't need the math.

      If you want to write any kind of scientific work or any kind of high performance software, anything from video games to weather simulations to military simulations to oil and gas exploration, you absolutely need the math skills.

      --
      //TODO: Think of witty sig statement
    11. Re:Think About It This Way by wolvesofthenight · · Score: 3, Insightful

      Challenge yourself.

      If the overriding goal is personal intellectual development, absolutely. But if you are worried about getting a good job, no. Most unfortunately, the university and employment system has a very effective built in punishment for this called the GPA. HR departments and hiring managers often filter by GPA. Some employers, like Sandia National Laboratory, have remarkably high GPA requirements. And you don't get the top GPA by challenging yourself.

      In your example, with a community college vs a university, the difference in degree would be very relevant, However, it sounds like AvailableNickname has already chosen a (4-5 year?) university and is simply asking what classes to take. When it comes to be job time, the main questions will be: Degree, GPA, coursework relevant to the job, and university reputation. Given his distaste of math I would hesitate to recommend a math intensive career path and study, though I do recommend a solid foundation.

      At a minimum, 1 year of Calculus and a semester of statistics. More if piratical. And it sure sounds like he is well into calculus. Beyond that, how about taking the classes most relevant to whatever career he would like? Simultaneously decide if it is work that he might actually enjoy and get something to put on his resume that directly relates to the job he wants.

      Also remember that you can study whatever you want and challenge yourself on your time after you finish school. When I hear somebody say "I wish I had taken more of X" I am inclined to say "Well, go study it." Be it books, local classes, or online classes, you can do independent study. Yea, it might not be as good as a real class, but don't let that stop you.

      --
      -WolvesOfTheNight
    12. Re:Think About It This Way by MGDruss · · Score: 1

      I agree - it is very important. I hire a lot of developers, and I rate this very highly. Not because it is needed to do the job - in many instances it isn't. But because it is a proxy for understanding logical complexity. That's what maths is. And, ultimately, that's what a lot of programming is. If you can demonstrate understanding of abstract logical complexity, then in my mind (as a hiring manager), I will rate you more highly. That said - is it essential? No. Are there great programmers who can't do maths? Yes, absolutely. But on the balance of probability, I would rather hire someone who is.

    13. Re:Think About It This Way by Anonymous Coward · · Score: 0

      IMO, dinosaur attitudes like this are what continue to keep the the OP's dilemma alive.

      As a successful software engineer with 15 years in the field, I would say math has little to do with a large portion of the software development out there. There are a lot of developers out there with strong creative vision that are more valuable than the ones with great mathematical skills; macro vs micro. Are you writing compression algorithms? Probably not. Are you solving someone's software needs somehow and collecting a great salary doing so? Probably.

      The guy above who said "just google it" has a point. We are in an era where the collective mind of the internet can answer questions more efficiently than a human with an advanced education and calculator. Also, grabbing an algorithm from *reputable* source on the net can be faster and less prone to error than someone writing it from scratch.

      I guess it depends on your goals. Some of the highest salaries here in NYC are for mobile UI development and don't require any math. They are also relatively simple in terms of language complexity.

    14. Re:Think About It This Way by Anonymous Coward · · Score: 0

      In general, I agree with most of the parent comments.

      However, what surprises me is that out of the comments modded +3-5 that are sitting in front of me now, none of them state WHY that advanced math is important.

      Once you step beyond trivial or solved development work (read: more than "Hello, World" or cranking out MVC webapps), having that advanced math gives you the ability to solve the complex problems. For instance: doing any sort of moderately complex 2D or 3D visualization is surely going to require that you know the fundamentals of trigonometry, calculus, and linear algebra. Any sort of moderately complex data analysis is going to require knowledge of combinatorics and graph theory, as well as probability and statistics. Other fields require discrete math (e.g. cryptography and number/group theory).

      Without the math, you can be (at best) an average programmer. Knowing the math means that the sky is the limit.

    15. Re:Think About It This Way by Anonymous Coward · · Score: 0

      He could mean he has both a resume and transcripts or the resume is like mine and I've listed the classes I've taken in pursuit of my masters for CS. Plus I dont know if we can make the assumption that the guy who went to a trade school has any more practical experience that the person who went to college and took advanced mathematics classes.

    16. Re:Think About It This Way by Anonymous Coward · · Score: 0

      Don't worry about it. From my experience people like him are usually talking bullshit, and are in my minority anyway.

    17. Re:Think About It This Way by odoketa · · Score: 1

      I don't know your situation, so I can't comment on life choices, etc. What I can say is that the person who made the comment you responded to probably isn't making a value judgment, just stating a fact.

      Hiring managers have very little information on which to base a very important decision. Hiring people is easy. Firing people isn't. And getting stuck with someone who is mediocre can screw your organization for years to come. So you extrapolate - a LOT. You generalize - a LOT. And then you cross your fingers and hope the person who shows up to the face-to-face interview is as good as their resume said they were. And then you cross your fingers again and hope the employee you hired is as good as the person at the interview said s/he was.

      It is common to see hundreds of resumes come in for a good job. If you give someone a quick shorthand that lets them winnow that pile down quickly, they're going to take it.

      Does that mean you weren't the best candidate? Nope. But it does mean you need to write one hell of a resume to overcome the default, because otherwise you're just not going to get past the first cut.

      And to the OP: the math may or may not be related (it's always hard to say where life will take you after), but if you figure out how to motivate yourself to do things you don't want to do, and do them well, you'll have a leg up on an awful lot of people.

    18. Re:Think About It This Way by Anonymous Coward · · Score: 0

      The verdict is: it's important.

      Wait, wait, another verdict has come in: naah.

      Take it from someone who looks at a lot of resumes: I don't give a shit about what courses you took. I don't even care if you're a high school graduate. I just don't care.

      What I do care about:

      (a) can you solve problems?
      (b) can you work with with other engineers?
      (c) do you *like* programming?

      And to determine this, the first thing I will do will be to eyeball-hump your Github profile. They give the best answers to those three questions I've yet seen.

    19. Re:Think About It This Way by Anonymous Coward · · Score: 0

      And are in the minority, my bad.

    20. Re:Think About It This Way by Assmasher · · Score: 4, Interesting

      While I understand your point, it also has weaknesses.

      I worked with a guy who was a math guru - and he was an absolute sh** software engineer. Oh, he could program some - give him a very finite problem to solve and he could solve it very functionally; however, when it came to actual software *engineering* he was an total loss.

      Normally we'd replace a guy like that, but like I said, he was great with numbers - so we gave him a sandbox to play in. He never ever, ever, checked in code into our system. He'd finish something and turn it over to another engineer who'd refactor it and check it in.

      He was a hell of a nice guy too, but being smart has nothing to do with being a good software engineer (although it surely makes it easier.)

      --
      Loading...
    21. Re:Think About It This Way by eek_the_kat · · Score: 3, Funny

      and if you want to make money, don't go into scientific or game programming.

    22. Re:Think About It This Way by Anonymous Coward · · Score: 1

      Where are these so called employers? The reality is that without a degree you can't get in the door. No one will get to the point of seeing your skills. Trust me, I've been able to get all the work I can handle as a company over the past 12 years but I've never got a call back when applying for any programming position including entry level.

    23. Re:Think About It This Way by drGreg · · Score: 1

      Amen. There are plenty of things you will do in life that seem pointless - think of all that "literature" you had to read in high school, but you have to labor through it.

    24. Re:Think About It This Way by Anonymous Coward · · Score: 0

      Another way of looking at it is that there are many, many problems being solved in slow, inefficient brute-force methods because programmers don't understand math. A colleague of mine is doing a relatively simple problem of finding the best pairings among combinations. An easy problem to solve in a brute-force manner, but when the possible inputs number in the thousands, the brute-force solution fails - it's just not fast enough. Enter that fancy advanced math work - he uses equations to solve the problem and is able to solve for hundreds of thousands of inputs. If the software has to scale at all - whether in users, data set, number of connections, etc., math is often the answer to making it go.

    25. Re:Think About It This Way by jedidiah · · Score: 1

      Schools are very upfront about what kind of classes they offer and require. If you are at all familiar with the schools in question, you hardly need the candidate to provide a comprehensive list on their resume.

      You can simply look at where their degree is from.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    26. Re:Think About It This Way by Anonymous Coward · · Score: 0

      The parent's kind of really right on this one. Logic is math, you need it. I would even say you can't be a good programmer without the math grounding.

      I personally have used a lot of Calc to do back of the envelope figures and calculations when writing things. Boolean math is supprisingly useful for a lot of things, even putting together test datasets. It's important to know about it, and it's important to be able to wrap your head around it at least somewhat. You will be able to understand a lot of the why that underlies the best practices and whatnot with the math grounding. Whic h means if you have to cross the line or bend it some and you will be able to explain why you had to make the call, and defend it.

      Statistics is really important for programming, it give you the grounding to be able to compare various methods and figure out which is best in your situation. The other maths popup a lot too, and the more exposure to math you have a better grounding to be able to figure out and understand the stuff you haven't been exposed to yet.

    27. Re:Think About It This Way by cowdung · · Score: 2

      True. GPA can be an impediment to risk taking behavior that often leads to more learning. In College I avoided some classes because of their potential effect on my GPA and also because they wouldn't fulfill any requirement. I regret having made those decisions.. though I don't regret having had a good GPA.

      On the other hand, I definitely DO appreciate having taken very hard classes and the only classes I didn't like were the ones that were too soft (well, also the incomprehensible seemingly irrelevant ones). I don't think chosing the easy path is a good College strategy.. I always chose the hard classes in my major (though I avoided the ones outside my major that I probably shouldn't have avoided).

      Boring is worse than hard in my opinion. Many colleges allow you to drop late in the semester.. that is a good option sometimes.

    28. Re:Think About It This Way by Aighearach · · Score: 1

      Perhaps you meant "short enough supply."

    29. Re:Think About It This Way by bobbied · · Score: 1

      If I had understood what I was doing, maybe I wouldn't mind so much.

      I think the problem here is not with the math, but about previous experiences with it by the article author. I'm going to offer a guess that this poster has previously disliked his math classes, blew off trying to understand the material, but managed to actually pass Calculus and Analytic Geometry by the skin of their teeth and now is faced with a seemingly impossible learning curve trying to "get" differential Equations. Given that we are at the end of the school year in most colleges, I'm guessing this poster is facing (or just took) the final and feels frustrated. I'm also guessing they are not expecting to do well in the course. There is not much you can do now...

      Personally, I found differential Equations a turning point in my understanding of calculus and other advanced math. So much of math is taught though proofs and memorizing the various problem solving techniques, which is OK, but it skips the fundamental question "What is this math for?" Once I got to differential Equations it started to become clear what all that calculus was really used for. Many of the physics problems that require calculus and differential equations to solve made me see the reasons why you did certain things that I had found hard to remember. I get why they sequence math the way they do, but I really think it would be much better understood if they taught math by teaching the physics it represents at the same time.

      My advice to all college math students? Do the home work, all the home work, every problem assigned and more if you don't "get it". Stay current on your home work and show up in class already having tried to understand the material and having attempted the homework Once you leave class, do your homework for that class ASAP. But above all.... PRACTICE the material....

      --
      "File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
    30. Re:Think About It This Way by Anonymous Coward · · Score: 0

      Oh trust me, as a Univerity educated CS programmer who had to slave through shit-deep C and even Assembly before ever getting to write the fun stuff I still know where you're coming from. I'm 30-ish and was (mis)fortunate to jump on a rising, and then gone to shits startup in a managerial position sprinkled with operations (means I'm great with Linux shell and shit that mostly gets the cloud treatment now, and with business administration stuff) so I have no apps of my own to boast about. Landing a job is equally tough for me.

    31. Re:Think About It This Way by CanadianMacFan · · Score: 1

      Actually who you hire would depend on your needs. If you need someone to write the software then go for the person who went to trade school and can program. If you want someone to design the program then hire the person who has done all the math.

      Of course it all depends on personality, other experience, etc, etc.

    32. Re:Think About It This Way by goodmanj · · Score: 2

      Depending on what your application was, this guy could have been useless, or he could have been the lifeblood of your project. Sometimes it's not the number of lines of code you check in, but the ideas behind them that matter.

    33. Re:Think About It This Way by ranton · · Score: 1

      As a 30-ish adult trying to get into the industry who has gone through trade schooling I cannot say this emphatically enough
      F-you you elitist so-and-so your type are why I am literally going hungry
      Not all of us made the correct choice in College or have the time and money to go back.
      My blue collar resume and tech school are all I have and somehow you think my education is a character fault?
      Where the hell do you get off?

      It is far more likely that you are going hungry because of a lack of socialization skills. Having a professional demeanor is important, and your post makes me doubt that you are able to pull that off well.

      I made bad choices in my early to mid-twenties too, and I paid a price for those choices. I corrected them to the best of my ability and am doing very well for myself in my early thirties. That included getting an online degree that isn't worth the paper it is printed on, but at least allowed me to enter an MS program at a quality school. But the most important thing I realized is that most of the time there are people other than me who call the shots, and I had to decide whether I was just going to complain about it or do something about it.

      You have an uphill battle ahead of you. The original poster is correct in saying that there are people out there who made better decisions than you in the past and WILL get preferential treatment because of it for quite some time. It is YOUR responsibility to overcome those obstacles that you self admittedly put in front of yourself years ago. It is not your future interviewer's job to help mitigate your past transgressions. If you do a good enough job of improving yourself, you will eventually find a company with the foresight to give you a chance. But your attitude will likely have to change quite a bit first.

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    34. Re:Think About It This Way by dcollins · · Score: 2

      Long, short, whatever: he's not a math guy and surely he'll never have to use it.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    35. Re:Think About It This Way by wolvesofthenight · · Score: 1

      Yep. That is why I mentioned personal development vs getting a job. I don't know what AvailableNickname's priorities are, so I qualified my comment as only applying if the overriding goal is a good job. Sadly, given the time and cost of going to college, you often have to focus simply on finishing and getting a job instead of learning as much as you can. I know this is contrary to the ideals learning and of many universities. But I don't blame anyone for facing reality.

      Don't forget that you can still take some classes, assuming you can find the time. Some of my best classes were taken after I graduated when I managed to fit in some while I was working. I took them simply because I wanted to, I had no concern about GPA or meeting course requirements, and I could keep the class load at what I wanted. It also helped that when I needed extra time to study I could take an afternoon off work (paid vacation is wonderful!).

      Yea, I realize that you might have more important things to do with your time. Life is tough.

      --
      -WolvesOfTheNight
    36. Re:Think About It This Way by Anonymous Coward · · Score: 0

      No, he actually meant to short the programmers. It's the race to the bottom companies love to descent into these days.
      Why? The money system dictates us. Who dictates the money system? Guess who.

    37. Re:Think About It This Way by lahvak · · Score: 2

      IT is a lot about creativity, abstract analysis, linguistics, and logic. Any applicant with a modicum of these fields of training is significantly more valuable than the Math Guru.

      You do not know much about mathematics, do you. Because actual mathematics (the "higher level" math classes that the OP is talking about) is all about creativity, abstract analysis, linguistics, and logic.

      The unfortunate paradox of current math education is that the lower level math classes seem to be often specifically designed to kill all creativity, abstract analysis and logic, but that's something I could rant about for pages and pages.

      --
      AccountKiller
    38. Re:Think About It This Way by lgw · · Score: 2

      There's more to life than your specialty: "high performance software" in the business world is a real concern, but one that is solved now by scaling out. CPU is never a bottleneck, and I really don't care about "performance" as measured by CPU cycles, but that still leaves a few difficult and interesting problems. Designing a system that will have hundreds of millions of users, or billions of users, will certainly make you worry about performance, just not the kind you need linear algebra to solve.

      If you want to write any kind of scientific work or any kind of high performance software, anything from video games to weather simulations to military simulations to oil and gas exploration, you absolutely need the math skills.

      That's an amazing list of some the lower-paying specialties in the field. There's a lot to be said for doing what you love, and game engine and simulation software is a set of really fun, difficult, and engaging problems, but it's a basic rule of all engineering that "fun, difficult, and engaging problems" == "we can pay you less and you'll still do it". It all still pays better than any sort of graphic design-related job, of course, or semi-skilled coding.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    39. Re:Think About It This Way by NJRoadfan · · Score: 1

      The CS degree track at the mere state school I went to required physics along side of the math courses, so at least someone understands the idea of teaching them side by side. The only physics course I got use of later on in life is electricity and magnetism, comes in handy when working with electronics. What I found more disturbing were the number of CS students who had no clue how to program a computer. They seemed to do well in the math and science courses (both of which I did fairly lousy in, but passed), but were completely lost when presented with a basic C or Java programming assignment.

    40. Re:Think About It This Way by Anonymous Coward · · Score: 0

      GPA only maters for your first 1-2 jobs. After having 3 years of experience under your belt, potential employers are not going to care about your GPA. They will be more interested in your work experience.

    41. Re:Think About It This Way by deKernel · · Score: 1

      Hire both? Dude, step away from the weed, open the window and take a breath of fresh air. Have you heard of things called budgets? They are a fact of life, and if there is only $$$ for one position then you can only fill one position.

    42. Re:Think About It This Way by Anonymous Coward · · Score: 0

      EH - if you are the owner of the company, that's the way you hire. if you are dealing with HR in a large company, they are going to hire the least expensive option.

      so, if you don't mind being hire by companies to produce mediocre code, and get paid less, you could just go to a technical college and pretend you are just as good as the guy who got the BS Degree.

    43. Re:Think About It This Way by Teckla · · Score: 1

      Now do my solutions need integration by parts, linear algebra and differential equations? Absolutely not. But if I'm going to pick between the two, I'm going to take the applicant that solved more difficult problems in order to make it to a class.

      I'm sure my post will be lost in the avalanche of "I agree!" responses you've already gotten, but...

      Are you sure this is wise? Hiring someone grossly overqualified for what the position requires?

      To me, it sounds like a recipe for ending up with an unhappy and unchallenged employee. Unhappy and unchallenged employees are often not very productive, and eventually, they leave.

      I think you should seriously consider hiring the appropriate skill level for the job requirements instead.

    44. Re:Think About It This Way by Bob+the+Super+Hamste · · Score: 1

      My experience has been GPA only really matters for the first few jobs. I don't even include it any more as now my experience and past performance matters, although they do care that I actually have the degree. The same is also true for where you went to college. If you had a lower GPA or went to a lesser school (I went to a lesser state school in my state) instead of of the big name ones you will generally start out lower but if you don't suck at your job you can move up and out fast. Granted this has been my experience as a software engineer. I am sure where you went to school is more important for MBA jobs as those still seem to be the old boys club type of jobs.

      --
      Time to offend someone
    45. Re:Think About It This Way by phantomfive · · Score: 1

      The reality is that without a degree you can't get in the door.

      That's not reality at all. I'm sitting right next to a guy who doesn't have a degree, and he still pulls down 6 figures in a full-time programming job. All you need is skill, including the skill of looking for a job, which seems to be what you are lacking.

      --
      "First they came for the slanderers and i said nothing."
    46. Re:Think About It This Way by Bob+the+Super+Hamste · · Score: 1

      Dammit I don't have mod points today but you need some.

      --
      Time to offend someone
    47. Re:Think About It This Way by Bob+the+Super+Hamste · · Score: 1

      It has always puzzled my why physics is required and not just any full first year of any non CS science like chemistry, biology, or astronomy. I understand since it is a BS degree that there needs to be a somewhat broad exposure to science but why force everyone through physics?

      --
      Time to offend someone
    48. Re:Think About It This Way by Fallon · · Score: 1

      GPA may matter for your first job out of college, but that's about it. 10+ years into my IT career I barely even hear "Do you have a degree?" (Finally finished it a few months back) much less "What is you degree in?". A degree is more or less a check-box at this point, they could care less if it was in Underwater Basket-weaving, just that they can tick the "Has bachelors degree" check-box.

    49. Re:Think About It This Way by wolvesofthenight · · Score: 1

      Mostly true. Most companies just care about experience after you have 3+ years of it. But some still do filter on GPA. As I understand it, Sandia's policy applies to all hires regardless of experience. Though in rare cases upper management can provide an exemption. I suspect those HR web pages that have mandatory fill in the GPA box are a strong indicator of the companies that still filter based on GPA for senior employes.

      However, getting that first job can be very hard. And what that job is can have a major impact on getting your next job. So if AvailableNickname is primary concerned about getting a job after school then GPA is a relevant concern. Not the largest concern, but also not one to be brushed off.

      --
      -WolvesOfTheNight
    50. Re:Think About It This Way by Kielistic · · Score: 1

      I would agree with you that math is very important but I think it's more of a correlation than a causation. Programming does not require knowledge of advanced math but the thinking involved in both seems to be fairly similar.

      The issue is why doesn't the programmer know the math? Are they not interested or is "math too hard". Any programmer that I have ever met that thought math was too hard never turned out to be much of a programmer. They seem to lack the abstract thinking ability needed for complex programming tasks. This is not the same as not bothering to learn the math simply due to lack of interest.

      Learning how to think mathematically is also a great benefit for general programming. No matter how good of a programmer or computer scientist you are you will always be better with mathematics.

      The point is math can be important to show you have the abstract thinking skills. It is definitely worth while taking it if you are going to be competing in the job market.

    51. Re:Think About It This Way by Randle_Revar · · Score: 1

      >More if piratical

      Arr, matey! Let's show these landlubbers what for!

    52. Re:Think About It This Way by Assmasher · · Score: 1

      It's never about the number of lines of code you check in, it's about the quality of your work.

      --
      Loading...
    53. Re:Think About It This Way by bigtrike · · Score: 1

      If need that 20ms transaction to be done in 2ms, it really helps to have the analytical thinking skills developed from taking advanced math in order to understand how your database executes the query.

    54. Re:Think About It This Way by Alsee · · Score: 3, Funny

      Long, short, double, long double, whatever.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    55. Re:Think About It This Way by darkwing_bmf · · Score: 1

      Since when is basic logic considered advanced math?

    56. Re:Think About It This Way by darkwing_bmf · · Score: 1

      if you are dealing with HR in a large company, they are going to hire the least expensive option.

      What? No. If you are HR in a large company you hire the person with the degree because, let's face it, if you knew enough to evaluate candidates technical merit, you'd be doing the software job instead of HR. As for cost, it's the companies' money, not yours.

      However, a business owner cares about ability and value (and presumably has the ability to judge both), so they are more likely to hire the HS grad who wrote his own space invaders game for his smart phone.

    57. Re:Think About It This Way by darkwing_bmf · · Score: 1

      Opportunity cost.

      Are the advanced maths bad? Of course not. However there is a cost in time and money to learning them. If I were hiring someone, I'd rather pick an applicant who enthusiastically described the software projects he created, what issues he had and how he was able to solve them to one whose main claim to fame was that he passed differential equations.

    58. Re:Think About It This Way by Frobnicator · · Score: 2

      That's an amazing list of some the lower-paying specialties in the field. But it's a basic rule of all engineering that "fun, difficult, and engaging problems" == "we can pay you less and you'll still do it".

      For beginners in the fields, often that is true. And if you are foolish and never specialize, well, that's your choice. Once you've got a few years of experience in specialty fields you can generally find excellent pay. I've got some recruiter friends who are constantly hunting for experienced graphics specialists in the $150K pay range. If the programmer has skill in negotiating they can get more.

      If you've got a few years of specialized game experience and you are making less than your business-database-programming friends and relatives it is time to shop for a new employer.

      --
      //TODO: Think of witty sig statement
    59. Re:Think About It This Way by hackus · · Score: 1

      The only thing that I would assume on resume with advanced Math degrees is that the individual decided he could afford to take those classes, and the individual who went to a trade school could not afford to take those classes, or was smarter, and invested the money some place else.

      The resume should demonstrate what you do with knowledge, not what you learned.

      I could care less what school you went too.

      If you have someone I can call, or a project you can show me that demonstrates competency in what I am looking for, you get the job.

      Now days there are too many degrees in CS that end up opening a Chixin restraunt because they do not know how to apply knowledge or cannot survive on what they are taught and have to have someone write them a chex every two weeks or they would starve.

      -Hack

      --
      Got Geometrodynamics? Awe, too hard to figure out? Too bad.
    60. Re:Think About It This Way by Anonymous Coward · · Score: 0

      I use the math as a business developer, when someone says something is impossible I usually have an algorithm, a technique, or theorem to the rescue.

    61. Re:Think About It This Way by gander666 · · Score: 1

      Actually, you will be amazed at what almost every company does today in their background checks. You need to care about your GPA for a lot longer than 15 years ago or so.

      --
      Suppose you were an idiot and suppose you were a member of Congress ... but I repeat myself. - Mark T
    62. Re:Think About It This Way by dbIII · · Score: 1

      Physics is about modelling things in the world and that's also the aim of many programming tasks.

    63. Re:Think About It This Way by Gastropod_ca · · Score: 1

      In my very first university math class, a student asked if a computer science student will use this math in real life.

      The professor said something like "probably not"... but then went on to explain that one of the greatest things about math is that is teaches you how to solve problems. Problem solving is a great job skill to have.

    64. Re:Think About It This Way by lgw · · Score: 1

      There's certainly something to that - and I'd imagine in game development particularly: since lots of people burn out young senior devs can command a premium. I think the future is probably brighter for low-level-hackers in general too: as fewer schools bother to teach C or assembly, while demand isn't falling, it might become a good place to be. You're probably still better off in kernel programming than games, but that can be harder to break into as well.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    65. Re:Think About It This Way by phantomfive · · Score: 1

      Clearly you didn't understand my point.

      --
      "First they came for the slanderers and i said nothing."
    66. Re:Think About It This Way by phantomfive · · Score: 1

      Perhaps you meant "short enough supply."

      Yes, thanks for the correction.

      --
      "First they came for the slanderers and i said nothing."
    67. Re:Think About It This Way by Anonymous Coward · · Score: 0

      Consider this: why would a person with all those great qualifications want to work long term for a company which makes no use of those skills?

    68. Re:Think About It This Way by Anonymous Coward · · Score: 0

      Damn minorities!

    69. Re:Think About It This Way by Anonymous Coward · · Score: 0

      Ahem, the best IT pros all come from a CSC background. It's a filter I regularly use when hiring.

      Inevitably, I'll never get someone to be a true senior if they don't have a degree, or, a strong college program with serious drive & ambition.

    70. Re:Think About It This Way by Common+Joe · · Score: 1

      Thank you!

      (Warning; Rant)

      Basically, all of the comments I see around here say "You need to have advanced math". I'm a programmer that tends to work with finances. Based on what I've read over the past few months here at Slashdot, I apparently need to be an expert in the following: advanced math, finances, client-server programming, web design, multi-threading, scripting, security (hardware and software), networking (on a hardware level), O.S. systems, tablet programming, database programming, database optimization, and multiple computer languages -- all that so that I can be a programmer at some company. What can a university offer in this list? Advanced math and finances, I suppose -- and I doubt very little practical application at that. My university (where I got my bachelors) certainly didn't teach anything that was useful for real world programming skills, but I digress.

      No, I'm good at what I do, but I can't be an expert in everything. For most things, high school algebra at an advanced level will get you where you need to be. Some geometry and trig can be good from time to time as well. Game engine design and O.S. design? Yes, of course, you'll need higher maths. Most applications beyond that? No. That's what teams of people are for -- each with their own expertise. I fully agree that a programmer needs to be able to do more than program in just a single language (like Java), but I feel the comments I've been reading in Slashdot have been unreasonable. The poster asked if advanced math is reasonable and nearly everyone said yes. I disagree. I'll say yes but only for a very specific subset of computer science otherwise no. I challenge someone to make a list of what is reasonable for a programmer (or network engineer or O.S. guy) to know that can be learned in just a few short years that will actually help turn someone into a reasonable programmer. How much are we expecting him to swallow so he can be a productive member of society?

    71. Re:Think About It This Way by Hognoxious · · Score: 1

      Did you mean R ?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    72. Re:Think About It This Way by davecb · · Score: 1

      When you get past modus ponens into universal and existential quantifiers. Or, as the medievals would say, when "one crosses the bridge of fools" from the trivia to the quadrivia (:-))

      --dave

      --
      davecb@spamcop.net
    73. Re:Think About It This Way by Anonymous Coward · · Score: 0

      If you consider finance to be scientific, and I'm not sure why you wouldn't, you can make a great deal of money doing advanced math (well beyond calc and lin alg) and programming.

    74. Re:Think About It This Way by Xest · · Score: 1

      "If you want to get a job as an "IT Professional" writing crappy business software, the math (and really, the whole computer science degree) doesn't really matter.

      If you are a business programmer where 20ms means a database transaction, you don't need the math."

      None of this is true, I've worked on business systems in everything from local government, engineering, e-learning and the financial industries. Math has helped me in every single one of them.

      You know why? because math is everywhere. Yes, it's not necessarily the same math you use and it's not necessarily about optimisation (though sometimes it is, but in a different way - i.e. finding good approximate solutions to COPs because brute forcing would take a trillion years), but combinatorics, number theory, coding theory and statistics have all been insanely useful. Even set theory has made it so much easier to visualise in my mind the solution or the possibility of some of the most complex database queries I've had to put together.

      Math makes you a better developer whatever industry you're in, it really is that simple. It's the difference between being able to solve pretty much any problem thrown at you and being a run of the mill drone that says incorrectly "No you can't do that with computers".

      If you're not hiring developers with a mathematical background then whatever industry you're in you're settling for second best.

    75. Re:Think About It This Way by Xest · · Score: 1

      I've always told people who ask that if you want to be the best developer you can be then you need:

      - Mathematics
      - Programming / Comp. Sci.
      - Software architecture
      - Project management
      - People skills

      University will teach you one or two of these things well, the rest you have to learn for yourself. Things like people skills and project management can normally be picked up whilst working as a software developer if you at least take a little time to talk to and sometimes work with your projects and sales team. The rest you'll have to pick up in your own time.

      The problem is that there are really two types of developer, those who do it because it's a job and those who do it because they love it. Neither is an inherently better or worse person than the other, different people have different priorities, but the former have to accept that they will get overtaken in life by the latter. I have a friend whose on a slightly above average wage, he could get more if he could be bothered but he likes the lack of responsibility and the easy ride through life and in many ways I frankly respect that, you've got to have at least some enjoyment in your life. But I've always been rather competitive and I get bored quickly if I spend too much time just sat around not learning, but when I am learning I absolutely love it, I feel happier and it has taught me a lot of skills.

      I know my limits, I know there are still many more advanced areas of maths and computer science I have left to learn but I'll keep doing so (until I no longer have passion for it if that ever happens).

      But for what it's worth I'm not sure what your few short years comment is in reference to? Learning can be a life long thing, I'm only in my early 30s, and I started out life doing technical support and did a stint on helpdesk even, it was soul destroying but in hindsight it wasn't all bad - that's where I got my people skills, that's what makes me effective at dealing with clients today as a lead dev / technical architect. I was programming since I was 13 and was always fascinated with MMO servers and client-server software in general so I learnt how to program and learnt software architecture well back then (though I've continued to learn more, as always). I did mathematics as part of my degree, and project management is just something I've picked up through my progression from junior dev, to dev, to senior dev, to lead dev, to technical architect.

      You can do it all but it has to be something you want to do, and it isn't something you're going to do in just a few short years. It's taken me 18 years and there's plenty of depth left in the topics for me yet. I'm also finding business knowledge useful as I get older too because it's really essential as you move up through the career ladder - if you ever want to become a Technical Director / CTO for example you're going to have to learn a fair bit about people management, corporate finance, corporate governance and so forth.

      If you do want to go for it then don't lose heart, speak to your bosses and get them to try and let you learn a bit about other parts of the business, see if they'll let you attend sales / other client meetings for example if you don't already and that sort of thing - it doesn't have to be much, just attending a 2 hour meeting once every few months or something will give you a good insight to get started with for example.

      As for math specifically, if you're wondering why it might be useful then I think the easiest explanation is simply this; without math you can write software but you'll find you're mostly reinventing the wheel, to genuinely do new things and solve unsolved problems you'll need math. Math is what allowed Larry Page and Sergey Brin at Google to create their pagerank algorithm for example - math is what separates people from simple followers of the field to leaders of the field doing genuinely new, and frankly in my opinion, the most interesting stuff. It'll also separate you from others without math in the interviews by a lon

    76. Re:Think About It This Way by Xest · · Score: 1

      Right but that anecdote is meaningless because what you're effectively saying is that you hired a shit developer. Mathematics isn't a replacement for software development it's a compliment, but if you're bad at software development it wont magically fix that, you've still got a shit developer however you cut it.

      You know, it is possible to be good at maths, good at programming, good at software architecture, good at documentation, and even good at dealing with clients too right?

      A good software developer, bad mathematician is no better or worse than a good mathematician, bad software developer, but both are bottom of the rung when compared against a good software developer, good mathematician - and yes, they exist and I'd wager that the numerous people here on Slashdot defending the importance of maths in software development is evidence of that, because they either are those people, or have encountered those people and have seen the difference it makes.

    77. Re:Think About It This Way by Assmasher · · Score: 1

      My anecdote is not meaningless, it's a direct example of how the OP's suggestion to pick the guy who suffered through math over a guy who went to a more 'programming oriented' curriculum can be the wrong choice.

      I'm not saying it is always the wrong choice, I'm not saying it is often the wrong choice, I"m saying that you can't simply dictate that you take the guy with the math over the guy without the math.

      --
      Loading...
    78. Re:Think About It This Way by Anonymous Coward · · Score: 0

      Isn't the "two resumes in front of me" way of thinking about it disingenuous? It's widely acknowledged (at least it seems to have been the general consensus in every online discussion I've read on the subject) that financially, an MS in CS doesn't make sense most of the time, over a BS. And yet, if you have two resumes in front of you, one from someone with an MS and the other from someone with a BS, you'd choose the former. But the extra time it took to get that MS when you could have been making money with a BS will probably not get paid back over time. Once the MS and BS have both been working a few years in the same industry (as implied by the "two resumes in front of me" usage), they'll make about the same. At least, that's the impression I've gotten from all the discussions I've read. I don't speak from experience; I'm still working on my BS. Please let me know if/where I've gone wrong.

    79. Re:Think About It This Way by Alioth · · Score: 1

      But mathematics is also about abstract analysis and logic (and it can be argued linguistics -- you don't get far without knowing the language of mathematics). It has all those same qualities.

  5. You have more problems than you think by Anonymous Coward · · Score: 5, Insightful

    If you think advanced math is "anything beyond long division", you are probably going to be in trouble.

  6. Some from not at all to very, depends on field by Anonymous Coward · · Score: 0

    See Donald Knuth. See Linus Torvalds

    1. Re:Some from not at all to very, depends on field by Stephan+Schulz · · Score: 1

      See Donald Knuth. See Linus Torvalds

      You mean the guy who got a M.Sc. from Helsinki University or the guy who got a Ph.D. in math from Caltech? Using hashes to manage file in git needs math. Finding a good scheduling algorithm needs math. You don't need all the math all the time - in fact, you probably don't need most of mathematical knowledge at all. But the skills of thinking abstractly and analytically, and a basic understanding of what math can do, are enormously helpful. You can't google something you can't even imagine.

      --

      Stephan

  7. Oh dear by spongman · · Score: 5, Funny

    "Good at computers" ?

    you should put that on your résumé.

    1. Re:Oh dear by jaymz666 · · Score: 1

      That may impress grandma... not HR

    2. Re:Oh dear by Anonymous Coward · · Score: 0

      Computer science is no more about computers than astronomy is about telescopes.

    3. Re:Oh dear by gl4ss · · Score: 1

      Computer science is no more about computers than astronomy is about telescopes.

      and astronomy nowadays has shit all nothing to do with making lenses - though at one point making the devices was the defining trait..

      --
      world was created 5 seconds before this post as it is.
    4. Re:Oh dear by mblase · · Score: 5, Insightful

      "Good at computers" ?

      you should put that on your résumé.

      That was about my reaction.

      Long bio short: I was *great* in math in high school, pretty good at calculus, but differential equations and their non-algorithmic problem solving methods just confused the heck out of me. (In hindsight, I should have asked my teachers for more help.) At the end of my freshman year I was introduced to NCSA Mosaic and then Netscape 0.9, started teaching myself HTML and, later, JavaScript, and got a job coding web sites. I still do that.

      I took to programming so well, I wished I'd tried it sooner. Turns out that programs and math proofs use the same sort of abstract logic -- get from point A to point B using these pieces.

      I always liked computers, but I don't suppose I'd describe myself as "good with computers." That means USING software, not WRITING it. Writing software requires judicious applications of logic and optimization, with varying levels of analysis and computation sprinkled in.

      And the further you get in programming, the more advanced math you need. Graphics? Uses trigonometry. Animation? Matrix algebra. You probably won't need calculus or differential equations unless you're actually doing engineering, but how do you know at this point that you won't?

      Heck, my state university wouldn't even let me get a CompSci minor without passing a class in circuit design, and you'd better believe I needed to know algebra when designing a binary multiplier.

      My point is this: computer science IS math, just with a different vocabulary. Being a CS major because you're "good with computers" is like being an auto mechanic because you're "good at driving".

      Math isn't about numbers, it's about logic and problem solving, and computer science is even more so. If you can't even find something to enjoy about simple algebra, then with all due respect, you're in the wrong field.

    5. Re:Oh dear by Nukenbar · · Score: 1

      Might want to pass on using grok as well.

    6. Re:Oh dear by Beardo+the+Bearded · · Score: 1

      That's what I've got on my business cards.

      --

      ---
      ECHELON is a government program to find words like bomb, jihad, plutonium, assassinate, and anarchy.
    7. Re:Oh dear by CryptoJones · · Score: 1

      This. I wish I had mod points right now.

      --
      "Chance favors the prepared mind." ~Me
    8. Re:Oh dear by odysseus_complex · · Score: 1

      General rule of thumb for any career path: Figure out what math you need for that career and go one step further.

      Your career needs only algebra? Take Pre-calc.

      Your career needs only single-variable calc? Take multivariable-calc.

      The experience you'll get from working with what is required in a grander scheme will help you to appreciate what you are doing and give you greater insight of how to go from point A to point C without necessarily going through point B. For the work that I do discrete math was the maximum of what I needed but taking that course in fractal analysis has been crucial in shaping the way I vew problems.

    9. Re:Oh dear by Anonymous Coward · · Score: 0

      But if you do Astronomy seriously (as in for a living), you will be designing and building yourself a great deal of equipment. It's just they're not lenses anymore, but electronic devices.

    10. Re:Oh dear by Deadstick · · Score: 1

      Yeah, he ought to specify how good he is. You know, include his World of Warcraft level.

    11. Re:Oh dear by Anonymous Coward · · Score: 0

      differential equations and their non-algorithmic problem solving method

      I wrote a desolve fucntion for my ti-92plus that pretty print the intermediate step and it is quite algorithmic. You basically calculate a bunch of discriminant to select the right method , the you apply it step by step.... choosing the "right" technique is hard but that is why there is a bunch of test that you can systematically apply to select it...

  8. 3 hours on differential equations? by phantomfive · · Score: 3, Insightful

    In the real world you're going to have problems that are much, much more difficult than 3 hours. Work through it, if for nothing else than to improve your problem solving skills. That is something you definitely will never regret.

    FWIW I had some trouble with differential equations, too. I went to the library and found a book there that explained it much better. Made my life a lot easier. If you're having trouble 'groking' advanced math then the problem might not be you, it might be your book/teacher. But if you are afraid of work, the problem is definitely you.

    --
    "First they came for the slanderers and i said nothing."
    1. Re:3 hours on differential equations? by Anonymous Coward · · Score: 1

      So what was the book?

    2. Re:3 hours on differential equations? by Anonymous Coward · · Score: 0

      In undergrad, I typically did 3 hours of DiffyQ homework *per night* - for the year that I had the mathematical methods in the physical sciences sequence. In addition to the linear / non-linear mathematics, I also sweated my ass off in logic / predicate calculus / finite math. I went on to get a dual major (physics / math) B.S., and a master's in CS.
      This has opened up all kinds of areas to me: medical device algorithm design, simulation of physical and financial systems, analytics & visualization, and more.
      I work for a Fortune 100 pharma company in IS, am seen as one of the leading innovators there, and get all sorts of plum opportunities.
      Bottom line: Tough it out!

    3. Re:3 hours on differential equations? by Anonymous Coward · · Score: 0

      Any chance you can still remember what that differential equations book was called, and who wrote it?

    4. Re:3 hours on differential equations? by krlynch · · Score: 1

      In undergrad, I typically did 3 hours of DiffyQ homework *per night*

      That's what I noticed first ... I tell my students that they should be doing about 3 hours of homework per credit hour per week. For a full time load, that works out to about 60 hours of classes plus homework a week. If you're doing WAY less than that, AND you're complaining about the work load .... you need to rethink you're approach to your education.

    5. Re:3 hours on differential equations? by Anonymous Coward · · Score: 0

      Agreed. Forget trying to figure out how important the math will be. There are jobs where you'll need it. There are jobs where it really won't make much difference. But there are also many cases where you can get by without it but you'll definitely do better work if you understand it.

      Therefore, listen to the poster. Different people learn in different ways. Some teachers don't realize this. Also, even the ones who do realize it don't have time to teach everybody differently. If your teacher's method of teaching and the textbook don't work for you, you're gonna need to look elsewhere.

      Your university library probably has a number of introductory textbooks covering differential equations (or any given other topic). Also, depending on your school, there may be a math help centre, not just with tutors, but a large collection of introductory textbooks that you can refer to. There may be a math reading room which may or may not be open to undergraduates but if you approach the right person, you might be able to at least see what they have.

      Also, find out what other textbooks were used in the past. Sometimes schools change textbooks without a good reason, or are forced to because a publisher decides to carry a different flagship textbook for that subject. Find out from more senior students what books they used. I've seen universities switch from good to unexceptional or even unsuitable texts. Sometimes they do it to reduce textbook costs but then realize the cheaper book isn't as useful.

      What resources are available will depend on the school, but there's bound to be something available and free.

      Take a look at amazon. Even if you can't afford to buy another textbook, the reviews may draw attention to a textbook that happens to be available at your university library, math help centre, etc.

      One final thing, see if there's anybody in the math department that spends relatively more of their time evaluating textbooks or who is the liaison with publishers. They may have a broader knowledge of textbooks. Also, such people are not necessarily tenured profs and have a more teaching-specific background (vs. research). They may offer some useful advice. They also often have an excess of math textbooks and if they're recommending something they have too much of, they may be happy to get rid of one of those extra copies.

    6. Re:3 hours on differential equations? by jafac · · Score: 1

      . . . IMO - it's almost certainly the book/teacher.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    7. Re:3 hours on differential equations? by phantomfive · · Score: 1

      Why? On what do you base your opinion?

      --
      "First they came for the slanderers and i said nothing."
    8. Re:3 hours on differential equations? by Anonymous Coward · · Score: 0

      Can't comment on the poster's generalization that it's "it's almost certainly the book/teacher."

      But I can say, from personal experience, that the quality of the teacher and text makes a huge difference in how easy it is to grasp the material.

      Different people learn in different ways. If you have access to a teacher that is compatible with how you learn, or a textbook that is compatible with how you learn, studying is much easier.

      Good teachers also realize this. Unfortunately, some do not.

      A few people will catch to anything no matter what resources they have. A few will struggle and get nowhere. But the rest of us are somewhere in between.

  9. another degree maybe? by Anonymous Coward · · Score: 0

    I know places like RIT offer degrees in Software Engineering which it sounds like you're more interested in vs Comp Sci which is the theoretical portion.

  10. You probably don't need the advanced math! by Haydn · · Score: 2

    I have both a BS and MS in CS, and have never taken (or needed) differential equations. I also completed all of the coursework for my Ph.D in CS, but didn't do the dissertation. I took three calculus courses, and have never used them, either! Analysis of Algorithms and the ability to do high school algebra and occasionally trigonometry have stood me well, however.

    1. Re:You probably don't need the advanced math! by Anonymous Coward · · Score: 0

      To reiterate what was already said, it depends on what you are interested in.

      High school algebra is useful for most things involving simple variables and math, high-level user-space development that could probably be done in Python, Perl, or Tcl/Tk. You may even be able to get into some low-level architecture or driver development, but you won't get very far.

      However, at least as I was doing my BS and MS in CS, there was a strong drive for game design and development. Guess what? all those polygons can't be manipulated with only high-school math, you'll need a couple semesters in Linear Algebra to really understand what those matrices are really doing. It's tricky to think about abstract things in three-dimensional space and keep all the local/relative/global coordinate systems straight. Take it a step further and go into serious simulations or war-gaming, and you'll need to be able to translate those physics (often differential) equations into code. The further I get in my career, the more I wish I'd have taken some of those physics and higher-level math courses, it would make it much easier to develop believable models for Fluid Dynamics simulations, flight simulations and other tools to research ideas.

    2. Re:You probably don't need the advanced math! by jadrian · · Score: 1

      You need calculus for analysis of algorithms. Even for simple deterministic programs you'll need at least to work with series (which is discrete calculus). Add random inputs and/or noise and you'll need statistics, which itself requires calculus.

    3. Re:You probably don't need the advanced math! by i.r.id10t · · Score: 1

      I'm in the same spot as the questioner... the Comp Sci program at my local state U is part of the college of engineering, so in order to get in, you have to have the same first 2 years/pre-reqs as a chemical, civil, mechanical, etc. engineer student - so Physics w/ Calc, Calc w/ Diff Eq, etc.

      Once you are in the program, it is a couple of programming classes, networking, database design and sql, etc. Heck, one of the 4th year electives is Linux Administration, which I teach here at "the other college in town" (a community college) even though I "only" have an AS degree and a couple of decades of experience in the IT field (programming and Linux stuff).

      --
      Don't blame me, I voted for Kodos
    4. Re:You probably don't need the advanced math! by Anonymous Coward · · Score: 0

      You don't need to understand the Laplace Transform at a level I was required to pass my obligatory calculus tho.

  11. Not so much by Anonymous Coward · · Score: 1

    Unless you are programming video stuff or programs that actually require advanced math.

    the majority of programming does not.

  12. I have both a Math and CS Degree by whitedsepdivine · · Score: 1

    Discrete and Numerical Analysis are the only classes that I recommend. I am the Lead Architect of a Mega Scale project, and can honestly say I never use those advance method concepts. I do although recommend learning the thought process that comes along with those math classes. There are projects that use a lot of computations, but many don't. Try to learn the ideas behind it all, and then forget the formulas, you can always look them up.

    1. Re:I have both a Math and CS Degree by Anonymous Coward · · Score: 0

      As a practical matter I would also recommend courses that include some information about:
      - graphs
      - relational algebra
      - statistics

    2. Re:I have both a Math and CS Degree by whitedsepdivine · · Score: 1

      Linear if you ever want to do video games or graphics.

    3. Re:I have both a Math and CS Degree by citizenr · · Score: 1

      or DSP, or AI, or .. anything more involved than phone app in some visual creator.

      --
      Who logs in to gdm? Not I, said the duck.
  13. Suck it up by Anonymous Coward · · Score: 0

    and learn. It won't be immediately useful, but someday you'll put it to use to solve a problem, or to understand the nature of a problem.

    Khan Academy on Diff-Qs

  14. Writing by avandesande · · Score: 1

    I think some writing courses would probably give you more mileage.

    --
    love is just extroverted narcissism
  15. Sorry by Anonymous Coward · · Score: 0

    I think it's important for training your brain to think they way required to code. Math, logic, etc. all go together.

  16. It isn't by Anonymous Coward · · Score: 1

    I've been a software developer for over a decade. I majored in Computer Science and minored in Mathematics. In short, no one has given a crap about my knowledge of calculus, complex variables, and the like. Not once. A sole number theory problem came up once during an interview, but that's it.

    If I could do it over again, I would have definitely picked a different minor; perhaps in physics, environmental sciences, or even writing.

    1. Re:It isn't by Anonymous Coward · · Score: 0

      You lead a boring life or at least, a not very creative one.

      In the past two years I've had to employ Galois fields, needed to find the closed form for a homogeneous linear recursion relation with constant coefficients, had to maintain a weighted average with decay, needed to know the difference between the average and worst case run times between two algorithms, same for average and worst case memory use between two others, had to find an inflection point in a curve, surface maximum in another problem, needed to generate a bunch of non-uniform random numbers and other miscellaneous crap I don't even remember.

      No, none of this was anything to do with math applications or math "for math sake". It was all related to hardware design or file systems work.

      Sometimes, not always I grant you, it is better to abstract the problem mathematically, solve that and implement the solution in one tight, little, well documented routine than find the 10+ things you need to string together from four non-portable libraries, that might not even be maintained next year, to get done what needs to be done. I think a lot of this "I don't need the math I learned" bullshit is more laziness than anything else.

      Bolting shit together seems to be many folks standard mode in this field. There is a fun, easily defensible way to do things too though. However, you do have to be willing to bring all your skills to bear when tasked with a problem. If you are lazy, you're right, you probably won't *need* the math since there is almost always a non-optimal way to solve the problem at hand that doesn't require you to think much about what you are doing. Your code will suck in some way, quite often, but if you're OK with that more power to you...

      In short, for me, the math minor wasn't enough. I've had to learn more since my time at university.

    2. Re:It isn't by twistedcubic · · Score: 1

      This one gets my vote for the Most Insightful Post of the Year Award.

  17. It is what computers do. by Matt_Bennett · · Score: 1

    Computers do math. They just do math. Yes, it is important to learn, both from a practical aspect (can you predict the entire arc of your career right now?), and probably the most important- getting through these classes show you have the ability to take on complex subjects in a relatively short amount of time and apply them.

    Beyond anything else, a degree is a method of showing potential employers that you can learn.

    1. Re:It is what computers do. by OneFlame · · Score: 0

      Computers don't "do" math. Physics was used to create computers... Sure. Computers execute logic instructions, which in turn is used to do math. So, indirectly, they do math, sort files, or whatever. Their "core", is executing logic. Logic is what is required, not advanced math.

  18. Differential equations is not advanced math. by Garridan · · Score: 5, Insightful

    Mathematician here. You're learning differential equations to prepare you for lifetime of abstraction, to sharpen your skills in symbolic manipulation. Those differential equations probably won't really enter into the game... but who knows, you might end up doing game physics which is nothing but a massive differential equation solver.

    But I'm here to tell you that differential equations are not advanced math. Take a discrete math class to get a taste of what 'real' math is for a programmer. Take data structures. You'll find yourself doing formal proofs (real math), and it will be extremely applicable to the rest of your programming career. That DE class is there just to make sure you can manipulate symbols.

    1. Re:Differential equations is not advanced math. by vurian · · Score: 2

      "You're learning differential equations to prepare you for lifetime of abstraction, to sharpen your skills in symbolic manipulation." That sounds a lot like the reason people were once told to learn Latin and Greek -- it would prepare them for a lifetime of thinking. Me, I think it works. Make everyone go through a course that has enough hard enough things to do and keep the ones who get through. It's just that maths isn't anything special, or even of more practical use than Latin, it's just a way to distinguish between capable and incapable.

    2. Re:Differential equations is not advanced math. by Anonymous Coward · · Score: 0

      Professional "computer scientist" here: Discrete math, second course in linear algebra (for graphics) and first and second class in calculus (diff then integral) was all I ever needed... I'll second the notion that just getting through these I is what I'd now consider basic scientific mathematics, not "advanced." But by advanced I normally think "not useful" :P Hehe, only barely j/k :)

    3. Re:Differential equations is not advanced math. by P-niiice · · Score: 1

      That's what the first two years of any degree are. Weed out the slackers.

    4. Re:Differential equations is not advanced math. by stymy · · Score: 2

      People didn't study Latin and Greek just for their sake. They studied those languages in order to read some of the greatest works of literature, philosophy and mathematics in human history. I studied Latin in grade school (Argentinian private school) and I'm glad I did. Latin made it easier to learn Italian and French, as well as English (65% of the vocabulary in English has Latin roots, as well as a number of grammatical rules). Moreover, no translation can do justice to the beauty of Virgil's poetry, and it is amazing how simple Greek words like kleos and nostos can be so nuanced.

    5. Re:Differential equations is not advanced math. by Anonymous Coward · · Score: 0

      ^this

      I hated some of my classes. Thought they were 'total nonsense'. Guess which ones I use every day?...

      "I failed my first 2 SQL classes" "what that is impossible your the best person at this I have ever seen"

      Why did I fail? Because I thought they were non relevant. You can not see into the future to see what you will need. Now I am not ashamed to admit I am pretty good at it. Is it what I do for a primary job? No but being good at it sure helps when everyone else gets stuck.

    6. Re:Differential equations is not advanced math. by Anonymous Coward · · Score: 0

      "You're learning differential equations to prepare you for lifetime of abstraction"

      Yes. Abstraction and being able to follow complicated trains of thought. I have sat in meetings gathering requirements from customers who say, "It needs to do X in this case, but Y in the other case. Oh, except if it's this case *and* that case then it needs to . . . oh, I'm probably confusing you!"

      At which point, I smile to myself and think, "Dude, I've taken a year's worth of graduate-level topology. That was confusing; this is nothing!"

    7. Re:Differential equations is not advanced math. by Anonymous Coward · · Score: 0

      More like extracting money from slackers....

    8. Re:Differential equations is not advanced math. by Anonymous Coward · · Score: 0

      my motto, D is for Diploma

    9. Re:Differential equations is not advanced math. by BorisSkratchunkov · · Score: 1

      I mean, we shouldn't forget that Latin (and inflected languages more generally) also has the advantage of making you think about relations more explicitly. When word order is not a primary way of organizing meaning, you're forced to think in paradigms.

    10. Re:Differential equations is not advanced math. by idontusenumbers · · Score: 1

      It would be wiser to prepare for a lifetime of abstraction by learning and practicing a form of abstraction that one will actually use in said lifetime.

    11. Re:Differential equations is not advanced math. by Assmasher · · Score: 1

      Totally agreed.

      I didn't enjoy Calc I, but it wasn't too bad.
      I slogged my way through Calc II, while more intense, it wasn't too back either.
      Calc III where we went back and proved Calc I and II made me want to give birth to an accountant (props to Dangerfield here.)

      The ability to perform abstractions, and do so mathematically, is INCREDIBLY important in any complicated software system.

      I didn't like math either - just gut it out, you'll be happy you did.

      --
      Loading...
    12. Re:Differential equations is not advanced math. by Bigby · · Score: 1

      And a matrix class

    13. Re:Differential equations is not advanced math. by Anonymous Coward · · Score: 0

      But I'm here to tell you that differential equations are not advanced math.

      If differential equations are not so hard go ahead and solve the Navier–Stokes equations. Fame and money will be yours.

    14. Re:Differential equations is not advanced math. by sammy+baby · · Score: 1

      The irony here is that I found discrete math and data structures to be far, far easier than many of my other math classes.

      On the other hand, I'd already had an introduction to topics like predicate calculus. I had the feeling sometimes that the comp sci professor teaching my discrete math course didn't understand the topic much better than I did.

    15. Re:Differential equations is not advanced math. by Garridan · · Score: 1

      There is no dichotomy here.

    16. Re:Differential equations is not advanced math. by Garridan · · Score: 1

      Meh. I'm not motivated by either of those things.

    17. Re:Differential equations is not advanced math. by dcollins · · Score: 1

      With Latin I can usually parse out the meaning of practically any European language for free (sometimes better than my French girlfriend). It's like the alphabet or multiplication table of all Western speech, so why not learn they key to it all in one swoop? One might call that an elegant abstraction.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    18. Re:Differential equations is not advanced math. by mdielmann · · Score: 1

      It would be wiser to prepare for a lifetime of abstraction by learning and practicing a form of abstraction that one will actually use in said lifetime.

      I would like to believe you're trolling, but I suspect you aren't.

      The idea behind abstraction is that it doesn't matter what you learned, it's how you learned to think about the problem. It's the difference between knowing how to use MS Word and knowing how to use a word processor, knowing how to use MS Excel and knowing how to use spreadsheets. The idea is to teach you how to solve problems, not how to solve problems in a certain field.

      This can be done in a more 'practical' area, but the beauty of math is that your set of tools are limited, a successful result is limited or unique, and the process used to arrive at your result can be understood by anyone who actually grasps the math concepts. Once you can solve a problem with those restrictions, little things like user requirements and process flow become trivial.

      I'm certainly biased - I love math. After all, it's the language that describes the universe.

      --
      Sure I'm paranoid, but am I paranoid enough?
    19. Re:Differential equations is not advanced math. by Anonymous Coward · · Score: 0

      That DE class is there just to make sure you can manipulate symbols.

      Or perhaps more likely that DE class is there just to fulfill some "basic" engineering requirement.

      At the university I attended (at the time I attended) the DE course was not required of CS students but it was required of Computer Engineering students and all other "College of Engineering" students. The CS students were some how exempt from the DE course but they were required to take other math courses that make more sense for general CS students like discrete math, logic, algorithms, data structures, finite state automata, numerical analysis, and so on. Some of these courses were provided by the Mathematics department while others were provided by "Computer Science", "Electrical and Computer Engineering", or the "College of Engineering" departments but they were all math courses in disguise.

      The closer to the hardware you get the more math you need to understand. Do you need to understand multi-variable or vector calculus to be a good programmer (required at my university) probably not but those classes will teach you good problem solving techniques and should not be dismissed.

    20. Re:Differential equations is not advanced math. by idontusenumbers · · Score: 1

      I'm not comparing MS Excel to spreadsheets, I'm comparing spreadsheets to gardening.

      I've heard too many times that "what you learn in college is how to learn". As a professional developer, I've worked with too many A-student CS graduates that didn't understand (and couldn't seem to learn) important things like XML, IP Networking, concurrency, debugging, and SQL, despite all those things being part of the courses the students took.

      What you claim to be the beauty of math (and to which I largely agree with) is what makes math a poor substitute for real-world abstractions. Work in the real-word isn't as nicely constrained as math. Not only do you need to be able to deal with abstraction, there are technical limitations, politics, interpersonal issues, vendors, compatibility, bad specs, buggy libraries, etc. The year someone spends doing advanced math is a year better spent learning (or being weeded out by) something from the real-world.

    21. Re:Differential equations is not advanced math. by Anonymous Coward · · Score: 0

      For some truly enjoyable, mathematical experience that's immediately relevant for a computer person, I heartily recommend The Unprovability of Consistency by George Boolos. I have never seen a clearer mathematical work. It is challenging but what's most important, it doesn't have any of the handwaving other mathematics and physics books seem to be riddled with.

    22. Re:Differential equations is not advanced math. by Garridan · · Score: 1

      College grads are naive, unprepared for the real world, and diverse in their skills and deficiencies? Alert the press!

      Seriously, though. We're talking about a university education, not a certificate from a trade school. It sounds like you want the latter. Many programmers *do* need to know about differential equations, calculus, and the like (again, not 'advanced', but whatever). A university is an environment in which one can learn, the 'real world' is an environment in which one must learn.

    23. Re:Differential equations is not advanced math. by mdielmann · · Score: 1

      Not only do you need to be able to deal with abstraction, there are technical limitations, politics, interpersonal issues, vendors, compatibility, bad specs, buggy libraries, etc.

      I'm not aware of any courses that teach most of those issues, and the ones that do (psychology and political science) aren't really found in a technical degree. As for the rest, any course would be at least halfway out of date before the syllabus was written up. Sounds like they're all better dealt with in real-world personal development, often called work experience.

      Seriously, sounds like you're more appreciative of a trade school program, which certainly has it's strengths. In fact, some of them can be quite good, if that's what you're looking for.

      --
      Sure I'm paranoid, but am I paranoid enough?
    24. Re:Differential equations is not advanced math. by servognome · · Score: 1

      "Advanced math" is basically learning techniques to manipulate equations into more understandable forms. Most of which have specific applications, discrete math for CS, laplace transforms for EE, stats for analyzing something that is repeated, vector calc for motion, etc.
      First figure out what field you want to go into, then choose the math best translates into it.

      --
      D6 63 0D 70 89 81 BB 8E 7B 7C 5F 5D 54 EA AB 73
    25. Re:Differential equations is not advanced math. by idontusenumbers · · Score: 1

      The vast majority of University students are there to get a job writing software and not be research scientists. The vast majority of businesses hiring employees with a requirement that those employees be a CS graduate are not invoking math skills above algebra. Regardless of what you *think* University degrees entail, represent, or are for, the real world says those graduates are going to be writing code that a high-school or trade-school could have just as well prepared them for (if not better prepared them for). *Of course* a business is going to favor the University graduate. That doesn't, in itself, justify the taking of those more advanced math courses.

    26. Re:Differential equations is not advanced math. by Anonymous Coward · · Score: 0

      It would be wiser to prepare for a lifetime of abstraction by learning and practicing a form of abstraction that one will actually use in said lifetime.

      And, pray tell, WHAT is that hugely useful form of abstraction, which EVERYONE will use in their lifetime?

      Can't tell? Well, then the form that MOST people taking the courses are known to use would be good enough, right?

      And, guess what? Most people taking these basic math courses (note: "basic", DE is in no way "advanced" math, as many has pointed out) usually have no other math background other than basic algebra, and hopefully most have worked with some basic physics like equations of motion. So DE is the area that most can immediately start learning without having to waste 3 more weeks just to learn the groundwork.

      So, if you can't suggest another better topic, maybe you should just suck it up and learn DE.

    27. Re:Differential equations is not advanced math. by Garridan · · Score: 1

      The vast majority of University students are there to drink and fuck off the final years of their childhood and just learn enough to score a job with it.

      FTFY. I'm beginning to think that you don't know what a 'university education' means. It does not, for example, imply that an individual can find their ass with both hands, much less posess a shred of knowledge you find useful as an employer / coworker. The way that people react to a $50k sheet of paper is entirely up to them.

    28. Re:Differential equations is not advanced math. by idontusenumbers · · Score: 1

      Agreed. Sounds more and more like you now agree that advanced math should NOT be part of that sheet of paper.

    29. Re:Differential equations is not advanced math. by Garridan · · Score: 1

      lol, what kind of crack are you smoking? I think all science and engineering students should be subject to much more advanced math than they already are. Except math majors: they should be forced to do more programming. The point that I've been trying to make is that you need to pull your head out of your ass and stop complaining about diplomas not being something they are not.

    30. Re:Differential equations is not advanced math. by idontusenumbers · · Score: 1

      Almost every student and almost every employer agree on what diplomas are. You seem to be arguing they are something different. I personally believe they are a bunch of bullshit but I am in the minority and I realize this and thus am arguing for the majority. What those students and employers both agree a degree means does *not* include advanced math for software engineering positions. If a graduate that took multiple courses in calculus can't remember or apply what they learned a year later (or even during the course), what does it matter that they took the course? Their mind was likely thinking of something more important: what skills they will need to have or learn for their future career.

    31. Re:Differential equations is not advanced math. by Garridan · · Score: 1

      As I began this thread: calculus is not "advanced". Data structures, algorithms, graph theory, etc., are more advanced math courses that I think are quite applicable for software engineers. And, for whatever it's worth, many software engineers do need calculus in their day to day job -- universities are nominally in the business of providing general education, not just training for one specific job.

      But more to the point: those employers and students can agree to whatever the hell they want, but it doesn't change the fact that a diploma says nothing but "I Navigated a Level Two Maze of Bureaucracy" with some gilding and fancy lettering. Anybody who thinks anything more of it is a damned fool.

    32. Re:Differential equations is not advanced math. by idontusenumbers · · Score: 1

      "for whatever it's worth, many software engineers do need calculus in their day to day job" If by many you mean "a lot of people", but I would estimate this at less than a half of a percent of software developers. All I am saying is make a more universally useful course mandatory instead of a course that might be used by a tiny fraction of the graduates mandatory.

    33. Re:Differential equations is not advanced math. by Garridan · · Score: 1

      Basic numeracy is a necessary skill. One does not learn a subject until it is applied to something greater. Calculus is that application that cements basic numeracy in your sofware engineers. The skill they use to figure out how big their array has to be, feasibility of their algorithms to run in reasonable time, and more and more and more. Do not fuck with this.

      The complement of your experience is exactly the opposite of 'all but a tiny fraction'. Have you numeracy? I guess basic set theory is too advanced -- so... you're a 'software engineer' who uses SQL, and you don't know what the complement of a set is. Super. Yeah. I guess universities who teach computer science, a(n academic, hence borderline useless) theory of computation and its miriad applications and implementations have really dropped the ball 'cause a wet-behind-the-ears kid, slumming it with an IT job, didn't know how to configure a router because his senior project was an asynchronous processor design and not taking "IP Tables for Dummies 403". University does not train for every job. It doesn't train for jobs. We do it for knowledge. It's not to be useful.

      You go and start your "ICANTUSEMATH ONLY-USEFUL SCHOOL OF COMPUTER ENG1NEER" and see how well your students do in the work force. I guarantee they'll need training at every new job they get. But will they have the basics?

      Just out of curiosity: was this coworker you refer to new, perhaps sent to you for training?

  19. CS is Math by Anonymous Coward · · Score: 0

    Maybe you should consider majoring in another computer related field, such as IT or Software Engineering?

  20. A Solid it Depends... by Anonymous Coward · · Score: 0

    It really depends on what you are planning on doing in Computer Science. If you are planning on following the traditional path where you are using existing Programming Languages and developing software off that, then you really don't need much in the way of math skills. You simply need to know that one sort is faster than another and you use that faster sort (frankly, you just use the built in sorting capabilities and you don't need to think about it).

    If you are going down the research pathways, in private or public sectors, higher level math skills are quite a bit more important. You need to be able to analyze what your algorithm is doing, how quickly it will process, and understand the reasons behind it to make it better.

    1. Re:A Solid it Depends... by Jorl17 · · Score: 1

      And don't forget statistics and data analysis!

      --
      Have you heard about SoylentNews?
  21. Math is important by Anonymous Coward · · Score: 0

    I can relate with the not knowing what the math will be used for, but as a computer programmer I always find areas where I wish I had learned more math. Computers at their lowest level are mathematical beasts, and knowing (and more importantly understanding) more math will help you dream up better algorithms.Of course there are CompSci related professions where the math isn't as important as others.

  22. Not specifically, but it is important by Anonymous Coward · · Score: 0

    The specifics of the math is unimportant. The logical analysis and critical thinking exercises are very important.

  23. Depends on what field you go into by ender8282 · · Score: 1

    Honestly diffirential equations probably isn't the most important skill for a Comp Sci graduate to have. Outside of specific applications you'll probably never use it again. I never have. I wouldn't discount all higher math though. Most algebra related classes (discrete algebra, linear algebra) definately have applications and if you don't understant those you'll probably suffer for it. Just suck it up and deal with it. The system isn't about teaching you useful skills. The system is about proving that you can jump though hoops.

  24. holy crap by Anonymous Coward · · Score: 0

    Math is important for everything. And this isn't even advanced math yet. It is like color-by-numbers compared to painting.

  25. CS == Applied Math by tommeke100 · · Score: 1

    Many parts of Computer Science require quite some mathematical knowledge.
    Machine Learning, Artificial Intelligence, computability, linear regression, .... all require you to know something about math.

    Sure you don't need advanced math to install a router or network. Or even to make an App. But you're pursuing a degree in Computer Science, so computer science you get. If you're just interested in some programming, networks, etc... You may be better of getting some certifications from M$, Oracle, Cisco and the like.

    1. Re:CS == Applied Math by Anonymous Coward · · Score: 0

      You hit the nail on the head. The revolting term "IT professional" seems to gloss over an entire industry from Office support to Quants, none of which are 'professional' in any legal sense of the word. If the term "Car Professional" existed it would cover everything from mechanics to F1 drivers. I think the original question masks a deeper problem for the poster...what does he want to do? If he aspires to be a game designer then Math is a Must. If he wants to maintain corporate networks, an M$ 'engineer' (hah!) certification is good enough.

  26. Advanced Math is the best predictor by Anonymous Coward · · Score: 0

    Advanced Math is one of the best predictors of how good of programmer you will be. Programming is really about quickly understanding a situation and breaking down the problem into simpler steps. Very similar to Advanced math, understanding an equation and realizing it breaks down into 2 or 3 fundamental equations. The top 5% of programmers easily twice as productive as the next 10% and the bottom 20% actually have negative productivity on a team. Any one can learn to program, however very few will be great at it and that is why most computer science programs use Advanced Math to filter out people with less potential.

    1. Re:Advanced Math is the best predictor by darkwing_bmf · · Score: 1

      Programming is really about quickly understanding a situation and breaking down the problem into simpler steps.

      I agree with this, but I view it more as logic (boolean logic, discrete math) than engineering math (calculus, differential equations). Engineering math has far more to do with memorization than analysis. Unfortunately, its the engineering math that is more often required in a degree plan. I'll take the view that "advanced math" is post-graduate level and not really what the OP was referring to.

  27. It depends by Jorl17 · · Score: 1

    Maths is always good, no matter what situation. It goes side by side with logic, and calculus is a way of thinking about the world and its processes.

    For some areas, there's a lot of math involved. Consider data analysis. At first, it may seem like you will never need data analysis, but many people end up working for companies where they have to track performance and efficiency issues (if you can save those 5 bits for each of those 10M clients, you'll get a nice raise). Another example: picture a situation where you are developing a phone application to determine if the user is riding a bus or not. In these kinds of situations (not that rare), you'll need to know data analysis, frequency analysis, time-frequency analysis....and for that you'll always eventually wind up having to understand some concepts of 'Advanced Math' (though do note that this isn't 'advanced math' at all)

    I often hear that there are engineers and programmers. If you just want to be a programmer, maybe you won't need maths, but if you want to be an engineer, it will not only boost your way of thinking, but also simplify a lot of problems. (I'm not saying you'll ever have to know how JPEG or GIF works -- this involves maths --, but I'm saying that if you do, then you can do great things with that information).

    --
    Have you heard about SoylentNews?
  28. Classes aren't requirements... by sohmc · · Score: 1

    An important lesson I learned after college is that not every "requirement" is an actual requirement. Requirements like classes are often hurdles that are placed to either weed out people who don't want to do the hard work. Sometimes they are there to seem accredited to other organizations, allowing the school to justify their degrees.

    I couldn't get a CompSci degree for the same reason. I couldn't handle calc. I got As in all my programming classes, but couldn't do the math.

    I would say CS requires more creative thinking than logical thinking, but both are needed. However, in my every day life, I use maybe an Algebra 2 level type math?

    Unless you're going to be writing video games or the like, you probably don't need it. But unfortunately, nothing you can do about it if the school is requiring you to.

    You can do what I'm doing: get an English degree, show off your computer skills, and tell employers that with my geekiness and my English skills, I make great presentations and write very well.

    --
    We don't live in Shouldland.
  29. Depends by ItzRobZ · · Score: 2

    If you're going into IT, chances are you probably don't need advanced math. Going into CS research? Probably. General software development? I think knowing advanced math helps you develop interesting and useful algorithms that can be used in the software. You may not use the advanced math topics/tools, but the skills you learn in advanced math help a bunch.

  30. Pretty important... by Anonymous Coward · · Score: 0

    You need to understand algebra backwards, forwards, and in random order. If you meant that you don't grok algebra by "anything beyond long division" you should either apply yourself, or give up and find another field. Algebra isn't advanced math, it's extremely basic math.. At least as far as a BSCS is concerned. Is it important to understand Calclulus, and DE? Probably not..But you'll almost certainly need to pass the courses.

    It isn't about 'being designed by mathematicians', it's about understanding basic math as it relates to computers. How are you going to understand the complexity of algorithms when you don't understand the most basic math? When someone expresses that a algorithm executes in logarithmic time, or exponential time... It's not OK to just have your eyes gloss over and go to your happy place.

    Also, to be fair: You don't need log division. You don't even need to know how to multiply. Computers do that stuff for you... But you describe how they should do it with algebra.

  31. Not important. by Anonymous Coward · · Score: 0

    Muddle through diff-eq and then promptly forget it all. You won't need it for future coursework. I haven't needed it in my 5 years of career so far, and I'm doing quite well financially. Frankly, I don't understand why they make undergrads in computer fields take it.

  32. If you can't grok anything more than long division by Anonymous Coward · · Score: 0

    ... you're going to be a shitty programmer.

    Not that you'll directly need math in programming -- but the mental skillset is the same when you start doing things beyond the trivial or already well understood. I regularly use concepts from calculus, trig, etc. but then again I do a lot of GIS and graphics work.

    That said, what CS degree is requiring you to do diffeq? I've never seen one go beyond calculus, statistics and discrete mathematics.

  33. It varies by Anonymous Coward · · Score: 0

    It depends on what you want to do. I work mostly with device drivers, and I rarely deal with anything more complex than trigonometry and some discrete mathematics (although I wish I had more background in queuing theory). If you're primarily interested in web site design, you probably won't use much past trigonometry.

    An area like Computer Vision, though, requires a solid background in mathematics through Linear Algebra, and a computer graphics is heavily mathematical.

    Phil Klein, an CS professor at Brown, is teaching an on-line course at Coursera on linear algebra that you might want to check out. Its goal is to introduce linear algebra by exploring its use in a number of domains.

  34. people will look at you by shadowrat · · Score: 1

    I went to school for art. I have no degree to show for it. I always had an interest in comp-sci, but never pursued it beyond a hobby in school. Now i'm a senior engineer at a big software company making cool stuff. I'm well respected by my peers and have never had a hard time getting a job in this industry. I suck at differential equations (I am good at vector and matrix math, and well, i can apply quaternions. my forte is graphics libraries like open gl and direct x). I probably don't suck so much as i've never had a math class beyond advanced algebra, but there's a lot more to being a productive member of a programming team than solving differential equations.

    What matters is that you can get good solid work done.

  35. Logic and love of computers is key by bhlowe · · Score: 4, Insightful

    If you enjoy programming and computers, don't let poor math skills stop you from doing what you like. I sucked at calculus and do very well as a programmer. Logic is the more important skill.

    1. Re:Logic and love of computers is key by RedHackTea · · Score: 3, Insightful

      Agreed. You only need more complicated math if you're going into research, getting a Masters/Doctorate degree, or game development (this can still be argued away as there are many internal tools and interface developers that don't need complicated math). It depends on your career path.

      The most that I use (as a typical 9-5 programmer) is algebra, proportions, statistics, and other simple math learned in High School or in my CS classes. Logic, data structures, etc. are far more important. Occasionally, I'll use some CS algorithms (infix notation, depth/breadth-first searches, etc.), but they're all related to CS with only a rudimentary knowledge of math needed. I've never used Trigonometry, Calculus, or anything higher on the job.

      Ignorant bosses still have this mindset of Math & CS being tightly interlinked and how Math helps greatly. It helps to a degree, but not that much. I've known programmers that had high degrees of math -- and ultimately it's just a lot of "theory" in my opinion. They didn't do a lot of practice and application. Because of the high burden of math, they were forced by their colleges to put more focus on theory. Their job performance was/is terrible. They're crap programmers, sorry. So, then the bosses decide to put them as designers and architects... that may work with buildings, but not programming. In programming, you have to know how to build something properly in order to design it properly, so again, complete crap. If you want to be a programmer, learn CS and programming. If you think that you may need math or it will help you get hired, then pass all of your math classes with a C average and focus your intention on getting A's in your CS classes (while hacking out fun coding projects on the side). Then for the little time you have left drink some Sunny D and Rum and enjoy life...

      --
      The G
    2. Re:Logic and love of computers is key by Anonymous Coward · · Score: 0

      I want to echo what Garridan said above though... calculus is not "advanced" math. "Advanced" math involves proofs, and being good at proofs means being good at logic. So if you think logic is an important skill in helping you thinking through programming problems, then it absolutely helps to reach for those advanced math courses.

      Discrete math, like Garridan mentioned, is a good entryway. Most of the time you get some graph theory thrown in there too, which is immediately applicable to CS.

    3. Re:Logic and love of computers is key by Anonymous Coward · · Score: 0

      Agreed, my worst test score in my life was a 5% on a calculus test - I finally managed to squeak out a 68% in the class (which was 3% above fail). I hate calculus, but am successful at networking and security stuff

    4. Re:Logic and love of computers is key by Anonymous Coward · · Score: 0

      I find that advanced math is almost entirely useless in the vast majority of programming. It doesn't hurt but it doesn't help either.

      Lot's of university programs make this mistake. They think that computers = math and therefore go nuts with the mandatory mathematics courses (which invariably skip the parts of mathematics which do have some modest utility). Or they think they are "protecting" you in case you do a program switch. It's a poor curricula choice and it can actually discourage budding programmers.

      Almost every use of advanced math you will ever use, you will call a pre-written function that will do the job for you. You need to know what that function does and why you need it, but not how the function works. Of course someone has to write the function... but that person will rarely be you.

      Good Subjects:
      Accounting. Statistics. Boolean logic. Algorithms. Databases. One computing language that is traditional (strict datatyping + compiled). One computing language that is nontraditional (loose datatyping + interpreted). Do a course in effective oral and written communications.

      Weak Subjects*:
      Calculus. Matrix algebra. Physics/Chem/Bio. Literature/History. PoliSci. Social Sciences.
      * These are weak unless you intend on specializing in them. This typically involves applying computers to these fields. Of course if you want to take them out of general interest and aptitude, by all means.

    5. Re:Logic and love of computers is key by RedHackTea · · Score: 1

      I guess it's not the same, but I was required to take a Discrete Math for CS course. It zeroed in on the math logic central to CS and also taught CS stuff such as turing machines, finite state automata, etc. Proofs may help with logic thinking, but I'd argue that there are other, better ways (such as being assigned a programming project dealing with complex logic). In computer science, proof is unessential; for example, if you code a program using brute-force that pumps out "magic numbers" that makes computing Chess moves for 8x8 boards faster, then the job is done. No reason to prove it and come up with an algorithm that is more efficient in figuring out the magic numbers. Heck, cut out the bit of math that may be helpful to CS from these advanced math courses and call it "Math for CS 101." IMHO, CS logic is best learned in CS programming projects (or in CS classes) since that's where your job after college will be in. And with the unrealistic "standards" of today's bosses, you will never have time to "prove" it; sometimes you just have to bang it out as efficiently as possible -- even if that means psuedo-brute-force.

      --
      The G
    6. Re:Logic and love of computers is key by ClickOnThis · · Score: 1

      calculus is not "advanced" math.

      Agree.

      "Advanced" math involves proofs

      Disagree. Calculus and other non-"advanced" math is still very much about proofs, along with the basic techniques of their application. "Advanced" math is about the same things, applied to more advanced topics.

      In short, proofs are a part of mathematics at any level.

      --
      If it weren't for deadlines, nothing would be late.
    7. Re:Logic and love of computers is key by Anonymous Coward · · Score: 0

      That's an interesting point you have. I've never considered "getting a C average" on any course. I've always been "it's perfect, or nothing."

      I've recently met this dilemma: do I get my BS, study for 4 years on *some* programming, but mostly other topics, then when I come out get a decent job? Or do I become a self taught programmer, and in 4 years have vast experience in programming, and some in related topics?

      I think the bottom line is, do you want an amazing super high paying job? Or do you want to dedicate yourself to doing what you love and trying to make something better?

      If you ask me in my deathbed, there's only one answer. Think of the long term.

  36. Depends on how complicated of a job you want by Anonymous Coward · · Score: 0
    I started out turning screwdrivers and diagnosing unix system logs for hardware failures in a datacenter as my first job out of school. Really only required basic

    math, some statistics, and the ability to work with spreadsheets and manage time. Wasn't for me, though, so I moved on to working with a software engineering contracting firm. That was fun, got to sand the rust off of my coding skills, and really only required a basic understanding of geometry for the purposes of dealing with graphic widgets on a screen. Also had to understand timing and event counts and so forth, but that was fairly well automated. That stayed constant until my most recent job, and I'm having to make use of a lot of trigonometry and calculus to deal with angular datums and changes of values of time. I haven't required the use of differential equations professionally, yet, and I honestly dread the thought that I might, but I guarantee you that seeing the math in action in the real world will make grokking the details far easier than working it out on a whiteboard in school.

    Oh, you might want to also remember that the more complicated job as a senior engineer can easily pay as much as 2x-5x as much as that screwdriver turning datacenter monkey. Most of my peers in the datacenter were college drop outs and lacked degrees, and they were very intelligent, but they looked at academics and people with degrees with scorn and condescension. People with degrees typically looked down on them as well, but that was because they were shitty programmers or couldn't code at all.

  37. It's not crap by Anonymous Coward · · Score: 0

    It's not crap, and WTF does "grok" mean. You learn diffy-Q since it's required to model most dynamic systems. If you can't cut teh math in CS, get an IT degree. Hell, I'm not even a CS; an EE.
     

    1. Re:It's not crap by Anonymous Coward · · Score: 0

      WTF does "grok" mean.

      How can you not grok "grok" from the context?

  38. Bottom line? It's not that important by pongo000 · · Score: 1

    CS is about algorithm development, not application of higher math concepts. I spent several years writing C++ for satellite image processing, and can tell you that I truthfully do not know all of the ins and outs of the mapping functions, projections, etc. That's why the company has a couple of PhD's working on this. They do the hard number crunching and then articulate what we need to do in terms that a non-math-major can understand.

    I see no reason why you should spend money getting yet another credential. You should be learning for the sake of learning. If the advanced mmath doesn't interest you, don't sweat it. You'll do fine.

  39. Long division? by Skiron · · Score: 1

    Of course you need maths at a higher level. Try binary subtraction by hand.

    1. Re:Long division? by drcheap · · Score: 1

      Of course you need maths at a higher level. Try binary subtraction by hand.

      Subtraction? Try binary long division by hand (which of course involves some binary subtraction).

      About 30-40% of my "Computer Architecture" course comprised of doing all kinds of random ass math in various radicies from 2 to 16 (problems often given in a mixture, requiring lots of conversions). Everything had to be done by hand with all steps shown.

      All that grilling of maths in there (among the pile of other CS & Math courses I took) has actually come in handy quite often throughout my career and even non-work-related stuff.

  40. Efficiency and Physics by sanosuke001 · · Score: 1

    Computer Science can be seen as having a theoretical and practical side. The theoretical side deals with defining how computers work, how to make them better, and why algorithms run the way they do and how to make them better. The practical side takes the theory and implements it; however, it still takes the abstract side to develop applications and make them do what you want efficiently.

    You don't NEED math to write applications but without it, your applications will suck. Also, you won't be able to do anything much more advanced than a Helo, World application without memory and runtime issues. Also, go try to write a 3D Graphics engine without advanced math; I work on an OpenGL library and use matrix, vector, and physics maths every day. Not to mention the math I use to fine tune an application to run faster, use less memory, and logically fit parts together where they don't step on other running parts. You might never use some of the math you learn but you will use math and if you want to be taken seriously, learn it or go write websites in html.

    --
    -SaNo
    1. Re:Efficiency and Physics by JustNiz · · Score: 1

      >> Also, you won't be able to do anything much more advanced than a Helo, World application without memory and runtime issues.

      Sorry but this is pure bullshit. Other than Boolean algebra my formal math sucks but that doesn't have any effect on my ability to write stuff like device drivers or complex apps effectively.

  41. Good at Computers by Frankie70 · · Score: 2

    But I love computers, and am very good at them

    What exactly does this mean?
    - You can use MS Word much better than your friends and grandparents
    - You can tweet better than them.
    - You are better a googling than your friends and grandparents.

    1. Re:Good at Computers by fishbonz · · Score: 2

      It's like saying
      I post on Slashdot, and am very good at it

    2. Re:Good at Computers by nitehawk214 · · Score: 1

      I am good at drinking, so does this mean I should be a brewer?

      Disclaimer: I actually am a pretty good homebrewer, but I would be terrible if I had to make stuff that needed to turn a profit.

      --
      I'm a good cook. I'm a fantastic eater. - Steven Brust
    3. Re:Good at Computers by dbIII · · Score: 1

      Fair enough, since most beer that turns a profit is terrible stuff.

    4. Re:Good at Computers by rastos1 · · Score: 1

      There is no need to be derogatory that way. I would also call myself as "good with computers" because no other description really fits me. I'm not a computer scientist in that sense of the word that most of the fellow slashdotters used in this discussion despite having a degree in "Informatics and Computer Science" - meh. So am I just good with Word ? No. I'm a programmer with some domain expertise. I know how to find the bug when most my colleagues don't. I'm a "sysadmin" when the network breaks or when DHCP/DNS/firewall/... needs some tweaking and when more then one OS is involved. I'm a "DB expert" when someone needs to pull interesting data from the DB. I know what AT commands are and what serial communication parameters mean or how PKI works - which is not the case with many of my colleagues programmers. No I'm not stellar and, judging by the comments here, I'm not good enough to tie shoelaces of any other contributor in this discussion. I just know slightly more than enough to be dangerous ;-)

      The point however is that - there is a market for people that are "good with computers" and IMHO it's bigger then market for computer scientists. And the required math knowledge is not very high - i.e. no group theory nor differential equations. You can make a nice living just by juggling data between various data formats and all you may need is a bit of trigonometry and matrix algebra. No, it's no computer science as understood by TFA. But it's also no reason to make fun of people that are "good with computers".

    5. Re:Good at Computers by nitehawk214 · · Score: 1

      Fair enough, since most beer that turns a profit is terrible stuff.

      I would state that as "Beer that turns the most profit is terrible stuff." There are lots of local and smaller scale craft beers that are quite successful financially and produce great beer.

      --
      I'm a good cook. I'm a fantastic eater. - Steven Brust
    6. Re:Good at Computers by dbIII · · Score: 1

      That's what I meant - the very high volume stuff. Last week I drove a visiting Texan who does a lot of brews in his spare time past the huge local brewery and for the sake of the reputation of all local beers had to suggest he avoid it.

  42. Why Most Computer Sciences Don't Require Adv. Math by OneFlame · · Score: 1

    Technically speaking, Computer Hardware Engineering is definitely the playground of Math Gurus. However, Software Engineering, Networking, Security, etc, have nothing at all to do with Mathematics. Mathematics and Software Engineering both "inherit" from Logic by way of some cool associations with Linguistics, (Semantics, Syntactics, etc). It is really detrimental that many go into the industry without much greater backgrounds in logic and linguistics.

  43. Crap? by mathemaniac · · Score: 1

    Crap is going to open a lot of doors for you, mainly the exit.

  44. Stats, Analysis, DSP... by Anonymous Coward · · Score: 0

    .. are fields where math is invaluable. Most big data analytics requires understanding of statistics.

    In my case, I've worked as a DSP engineer, using mostly C, C++, but also Matlab. Complex wave-calculus and physics, as well as numerical methods are super important for this.

  45. You can make it work. by Anonymous Coward · · Score: 0

    But you might have to transfer to an institution that offers a BA in CS that drops the heavy CS requirements. Realize a BA not BS will limit your job opportunities in some cases where HR pre-screens for BS in particular, but you can take on a secondary major to distinguish yourself. Also on your resume say Bachelor's in Computer Science rather than B.A in Computer Science. Completely honest and doesn't automatically disqualify yourself by the HR pre-screening.

    There are a lot of software devleopment domains where you won't be able to excel without strong math skills, but there are plenty more where you'll do fine without them. No game development, no science data processing, but business, productivity, and social software development will be fine.

    Or hire a tutor and push through it.

  46. Both not important and important by sideslash · · Score: 2

    On one hand, if you aren't writing engineering / simulation / trading / game internals, you are unlikely to use most advanced math. So it's not important. On the other hand, if you can't handle advanced math, you probably won't be a top-tier programmer either. Top-tier programmers think about advanced concepts and keep a lot in their heads at the same time. So in that sense I'd say it is important.

    You can't change your IQ, but you can maximize the use of what you have by developing good personal mental disciplines, i.e. working your behind off on stuff like this in college. My $0.02.

    1. Re:Both not important and important by Anonymous Coward · · Score: 0

      You can't change your IQ

      Yes you can: just train on the kind of questions they ask in IQ tests (such as arithmetic/geometric number series etc...) and you'll get a higher IQ.

    2. Re:Both not important and important by ABEND · · Score: 1

      The questioner refers to differential equations which most likely involves using algorithms to solve problems. I'm sure there are minimal or no proofs to be done for the class. It's probably a weed-out course for students who have trouble with algorithms.

      --
      In all seriousness:
  47. It depends by Anonymous Coward · · Score: 0

    Computer graphics, digital signal processing, and algorithm heavy graph work all require heavy doses of math to accomplish anything. Run of the mill web development, simple embedded work, and business logic programs don't really require anything you haven't learned in grade school.

    The question is: If you had a choice between two developers, one of whom can code well and put in the work to also be competent with math, and one who can do "most things, but if you ever need any of that math nonsense, you'll need to hire a second guy" which would you pick? After you have some experience if you specialise in development that doesn't require math it won't really matter, but at the start I would always pick the fresh hire who can do the tech stuff PLUS the math.

    Sidenote: Some development companies actually prefer math majors to CS graduates.

  48. "It depends" by conquistadorst · · Score: 1

    imho I think the math mindset is very similar to the cs mindset, I'd still deem it a useful mental training exercise regardless of anything I say from here on out.

    In reality whether or not you use it completely depends on what field you catapult yourself into. There's a place in every industry for a cs grad, not a single industry escapes computer software. For example if you stay with just simple web stuff I'm doubtful you'll ever encounter any math beyond arithmetic; in fact I'll say right now you probably won't use even 90% of what you learn in cs for simple web stuff. But if you become a serious software engineer say working on "big data" problems, high speed trading, visual toolsets, or anything involving worlds that include engineering or sciences then there's a chance you will need to dust off some of those books. Even if you have "real" mathematicians doing the heavy lifting for you it's still a good idea to know what you're programming instead of being fed with a spoon.

  49. It's the bottom of the pyramid by NickAragua · · Score: 2

    I bet you're a freshman. As mathematics (along with physics) is the foundation upon which computer science is built, you would do well to have a good understanding of it. I'm not saying that you should become an expert or take on a math degree, but, if you don't understand the basic principles underlying the code that you write, then I would have a hard time trusting that code in any meaningful application. Plus, it's not entirely useless in the real world. If you want to do an estimate of an algorithm's running time? Math. Want to compile some statistics on your application's usage patterns? Math.

  50. Meh. by Anonymous Coward · · Score: 0

    I founded a software company 19 years ago. We have 50+ engineers working here now. I didn't take DiffEq.

    My friend works for a rocket company doing software development. Might come in handy for him.

    1. Re:Meh. by ClickOnThis · · Score: 1

      I founded a software company 19 years ago. We have 50+ engineers working here now. I didn't take DiffEq.

      But I suspect the engineers you hired did study DiffEqs, in spades. And your company is the better for it.

      --
      If it weren't for deadlines, nothing would be late.
  51. Filtering out the chaffe by Anonymous Coward · · Score: 0

    I haven't used DIF E Q's since college. However, after working with a bunch of computer science people for quite some time, I have to wonder what they actually teach in a CS curriculum. It certainly doesn't seem like any sort of engineering by any means.

    side note:
    My wife went for her masters in elementary ed and came home one day after one of her masters courses and exclaimed: "Did you know there is an entire math based around 1's and 0's?!?!" I said: "Yea, I think I took a course in Boolean Algebra or two.

    PSU grad BSEE

  52. Why Higher Level Math is Important by cogeek · · Score: 1

    I always said, in High School they teach you what to know, in College they should be teaching you how to think. Higher level mathematics is all about problem solving skills which is important in any career these days that requires a college degree. It's not about the answer to differential equations, but how did you get there? What steps did you take to look at the problem, determine what needs to be solved and then come up with a method to solve the problem. Problem solving is a skill that's sorely lacking these days. I may not know the resolution to each and every new issue that comes up in my environment, but the ability to track down the problem, understand the problem and then find or design a solution is what really matters.

    1. Re:Why Higher Level Math is Important by OneFlame · · Score: 1

      Unfortunately, colleges no longer teach people how to think. That is apparent by the obvious susceptibility the population has towards rhetoric, and our current political dialogue. Tracking down problems, as you say, is an analytical process, a fundamental part of logic, and I would go as far to say linguistics, (i.e., pragmatics to a degree, etc). But again, I think people /may/ get a semester/quarter in logic, and that's it. Linguistics required in computer science programming degrees? Hardly... Colleges don't teach people how to think. They can't even quantify the value of the degrees they are selling. All the degrees are valued the same, and there really is no way to determine the return on investment.

  53. OMG, WHY DO I HAVE TO LERN THIS == give up now by Anonymous Coward · · Score: 0

    If you're going to switch to whining "OMG WHY DO I HAVE TO LERN THIS" after a tough three-hour problem-solving session, do the entire profession a favor and GIVE THE FUCK UP NOW. Computer Science does not need another person who's "good at computer" because he can cuntpaste code from Stack Overflow and smack it until it works.

    Seriously - you're going to have to learn harder things, that take longer, for even *less* relevant reasons, over and over again in your career. If you're not wired for it, you're going to be a shitty developer.

  54. Important, not for the math. by Anonymous Coward · · Score: 0

    I say very important. Not necessarily for the math, unless you go into game engine design where matrix algebra, and ray-tracing is highly important (I don't know much about that subject though).

    I'm a PHP web-developer by day and use very little advanced math at my job. But that's not at all what the advanced math classes teach. In my opinion, the math classes (Calc 1&2, Discrete 1&2) teach you how to think. Solving problems, using variables, understanding differential equations, and how variables can interact with each other. Personally I found Mathematical Methods of Economics (if your school offeres a similar class) to be very valuable in teaching how to think and analyze problems. Discrete really nails home computer science theories (and even more in a CS theory class, again if you take it).

    So will you use the math, probably not, is it important, yes...very yes.

  55. Not the formulas, but the skills, are important by Anonymous Coward · · Score: 0

    I would most definitely say it is important, and have seen the problems with trade school developers versus computer science folks first hand in hiring. Though at first I would have said it's not overlly important, getting to see the different in people first hand, and then looking at my own processes, have really made me have a different mind to this question.

    It's not that you're going to need to know how to take a derivative, or write a program that performs a complicated mathematical equation. It's that by learning to do them and understanding the concepts, you are going to have an easier time. Even basic application development can often require you to play around with numbers in ways that are going to be easier to understand if you've had to work with numbers a lot. Not to mention the fact that you are building skills in logic, formulas, trends, etc that will be useful throughout your career as a developer.

    Not to mention the idea that there is a lot to be said for facing a challenge head-on and overcoming, versus taking the easy way out.

    Finally, I've had plenty opportunity to use mathematical concepts as well while developing applications and reports for business. And though you will probably end up going online to find what you need, understanding the concept, or at least being able to read what it's doing and then understand the concept, can go a long way. If you never learned it, it's hard to pick it back up. I've handed those systems off to programmers without a background in math, and invariably the take the route you are asking about ... avoid working on it and leave it to someone who understands math. Wouldn't you rather have the skill then need to tell you boss he needs to send the request somewhere else?

  56. Re:Why Most Computer Sciences Don't Require Adv. M by bluefoxlucid · · Score: 1, Troll

    Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians.

    Mathematics is highly important in computer security, software engineering, and network engineering. I started writing an access control system several years ago; the first thing I did was ingest an 18 page international standard describing the proper implementation of role-based access control systems. It was a *lot* of mathematics describing the relationships between security contexts--between objects, between accounts, between roles.

    Networking seems pretty straight forward; but try bringing graph theory to the table once. You'll suddenly have a lot to say about the wonderful, efficient network you designed and how it's not your fault it's not meeting performance requirements because the technology just doesn't exist yet.

    Software engineering is the practice of turning a project plan (a scope, work breakdown structure, design considerations, requirements, etc.) into a finite state automation. Program control flow and algorithmic efficiency are highly relevant in all cases. You're not writing an LZ77 encoder, just a PHP application? And how are you passing data from your Ajax application through JavaScript? And it doesn't work all the time? Why, that's because you've missed a critical race condition in this section of the flow; and besides, if you handled this action in this way instead it'd be 1000 times faster.

  57. I don't mean to sound anti intellectual but... by DRMShill · · Score: 1

    Not at all. I've been writing code professionally for 14 years and in that time I've used Calculus exactly twice. Maybe if you did engineering involving a lot of physics but I seriously doubt those jobs are common. It looks good on a resume and all things being equal an employer would probably pick the applicant with the better math skills but then again the same can be said of just about any skill.

    Anyways good luck.

  58. The answer by dutchwhizzman · · Score: 1

    The answer to that question is 42 If you don't understand that, you may have to work on your advanced math a bit more.

    --
    I was promised a flying car. Where is my flying car?
  59. What is Advanced Math? by RichMan · · Score: 2

    You are pushing calculus as advanced math. What about Galois field theory? You are not even at the advanced stuff yet.

    Proper algorithm design is not cook-book stuff, which is why it is Computer Science, not Applied Programming. You will likely do well at Applied Programming. The higher order math is for those that will go into the Science part of the programming.
    Understanding the difference between the Science and the Application is important.

    The most important thing is to know your limits and when you should go looking for help to solve something.

    1. Re:What is Advanced Math? by Anonymous Coward · · Score: 0

      This is a rational response.

      Calculus and linear algebra is just math. 3d modelling, transformations, control system dynamics and so on is more advanced. If you can't deal with the "basic math" you might not like CS.

      The bulk of the responses in this thread are very very specific to certain small areas or types of code that most people will never ever care about. I'm not saying math isn't important, but I don't believe those of you who are saying you spend 5 hours proving a state machine covers all states and so on, That's crap and you are grandstanding.

      AC

  60. I think some schools are just padding. by oic0 · · Score: 1

    The school I went to in particular, the CS courses had more math than they had actual computer courses. I think they were just padding the cirriculum to make their degree program and math looked like the most viable option. As an 18 year old it was enough to make me change majors, I can do math but its not my favorite pass time, so a degree that looked an awful lot like a math degree with a minor in computers was enough to scare me away. I regret not looking at other schools.

    1. Re:I think some schools are just padding. by Joe_Dragon · · Score: 1

      and that is why the college system needs change and we need more trades like learning.

      at the extreme maybe in cases a 4 year plan can be cut down 2 years with all of the gen edu overload, filler and fluff cut out.

  61. Advice from a math hater by SWGuy · · Score: 5, Interesting

    I hated math in university, I still hate it now, but over a 25 year programming career math has turned out to be the single most surprisingly useful thing I learned in university. Calculus, statistics, trig, I have needed them all in my programming work. I wouldn't have the cool job I have now if I couldn't do the math.

    1. Re:Advice from a math hater by servognome · · Score: 1

      I too hated math, but it is essential to understand the fundamentals of science.
      Though I wish I spent more focus on statistics because it translates best into real world scenarios. In a university lab I can get a chem experiment working, in the real world I have to be able to reproduce that experiment hundreds of times (depending on the required defect density), plus I had to understand the limitations of my metrology, tool, part, and person variation. Heck I even needed to use stats to understand why an experiment that worked in the US didn't work over in Germany.

      --
      D6 63 0D 70 89 81 BB 8E 7B 7C 5F 5D 54 EA AB 73
  62. not so important for the DEGREE by Khashishi · · Score: 1

    Of course, it could be useful for a future job, depending on what that may be. You'll never miss that skill that you don't have, because you'll naturally move yourself into what you are capable of. You won't need much math for front end stuff, user interfaces, accessing a database, code monkey stuff. Actually, you don't need much CS either. But if you want to get into physics simulations, signal processing, graphics/audio processing, finance, video games, writing a database, ..., that math knowledge would come in handy.

  63. Really, who cares? by waddgodd · · Score: 4, Insightful

    This is an exemplar of a phenomenon that I'm really beginning to despise in higher ed, the "do I NEED this?" phenomenon. Frankly, you don't NEED any given class to do most jobs out there. To be precise, your College diploma will not prepare you in the slightest for any of the multitude of skills you actually need in the job market nor is it designed to do so.. It is designed to prove you have the flexibility and desire to learn anything that comes across your plate. Picking and choosing what's actually relevant to your presumed career path is doing the exact opposite of this. How it impacts ME in a way that makes me despise it is that this trend is also transparent to College Professors, who now have no time to actually teach those that want to learn because they spend most of the semester fielding questions like "how will I use this as a McDonald's Fry Cook (or whatever the student laughably thinks they'll be employed as after graduation)" so they can't answer the basic "where can I find out more about this fascinating bit", leading to students like me getting so frustrated at the crap that they just give up on lectures. My honest advice to you is "if you don't think it's relevant to your interests, don't take it and petition the requirement off, you'll save a lot of people a lot of hassle that way"

    --
    Just because you're paranoid doesn't mean they aren't out to get you
    1. Re:Really, who cares? by servognome · · Score: 1

      To be precise, your College diploma will not prepare you in the slightest for any of the multitude of skills you actually need in the job market nor is it designed to do so.

      That's a bit short-sighted. Yes there are theory heavy classes that don't translate, but there are many classes that teach you essential skills that are necessary in the real world.
      For example finding vanadium contamination, you'd know from a metallurgy class one of its uses is to harden steel so it narrows down areas to look at. Knowing how to modify reflow temperatures to get the desired grain structure is essential in many applications to get the necessary bulk properties. As is realizing a component of one chemical you are using is interacting with another and damaging what you are trying to do.
      You may not always need those things, but they are part of your intellectual toolbox and are essential when you find yourself trying to solve real world problems. Especially when time is of the essence and you don't have time to learn these things on the fly.
      It doesn't even have to be something that you were directly taught in class, but having the background can help you make intelligent assumptions to further investigate and design experiments to determine the solution.

      You also never know what is relevant to your interests. I never cared about world politics or contract law, but when you're put on a project where you're negotiating business deals, participating in a symposium on RoHS, or trying to understand the political implications of conflict metals, the world becomes larger and more complex.
      As I said before there's a lot of things I never used, like knowing the switching speed of GaAs is faster because of the smaller band gap and lower effective mass of an electron. But you never know when an esoteric concept comes up and it's helpful to have a well rounded background, especially if it's in the field your diploma says you're an expert at.

      --
      D6 63 0D 70 89 81 BB 8E 7B 7C 5F 5D 54 EA AB 73
  64. Computer Science := Math by Anonymous Coward · · Score: 0

    Computer Science /= Software Development
    Computer Science /= Information Technology

  65. How important? by Anonymous Coward · · Score: 0

    0, zero, nada, naught.

  66. Good v Great by Anonymous Coward · · Score: 0

    In my opinion - advanced math is not required to be a software developer. It's not even required to be a good software developer. But it is absolutely necessary if you ever hope to be a very good / great software developer. If you can't talk about intuction, injectivity, bijectivity, set theory, a smattering of category theory, a decent understanding of linear algebra, finite automata, graph theory, calculus etc, then you mgiht understand *how* to use your tools, but you won't intuit *why* you use that tool, and you might miss when you need to use different ones.

  67. You need one maths guy by gnasher719 · · Score: 1

    In a good team, it's good to have one person who is good at maths. Just in case. Maybe two or three if you are developing graphics engines. Same in the financial industry. Or if you need software to run fast, someone who can figure out how to use a cache in an optimal way. Someone who can give the correct answer to "if one Kilobyte costs 0.002 cents, how much is a Gigabyte" is handy. If there is nobody, a team can be in trouble.

    Doesn't have to be you, though.

  68. Drop the math by Anonymous Coward · · Score: 0

    Not very important beyond basic arithmetic most of the time. The problem is too much CS is taught by useless academics who think computers exist mostly to solve math problems.

    What's becoming ever more important and many CS grads absolutely suck at are people skills that let them interact productively with a wide range of stakeholders (other engineers, QA, UX, product, localization, etc). So drop the math, and take a sociology or cultural anthropology class.

    Signed, Dir of Software Engineering at a company you know about.

  69. Once in my career... by jittles · · Score: 1

    Once upon a time I worked on things like tracking a moving object from a gimbal mounted camera which was attached to the nose of another moving object (a helicopter tracking ground targets). That involved a hell of a lot of complex math, mostly linear algebra with a lot of trig. Those math classes sure came in handy. I would have been dead in the water without them.

    I've also worked in the digital video industry and used transformations and matrices to manipulate overlays on video. High school trig was sufficient for that particular job. I've probably spent less than 2 man years doing complex math in my entire 10+ year career. When you need that sort of math, you really need it. But most of the time, it doesn't really matter. It's just good to learn how to solve all those more abstract problems that come up in higher level math

  70. There are 2 types of people by Anonymous Coward · · Score: 1

    There are two types of people out there. Those that compartmentalize all their knowledge and only use knowledge from the appropriate compartment and those that use all their knowledge all the time.

    If you a compartmentalizer, then don't bother learning anything other that what you are going to do, you won't use it anyway.

    If you are someone that uses all their knowledge all the time, then you should struggle to not just learn things, but really understand them. I use differential equations, linear algebra, calculus, and abstract algebra all the time. But then I know them all inside and out and so it's just natural for me. I use statistics quite a bit as well, but I usually have to look that up. I try to use the appropriate tool for the task.

    The old saying is that if all you have is a hammer, everything looks like a nail. A corollary to that is the more tools you have, the more options you have, and you can pick the best option for the job. A question for those that say, "I can just look it up." If you don't know that screwdrivers exist, why would you ever go to look for one?

    The bset two programmers I ever hired, didn't answer any computer related questions correctly. The first because I didn't ask any. I only asked him math questions because he had a BA in math and I wanted to make sure he knew what he was doing. Others had asked him computer questions.

    The second answered almost every question with, "I don't know, but I have a book about that on my desk." The important thing was he was able to convince me he was smart and wanted to learn.

    Your question implies you are not that smart and don't want to learn. So I wouldn't be inclined to hire you. It's not too late to change though.

  71. but CS is not IT and not even application developm by Joe_Dragon · · Score: 1

    but CS is not IT and not even application development. and a pure CS track gives lots of skill gaps. But what makes a party or sports University better then a Trade School?

  72. 1+1=10 by Anonymous Coward · · Score: 0

    ADD, SUBSTRACT and EQUAL.

    You don't need anything else to understand the most complex computer in the world. You also need logic, like AND, OR, XOR.

  73. Computer Math vs. Math Math by Anonymous Coward · · Score: 0

    I had a double major, CS and Math, so I know a little bit of both. Where I was working the top dogs had no math or CS, they just learned programming on the job. I noticed that they were using floating point for financial calcs and said they should be using some sort of fixed point, but they couldn't understand why. I never used calculus or anything like that on the job, but I would guess it is a better foundation for software dev than a music degree.

  74. It's hammer time. by Impy+the+Impiuos+Imp · · Score: 1

    There are jobs for people with wrenches in the auto industry.

    I am reminded of an asinine scene in Peggy Sue Got Married...Or Did She? where Kathleen Turner's character goes back in time to her high school days and bitches that she never once needed to use the algebra she was learning in class.

    Then proceeds to labor to tell the bright kid about computer chips or something so he can "invent" them

    And labors to try to invent...panty hose.

    The writers never connect it all.

    Programming is about more than algebra. It's complex functions on symbols and ideas as well. If you have difficulty with the math, well, a math of idea-pushing might be harder still.

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    1. Re:It's hammer time. by Impy+the+Impiuos+Imp · · Score: 1

      Did people know that in Lisp you can write a function the normal way, then alter it a tad so it can take not just a number, but another, unevaluated formula as an argument, and push it through itself and spit out not an evaluated value but another, new formula that is the old formula wrapped by the new formula, ready for use?

      This kind of stuff gets lost as people re-re-re-invent yet another block-structured language where data and code are eternally on separate sides of the train tracks. I weep for humanity.

      This is the kind of crap that leads to console-oriented MMO dominance.

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  75. Are you kidding me?!?!?! YES by Anonymous Coward · · Score: 0

    Just to name a couple...

    Advanced Trig: Gaming
    Stochastic Calc: Operations, testing, financial modeling

    Don't even get me started on Matrix Math and Calc when it comes to quantum computations for (and if) we ever get a quantum computer.

    You want use existing frameworks, don't sweat it. You want to create your own good luck without at least trig and calc.

    Proof: http://www.songho.ca/opengl/gl_projectionmatrix.html

  76. Depends on the field of CS, but master the basics by Anonymous Coward · · Score: 0

    Hi, I do machine learning, so statistics is very important, but again fairly basic stats. You need obviously some calculus for this but nothing super complicated. Proofs are good to know how to do, because convergence proofs are necessary in algorithms.

    The most important math for CS is discrete math. There's a fantastic book called Concrete Mathematics that covers more than you'll need. It's the best.

    Linear algebra is super important across CS. If you can vectorize an algorithm, that's a win. But again you don't have to master tricky hand-manipulations, getting real fast at solving this or that. You just have to understand it enough to apply it.

    Mental manipulation of terms is helpful at the white board, seeing that this term cancels this term, or these guys converge in the limit, just some basic fluency. But no need to go overboard. Fluency with the basics is more important than mastery of fancy things.

    Don't wimp out on math though just because it's hard. It's hard for everyone!

  77. Re:Bottom line? It's not that important by Anonymous Coward · · Score: 0

    "CS is about algorithm development, not application of higher math concepts."

    The implication that "algorithm development" =! "application of higher math concepts" is hilarious.

  78. maybe yes maybe no by OldSoldier · · Score: 4, Insightful

    First, I agree 100% with everyone who says "yes" I agree 'even more' (math joke there) with those who suggest a different computer degree where math is emphasized less. However, let me paint an oddly two-sided picture with 2 different stories.

    I have a masters in math. In class one day our professor mentioned that he consulted for the forestry (or some such) department at the school. They were trying to calculate the area of an arbitrary region so as to estimate the number of trees within that area. Problem is the area may be convex or concave. The CS department at this school was trying to solve the problem by triangling the polygon, but ran into difficulties if the area was concave. My professor suggested using Green's theorem. Moral??? On the one hand advanced math gave a much more elegant solution to this problem, on the other hand **the CS department** at this school wasn't advanced enough to suggest it on their own... so if THEY can't do it... (fill in the blank).

    Many years later I was managing a small group of contractors on a project (I was also designer for this project) and I casually mentioned during a design meeting that we could calculate the score we needed by doing a weighted average of the various datapoints we already had. One developer mentioned outright that he would need me to write up the weighted average routine in psuedocode and I suspect the other developer felt the same way but was less forthcoming about his ignorance. Floored but already stuck with these guys, but then again... they're contractors and I believe they've been able to keep themselves employed since.

    At the end of the day, I'm one of those who thinks math and computer science is like solving puzzles... I would rather hire someone who likes solving all kinds of puzzles than one who has an admitted weakness in some (but perhaps not all) puzzles. If you indeed hate math that much I think you need to do some soul searching and figure out what sub-field of CS would be best suited to you. If you go into a field that requires math and you suck at it you'll probably be eclipsed by others more adept at it. On the other hand a lot of people who like math and CS are quite content to end their careers there... so if you have a growth plan that gets you out of CS work within a few years of graduating...

    1. Re:maybe yes maybe no by Tablizer · · Score: 1

      At the end of the day, I'm one of those who thinks math and computer science is like solving puzzles... I would rather hire someone who likes solving all kinds of puzzles than one who has an admitted weakness in some (but perhaps not all) puzzles.

      But they are usually different kinds of puzzles compared to those found in such math classes, often requiring hard-to-define intuition. Skip the class, save money, and bone up on "IQ Puzzle" books if that's the real goal.

      Or read some detective novels or cases with a cold glass of lemonade in hand. IT trouble-shooting is a lot like detective work: complex environment and a small handful of hard-won clues.

      In math usually you know the model up front and are applying it, but with IT puzzles you often do not know the model (the insides are proprietary or a million lines of code) and you can only guess and test each candidate model against the clues and form new tests for each candidate model. The candidate models are similar to suspects in detective cases: "If suspect X did it, then what kind of other clues might he/she leave behind versus suspect Y?".

    2. Re:maybe yes maybe no by Anonymous Coward · · Score: 0

      Learning advanced math is like having a whole other set of tools -- only these are tools where if you don't own at least some of them, you almost certainly don't know they exist. Like with many other tools, you can get by without them but there'll be occasions where you waste a lot of time because of it.

    3. Re:maybe yes maybe no by dcollins · · Score: 1

      "In math usually you know the model up front and are applying it, but with IT puzzles you often do not know the model (the insides are proprietary or a million lines of code) and you can only guess and test each candidate model against the clues and form new tests for each candidate model."

      I'm guessing that you didn't got far enough in math that the class exercises all turned into "Prove X".

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    4. Re:maybe yes maybe no by dcollins · · Score: 1

      get

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    5. Re:maybe yes maybe no by Anonymous Coward · · Score: 0

      Does having a masters in math make you arrogant and a dickhead too? It certainly seems so.

      If _my_ developers didn't ask me what I meant with a weighted average, I would be very suspicious wether they will do it the right way _I thought out_ (but never fully explained). I _certainly_ wouldn't expect everyone around me to know what a "weighted average" is. Maybe, just maybe you have the urge to belittle others, because you are not really that secure about yourself? Honestly?

      Also, people who always feel the need to belittle others because they know something the others around don't, are pretty annoying people to be around.

    6. Re:maybe yes maybe no by Anonymous Coward · · Score: 0

      weighted average... well it really depends on what the data was and how much... I probably would have asked the same thing not because I don't understand math but I despise vague descriptions and scope creep.

    7. Re:maybe yes maybe no by khchung · · Score: 1

      I have a masters in math. In class one day our professor mentioned that he consulted for the forestry (or some such) department at the school. They were trying to calculate the area of an arbitrary region so as to estimate the number of trees within that area. Problem is the area may be convex or concave. The CS department at this school was trying to solve the problem by triangling the polygon, but ran into difficulties if the area was concave. My professor suggested using Green's theorem. Moral??? On the one hand advanced math gave a much more elegant solution to this problem, on the other hand **the CS department** at this school wasn't advanced enough to suggest it on their own... so if THEY can't do it... (fill in the blank).

      Exactly. This is just the same "if you have hammer, everything looks like a nail" problem that is already so well-known in among programming already, but in a wider setting.

      Programmers who don't know much math never knew how many stupid solutions/programs they have written over they career, and thought the math has no use cuz they never need to use it.

      Programmers who knew a lot more math take advantage of it everyday and can tell their story how math is useful to their work.

      Only those few who knew enough math to know they can benefit more from knowing more can say "more math can help me", but those would went and learn more to be the second group soon enough, so the gap between the two groups will always remain.

      --
      Oliver.
  79. Been there, done that... Let me tell you about DE by madhatter256 · · Score: 1

    In case you haven't noticed by now... differential equations is where math meets the real world.

    It is how we can translate a natural phenomenon into a math equation to figure out problems.

    Being able to look at problems and be able to translate that into an equation into which the problem can then be solved is a vital in engineering.

    I suggest you take Linear Algebra, too.

    --
    Previewing comments are for sissies!
  80. It sucks, but you gotta do it. by Urza9814 · · Score: 1

    Recently graduated, currently employed for a consulting company, pretty nice job with a great salary and benefits and basically the best job you could expect straight out of college. Yes, the math SUCKS. I had to do three semesters of calculus, then I got screwed into taking linear programming (not bad) and non-euclidean geometry (pretty bad).

    Are you ever going to use this stuff? Probably not. If you do, you'll look it up. If you're going to actually be using that kind of math on a daily basis they'll probably be looking for someone with a math major, if not a PhD programmer. But first recognize that there's a distinction between 'i'm going to need to know this' and 'it'll help me to sit through this'. Just because you aren't calculating multi-variable integrals on a daily basis doesn't mean it won't help to know a bit about them -- just knowing that such things EXIST is a HUGE advantage, because then you can recognize places where you might need to use it and go look it up. Advanced math is also helpful just for rough estimates, so you recognize that you can't always just throw more servers at a problem and expect it to get faster; I'd say it'll help you recognize "Mythical Man-Month" type situations and such.

    But I suspect you may be like me, as I had a ton of trouble with the math too. And the reason, I think, is because I'm more of an engineer than an academic, and they don't teach high-level math properly for engineering minds. They never give practical applications. If I can see how something is used, I can understand it. But if you just tell me to memorize some formulas, I'll never get it. So if you have that same issue, it might help to talk to your prof or look around in some different textbooks to see if you can find some examples of actual applications of this stuff.

  81. Euler by Saethan · · Score: 1

    The only math I use at my job is doing Euler problems during breaks... Other than discrete math, and another class called something like math for decision making. Calc 1-2-3, applied stats, linear algebra? Never use 'em for actual work. I know they're useful if you want to go to grad school, though.

  82. No excuses by Anonymous Coward · · Score: 0

    As a math prof, I don't have much patience with math students who "just aren't computer people." I tell them that what I hear is that they can't figure out how to arrange their thoughts into logical steps and explain them clearly, so they must not be math people either.

    Same applies here. If you can write truly good code, then you can handle a first DE course easily. Contrapositively, if you're incapable of elementary DEs, then I bet you write crap code too. Man up and put in the kind of quality time that you do with computers.

    You'll likely never write a novel either, but I recommend that you take some English classes too.

  83. Re:Why Most Computer Sciences Don't Require Adv. M by OneFlame · · Score: 1

    Ironically enough, you are kind of proving the my original point. No, programming is not the most difficult branch of applied mathematics, but what you are actually trying to implement CAN BE. Almost all encryption projects, codec projects, etc, have a subject matter expert who documents the requirements. I can't tell you how many genetic alogrithms I have had to implement, encryption algorithms, etc, and I have absolutely no math training over Trigonometry. It isn't required. I have created created algorithms to parse 3DES, IPSEC, etc. Oh, and yeah, I often had to consult a subject matter expert. A Programmer should be a master of Programming, and know where to draw the bounds of their specializations. Knowing when to grab a subject matter expert is another quality of a great programmer.

  84. If it's in your course, it's important. Do it. by Bearhouse · · Score: 1

    Also, change your teacher and/or materials, (or more probably get additional help).
    I really struggled with advanced maths & stats until I got a prof who made things easy; now I (sometimes) teach them.
    And I'm far from being a genius - just an average guy. Also, I find this knowledge useful on a regular basis, in many ways & areas.

    I don't believe it's useful to ask "will I ever need 'x' particular tool?"; you cannot know.
    Think more along the lines of "a broad understanding of these concepts & tools will help me become a more-rounded and performant practitioner".

    So, don't give up! If you are intelligent, which I assume you are, then the problem is not with you, it's with your teacher.
    Find someone to make it easy for you, and you'll go from hating it to enjoying it.
    There's few things in life more satisfying than getting over this kind of difficulty.

    1. Re:If it's in your course, it's important. Do it. by Anonymous Coward · · Score: 0

      The first time I took Differential Equations, it was from a Math Professor who was what I call "Mr Math", all general cases, no really practical stuff. I ended up dropping the class. The second time around, a different professor was "Nearly all of you are Engineering students, here's what you need to know to get through your courses"
      type and I sailed through it.

      The best part was having enough knowledge from the "Mr Math" prof to know where the 2nd prof was taking short cuts.

  85. dude! by Anonymous Coward · · Score: 0

    Sheesh kid, learn some maths. Maybe you'll even enjoy it, especially if you don't go into it thinking that it's "crap". Math courses help in more than just practical ways, they help you to learn to think, reason and apply logic when you're programming. Do you need a degree? No, but it would definitely not hurt you to take some night classes in first and second year university level maths. Algebra, calculus, statistics, differential equations and logic. Oh, and it's not crap, it is beauty, it is the purest abstraction of reality that we can conceive. And, btw, long division is arithmetic if that's all you got.

  86. Diff eq isn't advanced math by Anonymous Coward · · Score: 1

    I've got a math degree, and have been programming for over a decade.

    Differential equations? That's "math for engineers" -- it may be relevant for designing a bridge, or analyzing a rocketship... but it is unlikely to come up in programming (unless you are programming for something that is controlling a piece of hardware -- if your software is doing force feedback on a robot-arm, the equations for forces and motion on the arm are relevant, and perhaps you want to take a mechanical engineering intro class to understand them better!)

    "Math for programmers" is more things like discrete math. Probability can be helpful. Taking some class that teaches you to do proofs is helpful, as it teaches you some patterns of thinking about things that are useful. Linear algebra might be useful (if you're doing graphics applications, for example, linear algebra tells you how you can rotate and scale things...), though increasingly you do that via "buy the right piece of middleware" (I've worked on several games, and none of them had programmers actually worrying about the algebra of drawing stuff on the screen at that level, you just had a very high level interface of "put foo in the world at coords X,Y,Z, rotation T")

    If you can't handle differential equations, that may be a warning sign that your problem-solving skills or abstract-reasoning skills are lacking. Or it might just be that you're bad with differential equations; if you do fine in discrete math, you're fine, just bang your head on diff eq enough to graduate and don't worry about it after you manage to pass. If you find that you are also bad with discrete math and probability, then be aware that there are certain types of programming that you are likely to also have difficulty with, because they are very similar to math. That probably doesn't stop you from being gainfully employed as a programmer doing other types of programming, and even being a better programmer than a lot of people, though! Everyone has strengths and weaknesses; a programmer who is weak in abstract reasoning isn't necessarily any worse than the programmer who can't write very well and thus always does bad documentation (and there are a lot of those in the world...).

  87. Three hours?! by Anonymous Coward · · Score: 0

    Three hours are nothing, just be more patient.
    You should start worrying if it takes you more than two or three afternoons of _heavy_ thinking to solve a difficult assignment. Sometimes it just takes a bit longer.

  88. Attitude Adjustment by Anonymous Coward · · Score: 1

    And to punish me for going into a field originally developed by mathematicians I need to learn all this crap.

    You need a serious attitude adjustment. Some brilliant folks invented an entire industry, and you're upset that they were mathematicians. You also ignore the fact that, to invent the industry that they did, they needed to be mathematicians. You also are under the delusion that differential equations is "advanced math" (it really, really is not).

    I think you need to step back, eat a slice of humble pie, and really think about whether computer science is for you. Math is not the unrelated field that you think it is.

    1. Re:Attitude Adjustment by Anonymous Coward · · Score: 0

      But but a lot of those old mathematicians were white. Many of them were white men. So the whole field is tainted with all sorts of racist, sexist privilege.

    2. Re:Attitude Adjustment by OneFlame · · Score: 0

      Yes, the OP is quite right in the irrational habit of current college curriculums emphasizing higher math studies /way/ too much. Logic, Linguistics, Writing, etc, are for more practical when it comes to programming, networking, systems administration, writing scripts, configuring firewalls, etc. As far as the first computers. The dominate requirements were physics and advanced math when needed to support the physics in order to create the hardware. This is the same today when it comes to processors, etc. Binary and Octal aren't quite considered "advanced math". Cryptography, advanced Graphics programming, Codecs, etc, require math skills as needed, and you can outsource that if needed. I can't count the number of times I had to learn something in order to program it, and then forget all about it the month after--whether it was some calculus behavior, some DNA sequencing, or encryption algorithm.

  89. It's worth the time and effort by Anonymous Coward · · Score: 0

    I went through the grueling punishment of advanced Calc I,II,III and IV in order to get a B.S. in computer science ('97), getting straight A's in all computer classes but C's in the Calc. Constant weeks of meeting with the Math professors in their office trying to understand the work only to struggle on exams. But you know what, having the B.S. Computer Science on my resume definitely helped when I first got into the workforce, and still helps now

    All I can say is to just grind through it, do everything you can to just get through the math courses, whether it's making a home in your professor's office morning/day/night

  90. Which Subfield determines which Maths... by trims · · Score: 1

    The short answer to your question is: YES, no matter what subfield of computing you go into (Networking, Systems, Software Engineering, QA, Release, or Project Management) you'll need advanced Maths. Which advanced maths depend on the specific subfield. But the reality is, you're far better off knowing most of the stuff that a 2nd-year Math major has to take.

    If you're a Software Engineer (and, to a lesser extent, QA), you'll likely need the Maths which help you describe real-world actions or model real-world happenings. This means Geometry, Trig, Calc, plus Maths common in Physics, plus application-specific stuff, like various Linear Algebra, Complexity, Markov Modeling, Game Theory, etc. Basically, Software Engineering has the biggest demand on Math knowledge, but it varies according to the type of project you're on.

    Networking and Systems depend heavily on the Linear Algebra and Discrete Math fields, particularly Set Theory, Game Theory, Complexity/Computability, and Graph Theory. Most of this is not writing down equations, but having an intuitive understanding of the problem being presented because you've had the requisite background. For instance - modeling network traffic flow and determining system load both require Graph Theory and Complexity, but it wouldn't be immediately obvious to the outsider.

    Release and Project Management are less Math-intentive, but it's still important to have college-level Maths as a strong foundation. Complexity/Computability, Linear Algebra, and, particularly, Statistics, Graph and Game Theory are cornerstones of these fields.

    The reality is that Math is a significant part of any Computer Science degree, and is critical in daily professional use. Outside specific programming positions (e.g. those involved in modeling of some kind), it's not the same use as a Civil Engineer or the like would be using Maths. But you have to be comfortable thinking about Maths, and you need to have significant educational background to be successful.

    Personally, beyond Geometry and Trig, I'd think that you'll have to take about 6 semesters of some sort of Math in a reasonably rigorous CompSci program. You'll probably only use 3 of those courses on a regular basis, but you'll never know WHICH 3 you'll be using at, so you need all of them.

    If you find Math difficult, tedious, or boring, you need to seriously rethink a CompSci degree (and, by extension, a career in something normally requiring a CompSci degree). Or you need to talk with your Maths professors/teachers, and figure out why you have difficulty or are bored during Math classes. Either way, it's a required skill for the profession.

    --
    There are always four sides to every story: your side, their side, the truth, and what really happened.
  91. More important to have a portfolio by savage_panda · · Score: 1

    if you have any projects that can be publicly shown, they sometimes speak louder than experience in a resume. (especially if they deal with the technology/skills companies are looking for)

    Math is sometimes useful for specific jobs like finance, 3d graphics, and you may find yourself in trouble if trying to grok details of those projects. However strong Logic sense should serve you well on most other projects. overall I think a strong background in algorithms, data structures trumps that of math. You can always look it up or ask someone for those rare cases where you deal with a tricky math problem.

  92. It's important by Tarsir · · Score: 1

    If you're like most people in a University STEM program, you found High School very easy. This math course may very well be the first challenging thing you've done at school. You have to face and overcome this challenge, just as you'll have to face and overcome many challenges during your programming career.

    The point of all this 'well-roundedness' stuff, where people tell you you must learn diverse subjects that have no relation to your desired career, is to make you work outside your comfort-zone; and to expand your comfort zone to include new subjects and skills. You'll have to do the same in your career.

  93. Physics by Roger+W+Moore · · Score: 1

    I would have definitely picked a different minor; perhaps in physics...

    ...for which, ironically, you would definitely have needed calculus! ;-)

  94. What is Computer Science? by NoImNotNineVolt · · Score: 1

    You're not the first to be puzzled by the relationship between computer science and mathematics. There are two ways advanced math can be useful to you.

    One is obvious even to a layman. If you want to write software that does advanced math, you need to understand advanced math yourself. You're not going to be able to code a differential equation solver if you don't understand how to solve differential equations yourself. This is known as domain knowledge, and it is required any time a domain-specific problem needs to be solved.

    The other is obvious to anyone that understands what computer science is. Computer science is not the art of programming computers. Computer science is the development and analysis of algorithms. You don't need to be great with advanced math to sort a list of numbers. You don't need to be great with advanced math to write an algorithm that sorts a list of numbers. You might need to be decent with advanced math to determine how long your algorithm will take to sort a list of numbers, or to compare it against other sort algorithms. Computer science, at its core, consists of large amounts of formal logic, proofs, and some calculus thrown in for good measure.

    This second relationship between computer science and mathematics isn't often as obvious simply because laypeople don't understand what computer science is. The discipline is often conflated with the totally unrelated disciplines of information technology, software engineering, or software development. I say totally unrelated because you don't need anything more than pencil and paper to do computer science, which isn't the case with those other disciplines.

    That being said, it depends on what you want out of your education. If you're looking at education as a means to an end, as a way to get a job in the computer industry, as job training, then you probably don't need much in the way of advanced math. Get the degree, get a job, and pretty soon you won't even remember what an integral is. Very few coding jobs require any meaningful advanced math skills outside of domain-specific applications. Very few (if any) IT jobs require any advanced math skills at all. However, if you want to be a computer scientist, then yes, you'll want that advanced math. As much of it as possible. You'll want to be dreaming of crazy topology stuff in non-Euclidean space. You'll want to be lost in thought about bijections between various sets. You'll want to bleed n-tuples. And you'll want to have a trust fund, because you won't be able to find gainful employment.

    For every one computer science job, there are a dozen computer jobs. You don't sound like you have a burning passion for math. Avoid computer science and focus on computers.

    YMMV, but I tutored math and computer science for over 5 years. I have a BS in Electrical and Computer Engineering and have completed a good amount of graduate level coursework in Electrical Engineering, Computer Engineering, and Computer Science.

    You love computers, you're very good at them. This is sufficient for you to have promise in the computer industry. Studying advanced math would probably just be a distraction for you.

    --
    Chuuch. Preach. Tabernacle.
  95. Re:but CS is not IT and not even application devel by OneFlame · · Score: 1

    Their are gaming industry trade schools, that are actually really good. Though, I would never personally hire someone with this background, or university background, unless they had actually accomplished something with their knowledge. At least a simple phone app, personal website, some sort of demonstration that they have passion, motivation, and can follow through. And if you hadn't noticed before, the U.S. Education system is incredibly backwards when it comes to education, especially when it comes to I.T., (computer science, whatever). There are a lot of very valuable industry certifications, especially from MSFT, Cisco, Java/Oracle, etc. Any of these are handedly more valuable than a college degree. And, these are infinitely more valuable with demonstrable experience. But, Experience, Passion, Self-Learning, etc, will always trump formal education and certifications. The industry changes too fast. You have to be agile. This is what employers look for. Not the rigidity of formal education.

  96. I think we need more apprenticeship like systems by Joe_Dragon · · Score: 1

    I think we need more apprenticeship like systems or at least more hands on classes with Professors who are / have done real work in the field. Also the idea of being well round needs to go / be cut down with to days high costs of school that should not be forced on to people. (Some Colleges still have forced PE and swim tests at the College price level)

  97. Math is not important at all by techstar25 · · Score: 1

    Math is irrelevant. You'll never use advanced math in your career. What you are learning is advanced problem solving, which is invaluable.

  98. Important enough... by Anonymous Coward · · Score: 0

    ... that this topic is going to receive hundreds of comments.

  99. no worry. by stanlyb · · Score: 1

    Dont become developer, you better be a team leader, or even better, project manager :D

  100. My solution by JustNiz · · Score: 0

    I avoided all math units on my CS course (by taking Psychology instead). I didn't find any dependency on the math I missed in any of the other CS units at all, (or anything I've done in my subsequent career) so in my life at least math or the lack of it has had no actual relevance at all.

    I don't know if not taking any Math at all is even an option at your school, but if it is, its the solution I would advise taking. I personally found that doing Psychology was actually a lot more useful/relevant to CS than you would first think, it gave me some real insight into stuff such as how the brain processes things, knowledge representation techniques, and how we process vision. All would be directly relevant to writing software that needs to do the same or similar things.

    1. Re:My solution by Anonymous Coward · · Score: 0

      Ah, but there's the rub, right? Since you never took it, you don't actually know where you could be applying it. I suppose the same is true for all fields, but I feel pretty comfortable asserting that advanced mathematics is more useful to CS than, say, French Literature.

      I can see how psychology could be useful in CS, but I still don't think it's as useful as (and certainly no substitute for) mathematics. (then again, I never took psychology, so I'm in the same boat as you are with application of mathematics). The way you describe it, it sounds like mostly what you got from psych is domain knowledge, which certainly would be useful if you're writing software in that domain. But it's not going to do you much good if you need to write software that determines whether or not a piece of space junk is going to crash into a satellite.

    2. Re:My solution by Agent0013 · · Score: 3, Interesting

      I find it interesting that you found an unrelated and seemingly irrelevant course to have much use to you in your programming. Wouldn't it be true that the math you didn't take would have also given you great insight into things that you aren't even aware of since you didn't take it?

      --

      -- ssoorrrryy,, dduupplleexx sswwiittcchh oonn.. -Quote found on actual fortune cookie.
    3. Re:My solution by JustNiz · · Score: 1

      Interesting thought but here's one way how I know:
      I have a colleague who is a freakin math genius.
      We both work as developers the same large software project. I've seen enough of his code to know that there's nothing that he's doing that I don't already understand, and in most cases would have approached and solved in exactly the same way. In all the cases where I would have implemented it differently it pretty much comes down to personal choice with no clear advantage either way (yes I've also asked him to be sure I'm not missing something I dont understand). In short, there's nothing extra in his code due to his math knowledge. Yet occasionally I've done stuff in my code mostly around knowledge representation that he's asked about and said he learnt a lot from.

  101. Attitude counts by Anonymous Coward · · Score: 0

    Look, I'll admit that not every computing problem requires advanced math. It's good to know so you have some idea what's going on behind the scenes in many cases, some idea beyond screaming "I typed this and it said it should do it, WHY DIDN'T IT?!??!?", but for many problems, it sometimes boils down to stringing together the right libraries that someone else made and applying some design and writing magic.

    It is very frustrating because I just don't grok advanced math. I can sort of understand a little bit, but I really don't grok anything beyond long division. But I love computers, and am very good at them. However, nobody in the workforce is even going to glance at my direction without a BSc. And to punish me for going into a field originally developed by mathematicians I need to learn all this crap.

    But the attitude you're presenting here is one of entitlement and/or victimhood. You're directly implying that you DESERVE a programming job for reasons which seem entirely described by "I love computers, and am very good at them", but the fact that you're not qualified for some of them is somehow a punishment to you.

    Or in other words, it's sounding like you feel entitled to getting a job, a lot of money, and the prestige of "a computer job" or "a CS degree", but feel that the actual work and experience is an unnecessary impediment to this goal. It's as if you don't understand why this actual knowledge "crap", as you put it, has to stand between you and cashing paychecks in your underwear from one of the private jets you'd inevitably own if only the rest of the world got off its lazy ass and figured out how to get you the money you so rightfully "deserve".

  102. Math is everything by gatkinso · · Score: 1

    Learn it.

    --
    I am very small, utmostly microscopic.
  103. Reality vs theory by JDG1980 · · Score: 1

    In terms of the actual work: Most application programmers and web developers won't need any kind of advanced mathematics. They might be tasked at collecting statistics, though, so it's a good idea to have a general understanding of that. Systems programmers are more likely to need advanced math. You will definitely need some strong mathematical skills if you're going to directly work on software that handles data compression (including audio and video formats, like JPEG and MP3) or error correction/redundancy. But most programmers don't ever have to do this; if you want to decode a JPEG file, you probably use libjpeg or your toolkit's built-in decoding functions.

    Now in terms of actually finding a job, that can be a different story. The underlying problem is that many HR departments think that "Computer Science" is programming, and that anyone they hire as a coder should have a CS degree. But the professors who teach CS think that CS is a branch of applied mathematics, with only a tangential relationship to programming. Given the current balance of power, I suspect the corporations are eventually going to kick the universities in the ass until they start teaching CS the way they want it to be taught. But that hasn't happened yet. Which means that anyone who wants to become a programmer, but isn't that good at math, has a real problem breaking into the business world.

    1. Re:Reality vs theory by Anonymous Coward · · Score: 0

      The underlying problem is that many HR departments think that "Computer Science" is programming, and that anyone they hire as a coder should have a CS degree.

      This reminds me of something that happened a while back. I was contacted by a recruiter looking to fill an IOS development slot. They mentioned that if I wasn't interested, could I refer someone.

      I wasn't interested, but referred the young man who had taught the Advanced IOS class I took at BNR. Real prodigy. Didn't finish getting some double-major PhD., but had lots of formal schooling.

      He also -literally- wrote the book on advanced IOS programming. I'm not sure it was actually published (yet), but it was what we used as class material. He still teaches there.

      I sent them to his consulting Web site.

      They responded that they would not consider him, because he didn't have a CS degree.

      I weep for our industry.

  104. Employers want a CS major but don't want CS by Anonymous Coward · · Score: 0

    From my experience job hunting this summer (Dallas area), every single job that I interviewed for with CS as a requisite actually had little to do with CS. Everyone wants a CS major at entry level, but when you get to the interview, the work usually entails data entry and markup languages for 6+ months, then you _may_ get a shot at actually designing something where you could possibly apply CS theory (but I suspect this is just bait). For the ambitiously inclined and those wishing to avoid losing proficiency in what they've studied, it's tough choice to make. For this reason I decided to work at a boot-strapped startup and do OSS, instead of dealing with this kind of stupifying job market. That isn't to say all CS job markets are like this, it just comes with the territory.

  105. You're in the wrong program ... by MacTO · · Score: 1

    A traditional computer science program is designed to prepare you for research, may that be in academia or industry. Most of the problems that you'll be solving won't be easy, the solutions that you develop won't be seen by many people out of your field, but the work of a good computer scientist will be groundbreaking. They take the impractical and make it practical, primarily through developing algorithms that have a strong mathematical basis.

    It sounds like you'd be more interested in a software engineering degree. That's still heavy on math, but the emphasis is on designing and implementing software in a rigorous manner. Or maybe you want to be going through some sort of college program. That'll be much lighter on the math and you can still get decent jobs with it, but you'll be more of a grease monkey of the information age. (That is fine if you like that type of work, just realize that your career options are more limited.)

  106. Current graduates don't need as much math by dietdew7 · · Score: 1

    Just push the button with picture of the food item on it and the register will tell you what the change should be.

    1. Re:Current graduates don't need as much math by Agent0013 · · Score: 1

      Just push the button with picture of the food item on it and the register will tell you what the change should be.

      It's great to watch the face on these burger pushers when you give them the two or three pennies for your total after they punched in the $20 you gave them to start. They have a real hard time adding two cents to the change the register tells them to give back. They just sit there dumbfounded and have no clue what to do. Sometimes they will just refuse to take the pennies and only give you exactly what the screen says.

      --

      -- ssoorrrryy,, dduupplleexx sswwiittcchh oonn.. -Quote found on actual fortune cookie.
  107. My University... by Anonymous Coward · · Score: 0

    My university (Big Ten) removed differential equations from the curriculum (Computer Science) a few years ago. FYI

    It depends on what you will be working on. The work I do now requires some knowledge of linear algebra and matrices.

  108. I have bad news for you. by Anonymous Coward · · Score: 0

    If you don't "grok advanced math" the career in Computer Science is not for you. Switch your major to Art History and get good at busing tables.

    90% of software development is writing code, and chances are, you don't need to understand Linear Algebra for that. The other 10% is solving complex problems, which requires both understanding of mathematics and problem solving skills developed by studying mathematics. And it is these 10% cases that separate software developers from the morons polluting our industry who think they are "good at computers."

    There are lots of rewarding careers that don't require understanding of advanced math, but CS is not one of them. I suggest you either stop wining and hit those math books, or consider a different occupation.

  109. It's called Science by Anonymous Coward · · Score: 0

    There's no science without math. If you don't feel like doing science, why do you want to become a scientist? There are so many other professions related to programming and computers. Computer Science is specifically about programming as applied mathematics. Get used to it or get out.

  110. And this is why IT sucks, morons like this by Anonymous Coward · · Score: 0

    He says it himself, the applicant doesn't need the qualifications he looks for but he just wants them. Because being good in a field you don't need means you are good in another field... and that is the level of a LOT of managers in IT.

    But IT is gigantic, sure if you want a job at say an IBM (god forbid) maybe your diploma's matter. At a startup? Nobody cares. But what is it YOU want to do. Because if you hate maths, then you are NOT going to be any good at a job that requires you to be good at maths for the rest of your life.

  111. Depends by Anonymous Coward · · Score: 0

    Most computing, algebra is what you need (mostly for the problem-solving stuff; not the math).

    However, there are a number of lucrative branches of software development that make heavy use of extremely advanced math.

    I know that they have started teaching topology to network architects. With some of these distributed new database systems, I suspect that it could be applied there, as well.

    Good luck!

  112. It's more about what you find interesting.. by nanospook · · Score: 1

    You are satisfying requirements for a BS degree which requires the higher math. It's not necessarily specific to computer science. I wouuld say in Comp Sci as compared to other science majors that math is less important in regards to most of the jobs you might obtain and the ability to design complex solutions is more important. But again, it depends on what you are going to specialize in. It sounds to me like your problem is girls, parties, and too much liquor. Ok I'm just kidding.. It sounds to me like you simply are not very interested in math and thus find it challanging. It's too abstract and you need concrete. Many Comp Sci majors are simply not that kind of mind. Some go off to Info Systems or whatever the current variation of that is and specialize in business. The truth is that its simply boring if you are not into it.

    --
    Have you fscked your local propeller head today?
    1. Re:It's more about what you find interesting.. by nanospook · · Score: 1

      On a side note, I would say that the challenge of mastering a difficult topic that you are not interested in will serve you well when you run into similar challenges throughout life. Instead of going left, you will succeed and get it done.

      --
      Have you fscked your local propeller head today?
  113. Go back and learn the basics by Guru80 · · Score: 4, Insightful

    Firstly, it's very important. You will be kicking yourself in the ass for the next 10 years when you have to keep going back to figure out all this "crap you will never need" that you just so happen to need every month.

    Your problem seems to stem from a lack of understanding the basics according to your summary. Go back and really study them until you understand tehm; it will make life so much easier and it won't take long. Everyone these days are "good with computers" and if that is your selling point you can get hired for helpdesk support at minimum wage right now. If you want to be involved in any of the advanced CompSci areas though those fundamentals (advanced math is one of many) are absolutely necessary. The first time you can't figure out a simple algorithm because you don't understand the math behind it just stand up, shake the interviewers hand and go home, you already don't have the job.

    1. Re:Go back and learn the basics by Anonymous Coward · · Score: 0

      I once thought i was naturally inept at math. But, after having re-stared at the very beginning (using khanacademy), I now carry a 99% average, and I'm moving quickly. Math can be as easy as laying bricks, and as hard as laying bricks in mid-air.

  114. Re:Bottom line? It's not that important by pongo000 · · Score: 1

    The implication that "algorithm development" =! "application of higher math concepts" is hilarious.

    What's hilarious about using numerical analysis (algorithms) to solve complex mathematical processes?

    The idea that all computer scientists are also math experts is laughable though.

  115. Weigh against alternatives by Tablizer · · Score: 1

    For roughly 99% of the software work out there, it's not directly applicable. Yes, it's nice knowledge to have, but so is a lot of other knowledge. While I don't want to sound like I'm "bashing math" education, it should be considered in terms of the alternative subjects for the given time and effort. ALL knowledge is "nice to have", but we only have a limited time to absorb it.

    Educators don't push hard enough to weigh the options, or at least don't document their subject decision process publicly. "Trust us, we know what's best for you" is hard to accept. Perhaps the educators need an education in choosing education.

    1. Re:Weigh against alternatives by bananaquackmoo · · Score: 1

      This is an insightful comment.

  116. Math and CS by MLBs · · Score: 1

    For the past 20 years, I have been doing a wide variety of projects, and though some of the university math has been very useful (e.g. Linear algebra), I can honestly say I have never needed to use any of the differential equations techniques in the form taught in school.
    At best, I had to use a system that can be described by a differential equation, but in discrete form and with simple functions that numerically solve the problem.

  117. Boring by Anonymous Coward · · Score: 0

    Now do my solutions need integration by parts, linear algebra and differential equations? Absolutely not.

    I took all that math and I used to work at a company like yours.

    I was bored to tears after month and left. The company who hired me should have hired the tech school grad because it would have been cheaper, the tech grad probably would have found their work challenging, and it would have been a better fit. But the hiring manager had an ego and a lot of "shoulds and oughts" about what the "right" candidate should be and only wanted the "best" working for him and as it turned out, I wasn't the "best" for his particular needs.

    1. Re:Boring by Anonymous Coward · · Score: 0

      That's one hazard - the other is that the director wants the "brightest graduate" or the "most qualified graduate" for vacancy X, and that's after you responded the advert for vacancy Y. You don't get to find out until the day you start.

  118. Math GPA by Anonymous Coward · · Score: 0

    I went to a big school in California and got my BS in Computer Science, pulled a 1.6 GPA in math, but a 3.1 GPA overall. I've made a great career out of back end web development, and have never needed anything above Algebra. It's never impeded me from getting an interview or a job.

  119. Math is "Sci" in CompSci & shapes your mind by lars-o-matic · · Score: 1

    I agree with the less-cynical-sounding commenters: math is important in CS not just because of the history of the field, or because it shows your willingness to work hard, or because maybe one day you'll code in a domain that requires tensor analysis or what-have-you.

    It's important because when you "grok" it, your mind is different than before you grokked. Garridan's comment (http://ask.slashdot.org/comments.pl?sid=3805139&cid=43874611) is right on: you'll "sharpen your skills in symbolic manipulation". Pushups and bicep curls and stretching aren't sports: athletes do those things to condition their bodies for the real sports where nary a pushup is involved.

    Maybe the marketplace for the kind of job you want demands a CompSci degree in these tough years, but I know many developers from a few years back who don't have one. Question yourself: would you be better off getting certifications plus a 2-year diploma and a 2-year headstart in the job market rather than a 4-year degree? You might do just fine with job-oriented training on top of your aptitude and some experience.

    --
    je ne suis pas un fou
    1. Re:Math is "Sci" in CompSci & shapes your mind by JDG1980 · · Score: 1

      It's important because when you "grok" it, your mind is different than before you grokked. Garridan's comment (http://ask.slashdot.org/comments.pl?sid=3805139&cid=43874611) is right on: you'll "sharpen your skills in symbolic manipulation". Pushups and bicep curls and stretching aren't sports: athletes do those things to condition their bodies for the real sports where nary a pushup is involved.

      Prove it. 100 years ago they said the same thing about Greek and Latin. But when those courses were dropped from the requirements list, there's no evidence that the average quality of thought processes of college graduates went down. I doubt there will be with advanced math, either.

      These are specialized skills, nothing more or less. A few people need them; most don't. If you don't like them and aren't going to be in one of the few jobs that require them, then learning these skills is a waste of time and money.

    2. Re:Math is "Sci" in CompSci & shapes your mind by ZombieBraintrust · · Score: 1

      A bigger waste of money is getting a degree in a field that you will wind up hating. Do you really think this kid who has trouble with things beyond long division is going to enjoy programming? I suppose it is possible. But he should see a red flag that he doesn't like the things his proffesor and fellow students like.

  120. Re:Oh dear [resume] by Tablizer · · Score: 2

    It's right next to, "I do grammer goodly"

  121. CS Departments do a poor job at this.... by Fallen+Kell · · Score: 4, Insightful

    This is one area where I feel most CS departments do a very poor job explaining why this math is important. Too many seem to simply teach the math, but not WHY they are teaching the math. They do not show practical reasons for the the math, it is more simply taught as "Well this is the math. You need to know it because you need to know math".

    This is one of the reasons why I loved the way I learned these more advanced math classes. I was initially an Electrical and Computer Engineering major. Our Freshman and Sophomore curriculum was already per-designed before we even started. There were exactly zero changes you could make to it (unless you failed a course). We had calculus, physics, chemistry, biology, (and a few engineering classes, which were essentially introductions to engineering design, debugging/measuring instrumentation like oscilloscopes, multimeters, etc., basic circuit design, and practical implementation). But, all the classes were directly integrated. Meaning that at 9am when you had your calculus class which taught you differential equations, at 10:30am in your physics class you were then using the techniques that you learned in calculus to solve real world problems. The same with the chemistry and biology. Every professor knew exactly what was being covered in the other classes, so they knew exactly when they would use that material in a practical matter in their own course. We were using calculus to derive velocity vectors of moving objects, tangential line equations, and 3 dimensional transforms, the day we learned how to use the advanced math. So we were seeing the practical reason for the math and why it was relevant in the same day that we learned it.

    For a lot of programmers, you may not need to use those techniques, especially if you are simply writing social applications, or word processors. But if you are modeling 3 or 4 dimensional objects, simulating physics, creating a game engine, writing graphical engines like photoshop/GIMP, all this advanced calculus, differential equations, and matrix operations are very relevant.

    --
    We were all warned a long time ago that MS products sucked, remember the Magic 8 Ball said, "Outlook not so good"
    1. Re:CS Departments do a poor job at this.... by Darinbob · · Score: 1

      Most CS departments don't teach math because they just make the maths a prerequisite. Ie, students just do the prerequisites as a means to get the degree. Afterwords there may be a CS class that uses the math but it doesn't need to explain why you need it because it's just assumed that the math professor explained that, or otherwise it should be obvious why you need it.

      Ie, a computer graphics class will assume the students already know linear algebra, or at least are capable of a quick refressher, and instead of saying why you need linear algebra they'll say "in order to transform this image we have to multiply by a matrix...". Ie, it's implicit in the class why you need the math.

      Similarly, numerical analysis will just explain how to efficiently do mathematical calculations, but they won't explain "why" you need math because it should be obvious at that point.

      Where this is falling down I think are the hordes of students, like the original poster, who are squandering their education and only trying to get basic job training. They see CS as a way to learn to program so that they can get a job. They're goal isn't even the best job, it's just to get a job in an industry that seems to have high demand. Thirty years later they'll be wondering why their career isn't going any place and why those geeks who liked doing schoolwork seem to be getting the good jobs.

    2. Re:CS Departments do a poor job at this.... by khchung · · Score: 1

      Most CS departments don't teach math because they just make the maths a prerequisite. Ie, students just do the prerequisites as a means to get the degree. Afterwords there may be a CS class that uses the math but it doesn't need to explain why you need it because it's just assumed that the math professor explained that, or otherwise it should be obvious why you need it.

      Gee... this sounds just like the Waterfall model, guess where the CS departments learned it? :)

      Where this is falling down I think are the hordes of students, like the original poster, who are squandering their education and only trying to get basic job training.

      And this sounds just like managers who don't understand how things works, and think doing design is a waste of time and push for "just start writing code" before the requirements even finished.

      And I would say those hordes don't even want "basic job training", they just want a piece of paper.

      --
      Oliver.
    3. Re:CS Departments do a poor job at this.... by mr_mischief · · Score: 1

      You tell of a great school, but you don't name it. Surely the sage would not leave the willing novice to wander the desert?

    4. Re:CS Departments do a poor job at this.... by Common+Joe · · Score: 1

      But, all the classes were directly integrated.

      Wish I had gone to your school. Most universities are not like this.

    5. Re:CS Departments do a poor job at this.... by Darinbob · · Score: 1

      The maths requirements is usually not specifically a CS department requirement, it's usually an engineering requirement if CS is part of engineering, or mathematics requirement if CS is a part of the mathematics department, etc. CS departments usually also have the same requirements as everyone else; writing classes, english classes, maybe a foreign language, maybe a minor, and so on.

      Basically they're not saying "to be a programmer you need X". They're saying "to get a university degree in an academic subject called Computer Science, you need X". People should not treat universities like just another trade school.

  122. Social Skills important by kamapuaa · · Score: 1

    Being the sort of person who would never use the word "grok" is probably even more important to your career and your life. Even more so with using it twice in two consecutive sentences.

    --
    Slashdot: providing anti-social weirdos a soapbox, since 1997.
  123. School is not about what you need by Anonymous Coward · · Score: 0

    In my opinion the most important reason you need to obtain any formal education what so ever is to be able to show potential employers that you were faced with tough problems and you managed to solve them. This shows that you can learn and solve whatever issues they may throw at you.

    in short, the formal education is mostly not about the specific content.

  124. Differential equations are not advanced math. by 140Mandak262Jamuna · · Score: 1
    Differential equations are not advanced math. It is just basic calculus. Partial Differential Equations is where advanced math starts.

    You think you love computers. But basically you love some parts of the computers that you are familiar with. But in real life, after getting your CS degree, the part of computing that puts food on the table and pays rent, is probably not going to be that part of computers that you love. It is going to be some pointy haired bosses, some nitwit IT department, some insane procedures instituted by some VP, and work, deadline, metrics, annual performance review ..

    Where does diff eqn figure in this? It is where you learn to do things that are not particularly interesting, whose purpose is not immediately evident, things that are hard, things that require hard work, long hours and perseverance to complete. In short these frustrating experiences prepare you for a career. Any fool can devote all his/her time to something he/she loves. I am not sure the job I am offering is going the what you are passionate about. I need workers who will complete tasks even if they are boring and appear to be pointless. I will hire people who have suffered through diff equations. In an earlier era I might have insisted on Latin too.

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
  125. If in one of the traditionally 'fun' fields by Ameryll · · Score: 1

    I work primarily in computer graphics. My close friends/family mostly work in video games and simulators. I find that I need to understand advanced math a fair amount - Linear Algebra, Discreet Math, Graph Theory. My friends in simulators or the graphics of core games end up working on some pretty snazzy math problems as well. My family member that works in casual games only uses Trigonometry.

  126. Specific Course Recommendations by RedLeg · · Score: 1
    Up front, I have a BS in Math, concentrated more in the abstract than applied, and it's 30 years old. I've also spent the last 20+ years in InfoSec, dabbling in programming along the way. I look back on what I took which has served me the best since:

    - Formal Logic (might have to look in the Philosophy department for that one, it was dual credit for us)

    - Structured Programming

    - Number Theory

    - Mathematical Modeling

    Lots of the rest of it was fun, but I haven't really used much of the college level math since then. The geometry and trigonometry I had in high school have served me much better.

    Hope this helps.... Red

  127. DEs are Important - Drop the Teacher by Ropati · · Score: 1

    As has been posted earlier mastering differential equations is an exercise in symbol manipulation, but the underlying equations are really important.

    Mathematics is an ordering of nature via symbols. In the ordering of nature, Newton realized that most equations had a second level of ordering that described the original equation. These equations of differentiation and integration were achieved by making differencing ratios and approaching a limit. Differential formula can be used in every field of science. They are used regularly in Computer Science usually as an algorithm to optimize a process.

    Learning to manipulate these equations in your situation is probably unnecessary. Understanding what these equations are used for in the real world is very useful. I suggest you consult Google for each equations use in real world situations, if only to give you some mnemonic for learning this stuff. (You can probably consult Google for the DE problem answers too.) If you know how the equation/formula is used in the real world you might see a use for the same concept in a program, hence it is good for a degree in CS.

    On the flip side, a good teacher should be able to make this stuff come alive and be far less dry then you make it out to be. Your academic career will flourish if you spend a lot more time researching your teachers for next semester. Consider a different institution if the student consensus is that there are no good math teachers where you toil.

    --
    machinator omnis sine licentia
  128. If You Don't Want to be a Dog Coder, You Need Math by Anonymous Coward · · Score: 0

    Industrial assembly line coders and maintainers don't need math, that's true. Many people have successful and happy careers doing this. But the math would not hurt. Part of your problem is probably academe itself. Math curricula are designed to weed out students not suitable for a degree in math. See if you can take more practical math from your engineering school. It won't be any easier, but the usefulness will be more obvious.

    Coders who work on interesting stuff definitely need math. Examples from my past - machine and deep learning require linear algebra; robotics requires machine learning and lots of mechanical engineering calculus; security requires knowledge of the basics of cryptography and cryptology. Data transmission and networking requires discrete simulation modeling and optimization of linear models. Automating reverse engineering of undocumented software requires lots of math-type stuff (regular expressions, parsing, finite state machines, graphing).

    conrad6

  129. Do you want to follow or lead? by seth_hartbecke · · Score: 1

    I think it matters a bit on what you want to do. An awful lot of the "heavy lifting" math intensive stuff has been implemented in the form of shared libraries. Do you want to encrypt data? Knowing more of best practices around session and key management (which isn't a math laden topic) and that you need good entropy for key generation (something you can find implemented in a shared library). So, go find some shared libs with AES and prng (source of random data) and you're likely good.

    Do you want to be the guy who makes what replaces AES? Learn to love math.

    Really it comes down to: do you want to follow best practices or make them? The more you want to be on the end of making best practices vs gluing together bits and pieces the more really knowing math helps.

    --
    END
  130. need for a B.Sci?? by Anonymous Coward · · Score: 0

    "nobody in the workforce is even going to glance at my direction without a BSc"

    Nonsense. In the start-up where I worked after college, one of our star programmers was a high school student. A big part of my job was training new hires; we didn't insist on CS majors. We hired lots of math and physics majors: folks who were comfortable with abstraction and logical rigor and problem-solving. We also hired some business majors and other non-science types if they showed some aptitude for problem-solving. Seriously, I would train these folks in a week and then we'd start billing them out at $100/hr. Not that you'd want them writing kernel code on their first day, but most businesses don't need really elegant code, they just want the damn TPS report to upload to the accounting department server automatically.

    Do you need any kind of math to do QA and debugging, which is probably what your first "programming" job is going to be if you wait for "the workforce" to come to you? Heck no.

    Perhaps the title of the article was deceiving. Is math needed for computer *science*? Yes, absolutely. Diff Eq? Well, maybe if you're doing large-scale simulations (weather, nukes, population biology). But for computer *programming*, all you need is boolean algebra and a little algorithmic complexity theory.

    Do you need a B.Sc. to get a programming job? No. If your school offers a B.A., take it. I do recommend a bachelor's degree. Without it you'll have to do some kind of tangible project (write your own game for Android, for example) to show that you're capable of closing Facebook long enough to write some code.

  131. Yes, if you want job security and decent salary by Anonymous Coward · · Score: 0

    With advanced mathematics, you're a computer scientist. Without it, you're a code monkey, and just about anybody can be a code monkey.

    There's plenty of jobs out there that only require a code monkey. But there is also an increasing pool of available code monkeys. The field is increasingly being viewed as a lower skilled position, so you will get paid less and be more disposable without advanced theory and practice.

    The reason you don't see why it's important now is because you haven't learned it yet, and therefore don't understand its applications. Besides the fact that you're still in school and have limited if any real world experience, so obviously you haven't limited context for knowing what problems you will actually be expected to solve in the field. Will you use diff-eq every day? Almost certainly not. Every month? Doubtful. Possibly not every year. Put the likelihood of it showing up eventually is high, and the person considering hiring you will want to know that when it does show up, you're not gonna shit your pants.

    More to the point, you'll probably be able to get through most if not all of your work without advanced mathematics. But you'll be better at it if you can apply something beyond long division. You'll be able to find better solutions, work through issues more quickly, and be better equipped to identify what issues are present and what tools are out there to solve them. Without advanced mathematics, your job will be a lot of "yeh, that'll probably be ok." With advanced mathematics, your job will be a whole lot more, "give me a second, I can come up an optimum solution and prove that it's optimal."

    If you're struggling with math, get extra help. Seriously, get extra help. I'll say it again: get extra help. I've never met a professor who isn't willing to give you the resources you need to learn what they're trying to teach you. Being is college in a golden opportunity to actually learn stuff from people whose responsibility it is to teach you, take advantage of it.

    You should consider that perhaps CS was invented by mathematicians for a reason.

  132. Important to pass, not to understand or use by makellan · · Score: 1

    Getting your BSc or even your BSe (Software Engineering) will require calculus. You're unlikely to ever use it again since you won't pick a job that requires a deep understanding of the subject. You can even look up anything that you need to know and/or use libraries written by those with that deep understanding. Just get through the courses.

  133. My son ran into this by Fifth+of+Five · · Score: 1

    And I explained to him that the same logical thought processes that go into higher math (and by that I mean maybe college-level calculus 101) are required to do solid, efficient coding of any kind. He was absolutely horrible at math, and his attempts at coding were predictably terrible.

    --
    "Melt the ice; eat the moose; drill the oil; get it over with." -Max Boot
  134. All you need by kilodelta · · Score: 1

    Is a minimum of Algebra I, maybe some Trig and Geometry. Otherwise not much. Calculus is NOT required.

  135. If you have the time, try to get it done now by pafriend · · Score: 1

    I have a good career despite having not completed my degree, but it is a more difficult path. Math is and always has been my worst subject, so I understand your frustration. If you get a base set of skills in your brain now, it will probably be easier for you to refresh your knowledge some years later when a problem comes up that needs some specific math skills. Some examples I have run into include linear algebra, matrix manipulation and probability, which are used in search engines and 3D stuff. I recently needed to understand the math behind the checksum method used by Galois Counter Mode, specifically whether it could be performed on separate chunks of a file and then recombined (it can). This required a lot of quality time with a discrete math text. None of this stuff is considered advanced, but my point is that exposure to concepts now can aid in finding a solution to a problem you are presented in the future. The stuff gets harder to learn when you get older. :-)

  136. Uh by xaoslaad · · Score: 1

    Maybe you should take some writing courses. That paragraph sounds like a 16 year old venting.

    I was terrible at Calculus. I got a D in Calculus the first time I took the class. I had to drop out of Calculus II because I couldn't understand a damn thing. It ultimately led to me dropping out because I couldn't get the degree I wanted without going through those classes all over again. But, I finally grew the hell up and decided that just like everyone else who got a CS degree before me, I was going to pass Calculus I and II.

    After a long break I finally, perhaps somewhat insanely, decided to take two accelerated evening courses over the summer at UMass Boston. 12 weeks for Calculus I & II. An entire calculus book. It was pure hell. When I wasn't working I was either in class or doing homework. I literally got 1 hour of sleep some nights. Literally sleeping standing up on the train going into the city for work the next morning. Having fun on the weekends? Forget it. Friday night to Monday morning was homework time. I was deficient on Trig and Algebra knowledge, so I had to teach all that to myself as well as I went. I shall forever refer to that as the summer of calculus.

    I ended up joining the Marine Corps after that summer. But I learned a simple lesson from that as well. They give you every chance to succeed. It's up to you if you want to take it. I also got the G.I. Bill, which in the end allowed me to afford my courses more easily and accelerate the pace at which I took them. But it's the same thing. They give you every chance to succeed and it's up to you to take them up on it.

    And for whatever reason Linear Algebra had the Calc classes as prerequisites for it, and I ended up absolutely loving that class. I also got serious and got my degree. Calc I, Calc II, Linear Algrebra, and Discrete Math, all under my belt.

    You're not special. Do what everyone else did. Someday if you're the dean or run the CS/Math department at some university you can alter the requirements if you think they're so unjust.

  137. "Computer Science" vs. "Software Engineering" by GWBasic · · Score: 2

    Spend time thinking about the different between Software Engineering vs. Computer Science. It's kind of like the difference between Physics and Mechanical Engineering. Some schools now offer degrees in Software Engineering for this reason.

    One of the most useful classes I took was an entry-level Mechanical Engineering class. The reason is that the "Engineering" approach and mindset is needed in application development; yet a "Science" degree often doesn't emphasis this enough.

    When you're past the hurdle of math classes, look at fun engineering classes outside of the Computer Science discipline. You'll actually learn lessons that you can apply outside of college. For me, "Technology of Alpine Skiing" turned out to actually be useful, and I got to go skiing for a grade!

    1. Re:"Computer Science" vs. "Software Engineering" by servognome · · Score: 1

      Pretty much any 400 level class is interesting. Reading through the course catalog, there's some really cool stuff in philosophy, English, and humanities, that actually have some level of translation to computer science (epistemology, linguistics, human machine interaction, etc). Not to mention engineering where you actually do cool stuff and not just analyze circuits to death.

      --
      D6 63 0D 70 89 81 BB 8E 7B 7C 5F 5D 54 EA AB 73
  138. Introduction to Algorithms by SengirV · · Score: 1

    I have been out of a school for a while, and I just picked this book up to refresh/prepare for an upcoming interview. Try getting through that book without a math background. My mind is still hurting from what I was reading last night.

    But the point is, what kind of job are you looking for. Quite frankly, you would most likely NOT enjoy a job that was not challenging.

    --

    Prof. Farnsworth - "Oh a lesson in not changing history from Mr I'm-My-Own-Grandpa!"

  139. Important? maybe not... fun? hell yeah! by Anonymous Coward · · Score: 0

    My case was the exact opposite. I started the Computer Engineering degree, got thgough the first three years that were essentially math and very basic programming and when I had to deal with the project management, and advanced programming I realized I really hated that stuff...

    Long story short, I got a job, dropped out of college, moved to a new country and had a very good early career working in all things Oracle.

    However, if you want certain kind of jobs, live in the US or ever hope to be a manager, you do need the degree and learning "the math" is essential for getting the degree... so I'll that it's very important. If you don't understand it, even after reading from a book and asking your teacher, there are a few nice IRC channels (like #math and #physics) in many networks (I usually go to freenode), there are people there that can help you understand concepts... but only if you've done your homework... otherwise they are kinda jerks...

    hth
    cheers

  140. Well, maybe it doesn't matter *now*... by MikeLip · · Score: 1

    If you are looking at immediate employment prospects and saying you don't need math for them, then yeah you're right - in the short term. But 5 years from now, who knows what you will be doing or what you will have to be familiar with? Even if you don't remember the exact approaches, you should at least be able to recognize the problems. As for the actual math, I sucked at math. Until I got a good prof who loved what she taught and convinced me that while my doing the problems assigned was good, if I was having difficulty it was because I wasn't doing enough homework. So I ended up doing all the problems I could get my hands on and basically doing math all day Saturdays and Sundays and quite a few evenings. Turns out if you want to be good at it, you have to do a lot of it - not just the minimum required. Very few of us are Sheldon Cooper and math is all about practice.

  141. No you don't need advanced mathematics... by nbritton · · Score: 1

    It really depends what you want to do for a career, honestly you could get by with College Algebra for most any business I.T. position, but to be great at your IT job I would take Business Calculus, Statistics, and Discrete / Finite mathematics at a minimum. I would say that breadth of mathematical knowledge is more important then knowing something like Calculus III, Linear Algebra, or Differential Equations. Survey classes are a good option.

    If you want to be a computer scientist proper, you will need 400 level mathematics courses, a real computer science degree is little more then an applied mathematics degree. If you want to be a programer I can't comment on that because I'm not a programmer, I'm a computer systems engineer. If your going down the systems engineering route knowing something about electronics is just as important as mathematics. To be good at systems engineering you need a very broad knowledge base, I've used advanced calculus like never in my career. Algebra and Statistics daily, for example calculating the MTBF for a RAID array requires no calculus what so ever, but you need to know how to work with probabilities. If you want to implement an algorithm in code, some random computer scientist already did the leg work and all you have to do is integrate it into your project.

    In short it's like playing with legos, you'll need advanced mathematics or electronics if you wish to roll your own lego bricks, however today we typically just buy bricks off the shelf.

    1. Re:No you don't need advanced mathematics... by Darinbob · · Score: 1

      Your "career" is not fixed. Do not plan for your first after-college job and assume that's what you'll do for the rest of your life. People will change jobs many times over their lives, they will even change careers. With programming and engineering you may keep the same career for a lifetime but at the same time you will radically change the type of work you do. That is you may be programming a business system in one job, a medical system in the next job, a physics simulation in the next job, and so forth.

  142. Yea, you're missing the point. by Anonymous Coward · · Score: 0

    The bottom line is not that you actually need to know the diff eq or calculus algorithms you learn in class, but you need to be able to learn and understand them. There is a difference between understanding something and being able to understand something. Yea, in practicality, they mean the same. But the point is different. If you cannot "grok" (btw, I don't like your use of this word, I'm guessing you're not good at English, either) undergrad math, then I doubt you can fully understand complex problems that you will inevitably face in any field in which you need a pure CS degree. I suggest career change before it's too late.

  143. It's a brain thing. by agapeton · · Score: 1

    Advanced Math trains your brain to be more awesome. I was a math major in college. I find that it trains people to engage in higher-level, abstract thought, which is what a lot of architecture is about. If you just want to build stuff, physics was the way to go. There's never any reason to waste your brain on a CS degree, though. Good schools require that you master the programming languages before you show-up to the first class-- and if you can do that, just buy the books and learn on your own anyways! You'll then be prepared to keep up with the floods of stuff you need to learn in your career! My quote: "Books make their authors redundant. Good books make their authors obsolete. - David Betz"

  144. How Important Is Math For CS? by StormReaver · · Score: 1

    You didn't give us enough information to answer that question, and you probably don't have enough information to give us. Here is the only answer that is going to matter: the more you know, the broader your employment opportunities. How much you need to know depends on what jobs you end up getting. They range from "no advanced math needed," to "you can't possibly know enough math."

    I've written jail management software, tax collection software, basic game physics libraries, office management software, and a whole bunch of stuff covering a very diverse range of topics.

    Game physics were the most mathematically demanding topics, but all of those problems have already been solved by others. My need to actually know game physics math was minimal (vectors, matrices, dot products, and cross products covered most of what I needed), as I only needed to be able to understand the language of the presenter enough to implement the math in code.

    However, sometimes I am presented with a business problem that I can solve with the math I learned from game physics. One example was writing a report showing which jail inmates were ever housed together over a given period of time. This was easily solved as a one-dimensional collision detection problem, exactly as it would have been done in a video game. It wasn't advanced math by any stretch of the imagination, but it was an application of math that I would never have predicted until faced with the problem.

    So there is no simple answer such as, "you don't need math" or "yes, you definitely need math." There are far too many variables to consider. The bottom line, though, is that it's very helpful to know, and in ways you can't predict. Sadly, the college/university classroom is the single worst possible environment in which to learn it.

  145. Advanced? by Anonymous Coward · · Score: 0

    haha, he thinks he thinks differential equations is advanced math.

  146. Re:but CS is not IT and not even application devel by jedidiah · · Score: 1

    A sports University will have a CIS program more firmly rooted in theory. Such a program will also have more robust basic education requirements including math, science, the humanities, and even engineering depending on the school/department.

    The party school will have all of the "useless" stuff that hiring managers like to treat as not directly relevant to the job.

    Academic arcana can be useful even in IT.

    --
    A Pirate and a Puritan look the same on a balance sheet.
  147. See? by dragon-file · · Score: 1
    This is why college, IMHO, blows so hard. Its one thing to ask me to pay money to teach me something I want to learn. It's another to make me pay for things you're teaching me that I dont need and or care about.

    I do basic IT admin work and I haven't gone out and gotten a degree. Just a long list of job related work experience. However I work in an region of the U.S. where a degree isn't going to help much anyway because there aren't high paying IT jobs unless I want to commute 2 hours every day.

    The point is. Sometimes experience outweighs a degree. Sometimes you need to know math. It all depends on what you want to do.

    --
    Whenever a player quits EVE to go play WoW, the Average IQ of both games increase.
  148. Short answer: it matters by dkleinsc · · Score: 1

    1. What you're doing as a programmer most of the time is basically applied math. Most of it is discrete math.
    2. If you can't figure out the logic of higher math courses, you're going to have serious trouble figuring out the logic of 300,000-line programs. If you can't handle it, you may be going into the wrong sub-field, and would do better focusing on, say, technical writing.
    3. Statistics is incredibly useful. For example, let's say you're tracking the performance of your systems, and you need to figure out what's an unusual number for some metric you're tracking, and whether it's worth waking up the sysadmin to investigate.
    4. Linear algebra and calculus are critical if you're trying to do stuff with graphics. And you can make big bucks by doing that well, as some of my classmates who went to Pixar found out.

    --
    I am officially gone from /. Long live http://www.soylentnews.com/
  149. Re:Bottom line? It's not that important by Anonymous Coward · · Score: 0

    Aha! So *you* are why my auto-pilot inverts the aircraft when I cross the equator.

    Remember that Numerical Analysis course you took? Sometimes the order in which you execute the math operations from that equation the PhD gave you makes a difference.

  150. try a discrete math survey course by dlenmn · · Score: 1

    Math is a big field, and -- if you like computers -- some discrete math subfield might click with you. Even if it seems much different than differential equations, math is a very interconnect field, and having a foothold in one area might help you with others; proofs and problem solving work the same way everywhere. Differential equations might be easier afterwards.

    Many schools have a discrete math survey course, and much of it is directly relevant to programming. I'd start there.

    However, if you can't handle that class, then you should reconsider your major.

    FWIW, I'm under the impression that most continuous math (calculus, differential equations, etc.) isn't directly useful for most programming. (Although, speaking as a physics grad student who spend a lot of time writing simulations, there are certainly programming applications for continuous math.)

  151. You will struggle no matter what. by Jartan · · Score: 1

    I'm not going to say the actual math is all that important. If you have trouble with even basic calculus though then you probably aren't suited to programming. You can perhaps fix the underlying problem though. You just have to find what it is.

  152. you sure you've exhausted all of your resources? by Anonymous Coward · · Score: 0

    Get tested for possible disability. It's not a stigma.

    Get supplemental material. I recommend calculus for cats (a book) -- it's a math explanatory text with no problems for verbal thinkers.

    I should say that I have a disability that makes math difficult, but I think there are enough resources at your disposal. also, talk to your professors and see if they would be willing to custom design your major without calculus in it.

    That's not even mentioning the tutoring that's available at most universities.

    I also have not watched the teaching company's calculus course, but really like the professor that teaches it.

    www.thegreatcourses.com

    (Many of them are available in the library system.)

  153. The math will help you think clearly by Anonymous Coward · · Score: 0

    Get Michael Spivak's calculus text, a big black book. The preface addresses what's at hand here. You take math classes so you can 1) understand how to state, approach, and solve complex problems and 2) clearly articulate solutions that you can prove valid to yourself and others. Those issues are extremely relevant to cs.

  154. It's more about understanding what math exists by intermodal · · Score: 1

    and why. you can't write something that applies a formula or mathematical concept without first being aware that it exists and having an understanding of how it works. do you need to be able to do it by hand on a piece of paper with a pencil or know the quirks of your model of graphing calculator? No. do you need to understand the process well enough to realize what changes will have which effect? Absolutely.

    --
    In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
  155. elephant in the room... by Anonymous Coward · · Score: 0

    So you're basically saying that you are too stupid/lazy to understand anything beyond long division and you (claim) to be 'very good at computers'.

    1) Send me your resume (I need a good laugh)
    2) Sign up for MSCE cause you're gonna end up in the IT dept somewhere ghosting images onto laptops.

  156. Most departments teach the wrong math by khb · · Score: 1

    That your gripe is with differential equations suggests that your department is just using the Math courses as a screening process (eliminate the chaff). Statistics (parametric and non-parametric), linear algebra, number theory, numerical methods ... these all have direct application to real world problems folks face in applying computers to business or engineering problems.

    Number theory is the basis for cryptosystems. You probably won't be developing your own, but understanding a bit of why they work (or don't) is an example of how advanced mathematics impacts our day to day life in CS applications.

    Even if you don't become a "data scientist" understanding statistics (correct and incorrect usage) are key to performance analysis, system tuning, etc.

    Numerical methods help one appreciate entire classes of errors which computers make by design; not critical for an OS developer (no fp in kernels) but someday, somehow you may find yourself dealing with floating point computations ... learning about the fine points (see, for example, the Goldberg paper "What Every Computer Scientist Should Know about Floating Point Arithmetic" http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html).

    The list goes on. But differential equations really shouldn't be part of it. Pity that few CS departments work closely with Math departments to craft courses where the subject matter not only matters, but the linkage is made explicit.

  157. Differential equations are basic by Animats · · Score: 1

    Differential equations are really important in CS now. They didn't used to be. I have a MSCS from Stanford from 1985, and there was almost no continuous math in CS back then. I got lots of discrite math - number theory, automata theory, formal methods, proof of correctness - all the stuff you need for Vols 1-3 of Knuth. Things have changed since then.

    Today, we have machine learning, which is all continuous math, statistics, and differential equations. If you do anything with robotics or advanced game development, you'll need differential equations. A game physics engine is all differential equations. Vision and navigation systems need differential equations. Modern control theory requires so much math that control theory PhDs are struggling. Yet that's how they get those quadrotors zooming around like they're on rails. Search engines, ad engines, and machine translation all have differential equations inside.

    However, almost all the differential equation work needed for computer science can be visualized. It's not like abstract algebra, where it's all symbol manipulation. You can usually draw pictures, or get your computer to draw them, to see what's going on. At least for the low-dimensional cases. Often in machine learning, you can see what's going on for the 2D case, but the real work is happening in some space with 50 or so dimensions.

    If you're just going to put business systems together, you don't need much of that, but you don't really need a MSCS either.

  158. Math is a tool to train the brain by Anonymous Coward · · Score: 0

    Math is like the gym for the brain. When you bench press weights it's not because your physical activity will necessary require a lot of bench pressing. It's to tone and train the muscles. The brain is the same way. It needs to be programmed, exercised and trained. The logic and thought process used for math translates into programming skills. It's OK to struggle at math, it means your pushing yourself. If it's easy, your not really accomplishing much. Some people are naturally genetically physically fit, but most of the rest of us are capable of reaching those same levels with drive, training, and exercise. The same goes for brain. If Math is easy for you, your probably better off toning other parts of the brain with exercises in things like physics, engineering, and even liberal arts! The idea is to tone the brain and learn to train. In some cases you may train for a literal carrier in math, for everyone else being mentally fit applies to all parts of life and any carrier. You don't need to know math, it's something you should practice.

  159. Personality by ZombieBraintrust · · Score: 1

    Programming is about understanding and manipulating symbols in complex systems. Your using the same parts of the brain in differential equations that you use when debugging a program. If you don't like the advanced math then this may not be the field for you.

  160. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  161. Math is more than simple calculations by ranton · · Score: 2

    Taking math in school has very little to do with actually being able to perform calculus or differential equations in ten years. It is about training your brain to think differently than most people. To train your brain to think more logically.

    The same people who struggled with Algebra in high school are the same people who are going to struggle with complex business rules in application code. If someone failed at something simple like integration by parts, I probably don't want them in a lead role designing important software. I am sure there are plenty of exceptions, but in my 10 year career I have still never found a quality developer who was bad at math in school (plenty who didn't like it, but none who struggled to pass Calc 1-3, except perhaps the ones who were severe slackers at a young age).

    --
    -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
  162. crap? go fuck yourself by Anonymous Coward · · Score: 0

    suck it up and learn you pansy

  163. Share the same problem, have a thought that may he by Anonymous Coward · · Score: 0

    I just finished getting a "D" in my College Algebra class this spring, and am considering between a Business and a CIS degree. In either direction I want to earn a Bachelors of Science Degree, and as I pride myself in doing math without additional help, the D was a major blow.

    However, given the number of people I've worked with and talked to, I can offer something a few professors have pointed out and can understand and see easily,and can therefore justify. How deep into the computer do you want or need to program? If we're talking stuff like game or app development, the necessity might depend on the complexity of the project being worked, which a lot of the comments have already explained. The further into the OS and hardware, however, may necessitate heavier mathematics due to not having those libraries or components many surface-level apps use to fall back on. (To put bluntly: How many Operating systems are written in Visual Basic or HTML?)

    I personally want to have it to keep my doors and options open, especially as I get older. However, as technology seems to get easier for the end user, I also see it becoming increasingly easier for the programmer as well, which is why I don't think it's a necessity anymore.

  164. Discrete vs. continuous math by drdrgivemethenews · · Score: 2

    When I was in grad school, I noticed that the EE classes were all about continuous math. EE deals with a mostly analog world and you need all those partial differential equations to work in it.

    On the other hand, the CS classes were all about discrete math. The EE guys give us machines that provide an environment based on binary math and logic. You need to understand finite automata, compilers, data structures, algorithms, and so on to work in that world.

    Myself, I found that I liked discrete math better, but that's me.

    One piece of advice. Learn and understand networking. You'll never be sorry.

    ------

    Theory blazes the trail, but it can't pave the road.

    1. Re:Discrete vs. continuous math by Anonymous Coward · · Score: 0

      Funny thing... an EE really deals with discrete math under the surface of the modern design/simulate/measure workflow. I'm a hardcore analog/RF EE. Everything I measure and simulate has to be sampled somehow, which means it ends up as discrete math. It may be displayed as continuous, but every measurement and simulation is bandwidth limited and sampled at discrete points just out of practicality. I've nearly stopped thinking in terms of continuous math and have become a better engineer for it. Understanding discrete math made a huge difference in my ability to solve problems and design things successfully- sometimes the discreteness of the tools I was using wasn't agreeing with continuous results and vice versa.

  165. There's more to learning Math than just the Math by Scared+Rabbit · · Score: 1

    A lot of learning Math is learning problem solving skills, or even more importantly it's about learning how to learn new problem solving skills. Sure there are many advanced Math skills that can be useful in industry, but learning how to think about problems in multiple ways can be helpful for developing solutions to problems. Additionally, Math can be useful for determining complexity and optimizing programs.

    It sounds to me like you're more interested in software development than in computer science. These two fields are often confused for each other, but are certainly not the same thing.

  166. Work at Math, but don't stress too mucht for CS by miniMUNCH · · Score: 1

    To the OP.... Math is sort of the language of science and provided much of the logical foundation of computer science, programming languages, compilers, etc.
    Advanced maths can be challenging to learn especially when it is not taught well (which is increasingly becoming the case these days).

    Two comments:

    With regards to differential equations, don't stress out in short term... you may not run into too many Diff Eq or integral in your CS degree undergrad.

    In the long term, having a solid understanding of advanced mathematics and some physics (optics, E&M, mechanics) will open doors in your career and will enable you to teach yourself new technology. So do yourself a favor, summer is coming up... keep working at the DiffEq's, Fourier series, etc. a little bit here and there over the summer. Maybe even consider getting a minor in Physics?

    Best of luck

  167. GPA should be 2-3 parts and or some of the by Joe_Dragon · · Score: 1

    GPA should be 2-3 parts and or some of the filler classes need to be pass fail.

    Have a core class GPA. An gen EDU GPA and an filler / fluff class GPA.

  168. Do the math. Get the degree. by rmdyer · · Score: 2

    YOU WON'T REGRET IT!

    I started college out of high school as most do. I wasn't any good at 'math' either. I dropped out of college for a while. In the meantime I did a huge amount of hobby and semi-professional programming on my own. Later, after not being able to find a good job, I decided to go back to college. I decided early to actually, finally, try and 'get math'. I did it by forcing myself through math courses slowly, one at a time.

    You know what? I finally got some good instructors, and with the combined knowledge I got from my personal programming, I finally 'got math'. And let me tell you, the sensation of actually knowing what was going on in math was exhilarating, amazing, and fun. It turns out that 'math', is nothing more than symbol manipulation, and rules for symbol manipulation (of course combined with various forms of logic). So 'math' actually -is- programming.

    With 'math', you just sit around and memorize what the various symbols mean (nomenclature, discipline specific vernacular), what to do with them, and where they are applied. Turns out most of 'math' is algebraic in nature, so doing 'math' really well requires you understand the basic algebraic rules well. Anything else is logic specific to that dicsipline.

    I would say now, that if you don't understand 'math', you really don't understand computers. You are just a trades person, and will rarely end up doing much more than vocational work.

    Honestly, lacking the nature to push-through the crap envelope tells me a lot about your personality, and is why I would not hire you.

  169. It's very important by msobkow · · Score: 2

    Over the years I've ended up making significant use of the math I learned in university.

    Array and vector mathematics for graphics and 3D modelling.

    Statistics for the financial industry, simulations, and supply chain programming.

    Calculus for physics modelling, sound wave propagation calculations, and a host of other things.

    Set theory for in-depth understanding and use of RDBMS servers.

    But if you don't know the mathematics that can provide elegant and efficient solutions, feel free to implement a hodge podge of crap code like I've run into time and again over the years.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:It's very important by pongo000 · · Score: 1

      Array and vector mathematics for graphics and 3D modelling.

      Statistics for the financial industry, simulations, and supply chain programming.

      Calculus for physics modelling, sound wave propagation calculations, and a host of other things.

      Set theory for in-depth understanding and use of RDBMS servers.

      Only problem is that these aren't exactly "advanced" areas of mathemical knowledge. Unless we are collectively dumbing down our domain of mathematics and now consider mastery of these subjects as "advanced."

      As someone mentioned earlier, take a course in Galois theory. Then let's talk about "advanced" math topics.

  170. I figured this out later by Anonymous Coward · · Score: 0

    Computer Science IS math. It's like the red headed stepchild branch of math, and Computer Science is not Software engineering. But CS itself is math.

  171. If you knew it... by Anonymous Coward · · Score: 0

    If you were good at math, then you wouldn't be posting this question.

  172. Math maths mathmagic by dthanna · · Score: 1

    What do you need vs. what do you use?

    What I use...
    Linear Algebra - I do a lot of work in the print/PDF industry. Matrix transformations being the primary one to convert coordinate systems.
    Number Theory - To understand cryptography, data compress, encode-decode, etc. - it's really hard to do any of this without Number Theory.
    Discrete and Combinatorial math - As strange as it sounds, knowing how to properly count and manipulate integers is the heart and foundation of what a computer does.
    Graph Theory - For flowcharts (yes, a good developer should still sketch overall design, logic flow, data flow, etc.), logic, state-tables, and programming data structures (including object inheritance).
    Regular Algebra I & II - used all the time... Solve for X?
    Both Algebra (discrete) and Calculus (continuous) based course in statistics.. or as we would call it sadistics.
    I had Calc I, II, & III. Do I use any of it? NO - but I'm not a Quaint. But it's been helpful to make better sense of the maths I *do* use.

    In short - don't select the courses based on what you will *need* - but on what will help you solve problems, be functional, productive, and give you the tools to teach yourself what you don't know when you need it. It's just like all the CS class you take - a zillion languages, data structures, networking, databases, etc. Because of that background I've been able to teach myself Python, JavaScript and a few other languages - that didn't even exist when I was in school.

    CS is like woodworking (which I do as well). A lot of folks can use a table saw, router, planer, etc. to make a nice piece of case goods. But if that's all you know how to use that's what you will be limited to doing. The truly skilled folks can use those tools, a hand saw, along with a cabinet scraper (level a finish), chisels, carving tools and a Stanley Combination plane. They don't use them or need them all that often. Sometimes it's years apart - but when they do they are sure glad to have that tool in their toolbox.

    When a new project comes along, would you rather be the one that can say 'Sure, I can take that on.' or the one that says - 'Go ahead and outsource that to a contractor.' Maybe you are the contractor - Yea, I can do it! - or no, have to pass on that gig - maths are too complex.

    I don't remember much of my Calculus - but I know it's there. And, if I ever need it I can go out to the Wikipedia page and bone up on the part's that I forgot. And if I never need it - I still feel that I am a better person having learnt it at one time.

    Finally - for all of you that said 'oh, you'll never need that because library 'x' handles it for you.' Someone had to write library X. I'm not saying that everyone needs to start from square one and invent the wheel, fire, and the lever. But you should at least know how the wheel, fire, and the lever work when you use it. Lest you start to use a screwdriver for a chisel.

    Good luck.

  173. Just starting by giveen1 · · Score: 1

    I've been a tech for years, and moving into information security (just got my Associates in Applied Science in Information Security and Digital Forensics) but decided going for my Bachelors might be a great idea. I'm not looking forward to the math either. However, I know I will need it for courses such as cryptology.

  174. To recognize that a problem is a math problem by Anonymous Coward · · Score: 0

    I don't know how many times I've seen people blindly do something with out realize there is a math problem in front of them. Whether it's an optimization problem, risk assessment, false positives with extremely rare conditions, a game theory problem ...

    If you don't have the math back ground you will miss the problem and not even look for a solution.

  175. Problem Solving Is Why by ZahrGnosis · · Score: 1

    Parent got it right; it's about problem solving. I have dual math and cs degrees, and while most of the actual math escaped me decades ago (I couldn't solve half the diff-EQs or integrals now that I could in college), the practices and thought processes have (IMnsHO) made me a better programmer. Programming is about efficiency as much or more than it is about knowing any specific language or being able to execute a particular task. Most importantly, I think is the ability to have faith that your code is correct and complete... proofs in linear algebra and number theory were immensely helpful for that. Testing edge cases and knowing that your loops will terminate properly flex the same muscles as proofs by induction. I think of Pollard's rho more doing database programming than I did in math classes, but I'm glad someone pointed it out to me there.

    Math can also be directly applicable depending on what you're going into. Visual and game programming is full of geometry and trigonometry. Artificial Intelligence, Big Data, Data Mining all require statistics, hashing algorithms, efficient tree traversal, and all sorts of things that span the boundary between CS and Math. In the end, though, all of programming is just implementing algorithms, and all algorithms are just math problems. The two complement each other brilliantly.

  176. Opposite, IMO. by Anonymous Coward · · Score: 0

    I think that people who don't want to be well rounded should be tracked away from higher education altogether. Being well rounded is the foundation of our educational system.

    The current problem is that educational institutions have been saddled with the short-sighted demands of a labor market that prefers to externalize its training costs to prospective employees (students) and taxpayer-funded institutions.

    People who want to acquire specifically applicable skills should go to trade schools or apprenticeships, which should be expanded. The bonus is that when these people get bounced out of the labor market because their narrowly focused skills have become obsolete, there will be a training infrastructure in place to re-train them for the current market.

  177. stop worrying about the grade by PatternMismatching · · Score: 1

    You're in college to learn not necessarily get good grades! Yes sometimes you'll have courses which require agonizing effort to get a c+ but it's learning and the process of learning that are the reward not your grade. So there's dozens of fields in technology where advanced math is central... There are just as many where it is ancillary. That's not the point. You're not going to do well in any tech field if you don't enjoy learning (especially If learning the particular subject pushes you to your limit and you don't like that)

  178. Barely any by MBGMorden · · Score: 1

    As a Computer Science graduate who sucked at college math - it's largely irrelevant unless you're going into a niche field that uses it (ie, if you're writing scientific software or the like).

    CS largely boils down to Algebra and Discrete Math. You'll need a very good handle on those, but Calculus, Trig, etc? Mostly irrelevant. Though I did pretty well in high school I'll admit that college level advanced math was difficult for me to wrap my head around. My last Calculus class I had to take three times and even then still only managed low B on my third attempt. My actual CS courses though I think during my entire term in school I only made 2 B's and everything else was A's.

    Nothing CS coursework nor in my life afterwards that has required advanced math. Honestly having been graduated and programming for 10 years now I don't even remember how to even do an integral or a derivative.

    --
    "People who think they know everything are very annoying to those of us who do."-Mark Twain
  179. Yes, you need math... by Anonymous Coward · · Score: 0

    I started in the US college system taking Calc I and II. I was miserable... But I stuck with it. Then I took Physics and Calc I and II made a lot more sense! Usually it is the other way around, but I digress.

    I finished college in the UK where maths in CS isn't really pushed. CS students take a self-taught maths class in their first year and that was it. When we got to a machine learning-type course where linear algebra was king, a lot of students struggled. Usually I am a middle-of-the-class student but when we got to linear algebra I shot to the top (more or less).

    You need to decide something here, are you going to be a Computer Scientist, an App Developer, a Web Dev, or a Software Engineer? You will absolutely need math much higher than calculus for Computer Science. As someone said here, if you want to program F-22's for a salary that will make you dizzy, you will need super advanced math. If you want to do App Dev or Web Dev, you probably wont need that much advanced math. Software Engineers need math, it will make you a better programmer, trust me.

    If you want to be an IT guy, I'd recommend not doing CS, actually. See if you school offers a degree in management or IT management. Since you already have CS classes (I assume) do it as a minor. Most IT positions I've seen out there want project management experience rather than coding. I could be completely off base with this but that's my own views.

  180. Suck it up by Anonymous Coward · · Score: 0

    Knowing how to suck it up is very useful once you're out of college.

    Really.

  181. Crucial by Anonymous Coward · · Score: 0

    Computer science is advanced maths. The non-mathematical parts of a typical CS degree may be software engineering or IT, but they're not computer science.

  182. Math by Anonymous Coward · · Score: 0

    Math may seem hard to grasp, but it's really good at taking a large range of overlapping problems and distilling them to one great framework. That's very useful when it comes to addressing the overlapping client specifications that constantly change. Brute force coding and memorization can only take you so far. Math can elevate your code to a kind of art that appeals to everyone.

  183. Diff Eq is supposed to be hard by AdamHaun · · Score: 2

    It sounds like you're used to knowing everything already. Learning is not always easy. Spending three hours on a homework assignment is pretty common in a technical major. Think about how little time that really is and you'll see that it's not such a big deal. You will spend at least that long banging your head against new concepts at work, so you might as well get used to it now.

    Differential equations in particular can be hard if you're weak on algebra and calculus. IMHO, the most important thing to master for undergrad math is algebra. You need to be able to rearrange equations in your head. Once you can do that, the calculus stuff isn't very hard. Might be worth dropping the class and taking a refresher algebra course. Another option is to check out a few other textbooks from your university library (yes, they have them). A different presentation can make things much more clear. For the same reason, you might also try asking other professors for help. Try the physics department; they may be better at the intuitive side. I didn't really understand how to use integrals (as opposed to solving them) until a physics professor explained it to me.

    --
    Visit the
  184. Depends of the area of work by Anonymous Coward · · Score: 0

    Depends on the area you'll end up working, if you intend to develop web apps for a living, you probably wont need any of it. I am doing a thesis in Forward Error Correction (FEC) and using Fountain Codes, and well... I really wish I hadn't forgotten all my linear algebra... :(

  185. More than just math. by cfsops · · Score: 1

    I didn't go to college straight out of high school. I joined the military instead. After four years of that, I returned home and was ready to do college. I chose to take a degree in math because that was my worst subject in public school and I wanted to show myself that I could be successful at something that had been difficult for me to grasp. I ended up doing quite well, but the point of this to note that I, too, questioned what I was going to be able to do with a science degree in math. I posed that question to one of my professors during my junior year, to which he replied in a manner similar to a few people posting here: that the "math" isn't so important as the manner in which being successful at math makes you think and that this analytical, rigorous way of thinking was something that many occupations held in high regard. One interesting thing is that my experience was sort of the opposite of yours: I was working on a science degree in math and was told one day by my guidance counselor that the curriculum had changed and I needed to take a computer class. I was most annoyed as I couldn't see what a computer had to do with a math degree. Obviously I had to take the computer class and the rest, they say, is history; I've been programming now for more than 20 years. When I do interviews, I'm probably the one person in the universe who doesn't [usually] ask a coding question. Instead, I just talk and try to understand how a candidate thinks, how they might approach a problem, how "mathematical" they might be in their thought process. Curiosity is another very positive thing, in my opinion.

  186. Absolutely yes....but by EmperorOfCanada · · Score: 2

    I will unreservedly say that the more math I have learned the better my programming has become. I am not sure what the limits(no pun intended) are but even calculus has been useful in ML applications. Discrete is great for thinking through networks and parallel computing. Statistics and ML are great for getting interesting information out of the hoards of data that most systems can gather. Matrix math is useful for both 3D and ML. The list goes on. But I like you looked at the crazy math until my eyes bled. Then I started to find resources where someone takes some bit and simplifies it. So bit by bit I learned the nasty stuff.

    But and this is a huge but; you are completely correct that many of the origins of CS seem to be largely old math professors who repurposed themselves. The result is some shockingly pedantic math in place of pretty simple math. So often a CS textbook or paper will use some bamboozling math formula instead of shockingly simple pseudo code. Worst case scenario they could use both side by side. So out comes the sigma notation instead of some pseudo code that says bandwidth_required=sum(network1..networkN);

    I am going to go out on a limb and say that the sigma notation make the person feel smarter. I will now quote from the intro to "Calculus made easy" written around 100 years ago.:
    "The fools who write the text-books of advanced mathematics-- and they are mostly clever fools-- seldom take the trouble to show you how easy the calculations are. On the contrary, they seem to desire to impress you with their tremendous cleverness by going about it in the most difficult way."

    Now some people are going to blah blah about the conciseness of math notation. But I say bah humbug. I'll take clarity any day over conciseness. Plus you can always put the math notation in a box or something so it is not either or. Plus leave the jargon at home. It is not a network topology it is a bunch of networked computers. Plus as programmers we only use a tiny handful of variables x, y, t, i. Not theta, not epsilon, not gamma. Once you need to put a double stroke in your character you have certainly lost me a page ago. If you use := to differentiate from == then you are a putz.

    1. Re:Absolutely yes....but by bogjobber · · Score: 1

      The problem isn't with the way they teach computer science. It's absolutely correct for them to teach CS in that way. Computation is math, and if you're getting a university-level math degree it should be taught in a rigorous way.

      The problem is that there is no clear delineation between CS and software engineering in academia. Most people go through a CS program to become software engineers, and higher level computer science isn't really needed for that. I wish there was an option at more universities for a BS in software engineering, because it would be a much more useful degree for the majority of people that take CS.

    2. Re:Absolutely yes....but by EmperorOfCanada · · Score: 1

      But good engineering requires the math. I ignored the math for a long time and that was a huge mistake. I am not talking about proving P=NP kind of CS but just figuring out what to do with 60GB of data kind of CE. You need math. But why make it so hard? Is the goal of the education to figure out who can take the most torture or to guide the people into being better programmers?

      A great example was a recent Cryptography course that I took. The guy used as much math notation as was possible and would talk about things like RSA in terms of 1000 bit primes. I was puzzling over this so I dug around and found an awesome example that used 2 digit primes as the basis of the encryption. That way I could mess with the RSA algorithm using numbers that didn't cause a buffer overflow in my head. I coded up the RSA in no time and could test it against simple numbers that my eyeballs could understand in a flash. Plus if it generated crap results the numbers meant something to me so I could see the scale of my mistake and quickly puzzle it out. With 1000 bit numbers I won't see the difference if it is out by a 100 or 10000000000000000. It was then a breeze to bump my algorithm into the properly large numbers. Basically it boiled down to one way I learned and one way I didn't yet both ways were just as easy to demonstrate. Thus the guy demonstrating it was being a jerk.

    3. Re:Absolutely yes....but by bogjobber · · Score: 1

      Oh, I definitely agree that you still need math. I just think there needs to be a clear delineation between CS and SE. If you look at the way, say, mechanical engineering is structured you still take a ton of math and physics. It's just that they also teach you application at the same time. Whereas if you take a pure math program, they're going to teach you math in a more "mathy" way rather than relating it to engineering the way most engineers probably prefer.

      Just look at the difference between a textbook that teaches Calculus from a science/engineering perspective and one that teaches it by analysis. It's an entirely different course. But it makes sense to teach mathematicians analysis, because they're thinking about the math in pure symbolic terms and aren't trying to relate it directly to engineering problems.

  187. It's important. To a CS degree by LtNacho · · Score: 1

    Getting a CS degree generally requires you to do a lot of math so, yes, it is important. Things like analyzing algorithms, graphics, simulation, and pretty much anything involving AI requires a lot of advanced math. It's hard, but it can be fun and satisfying as well. And proving that you can master it (by getting a CS degree) shows employers that you can solve problems and should be able to tackle some really hard programming projects. That all being said, general business programming doesn't require a whole lot of math. You can write UIs, stick stuff in databases, and write business rules for 10 years and never do anything beyond some basic arithmetic. I've worked with a lot of people who don't have CS degrees. In fact I would say most don't have CS degrees. It might be harder to get a programming job without a CS degree, but if you work at it you'll eventually find one. After that experience pretty much trumps degree as you progress in your career. At least from what I've seen.

  188. How important is it? by Xyrus · · Score: 2

    First, differential equations isn't advanced math. Neither is Calc 2, 3, or 4. That's applied math.

    How important is it? You're asking the wrong question, and at the same time painting a less than stellar picture of yourself. Asking that question makes you sound more like a whiney kid who doesn't want to eat their peas than someone who is motivated to learn new things and improve.

    Learn as much as you can while you are in the coddled world of academia. You will be surprised at how often information you considered useless at the time will be useful. Every course you take is another set of information and skills that may come in handy down the road. For example, being able to understand differential equations will be quite useful if you're working on software dealing with simulations (whether financial or scientific). Even if you aren't implementing the core logic yourself, having a basic understanding may help you develop a user-friendly GUI for setting parameters, or even just writing some documentation. At the very least, you'll have confidence that if the need ever should arise you'll be able to quickly dig up the information you need.

    --
    ~X~
    1. Re:How important is it? by Anonymous Coward · · Score: 0

      That's fine, but often times I find out that I tend to forget things. I may learn something really well and get an A in the course. However, 2 or 3 years later, when I actually need it, I found that I had forgotten it and it was like I had never learned it at all.

  189. Applied Computer Science by Hohlraum · · Score: 1

    Many universities have applied comp sci b.s. degrees which require a minor in a related degree. They tend to leave out everything above Calc. That would be my recommendation and you might actually be more employable with that degree anyway given the minor.

  190. I have a BSc and failed calculus and re-took it by Anonymous Coward · · Score: 0

    Two things that may sound incompatible:

    1) I have not used advanced math in my 16 year career as a software developer. I may have used the principals but I have not used the actual math.
    2) I am glad I re-took the course and my only regret is I did not track down a tutor and have an even better understanding of it.

    You are going to school to obtain knowledge not just get a job.
    Give it 100% and you will have no regrets, and there will be nothing holding you back later on in life.

  191. Fear not diff eq by WOOFYGOOFY · · Score: 1

    Grok these instead

    Combinatorics, Stats and Probability
    Markov Processes
    Random Variables
    Linear Algebra

    Those are more like math and thinking and less like Empty Symbol Manipulation anyways

    then whatever else is used to solve problems you're interested in along the way

    1. Re:Fear not diff eq by ImprovOmega · · Score: 1

      I took two combinatorics classes as electives in grad school working on my CS Masters degree. I have to say that learning about set theory and permutations has had a non-obvious but very present impact on my ability to craft and understand SQL queries. One of the many cases where you never know when or why it will be useful.

  192. Forgotten more than I remember by Anonymous Coward · · Score: 0

    I guess being one of those crappy business logic programmers who does more development of apps to automate data center enviornments, I find that I forgot a hell of a lot of math I had back in my CS day. I can even crack open an old college book and say to my self "Oh yeah I remember that I once did that." But it would probably take me more than a few minutes to try to figure out half of the stuff I had to learn to pass.

  193. Programming and Math are the Same Thing by Anonymous Coward · · Score: 0

    One could argue that solving differential equations is just arithmetic, whereas math is actually more about proofs and logic. But leaving that aside for now, you are not 'good at computers' in the way you think you are if you are also not 'good at differential equations'. The two tasks are identical.

    Math is just a language. As has been mentioned, you are learning to manipulate symbols. You are learning how to create a description of a solution to a problem, or an idea, in a language you are not familiar with. 10 years from now when some newfangled programming paradigm comes out, if you're 'good at computers', you are going to be expected to do the SAME THING. Solving a hard problem by manipulating code, grasping difficult ideas, working through new concepts, sticking it out when it gets hard... there's NO difference at all.

    What you are actually 'not good at' is understanding the size of the investment required to learn something difficult. And this deficiency is going to hurt you in computers. If you are 'good at' some procedural coding language, and then the problem requires you to do functional programming or parallel programming or something radically different, do you really think you're going to 'grok' it in 3 hours? You're going to have to go through the identical process you have failed to follow in math. You have to go to the basic core ideas of the new language, the new architecture. Get three more textbooks (programming books) and talk to people (user groups). Form a study group (hacker marathon). You have do some "Hello world" stuff. You need to practice. You need to invest a ton of time.

    I'm in a Physics PhD program today, but in Freshman Calculus I almost dropped out because I thought I'd made a mistake. I thought I was 'good at math' in High School and suddenly slammed into college-level work and didn't get it right away. I thought... oh no... I can't do this after all and I almost gave up. I wish I could go back in time and tell my younger self that all I really needed to do was double-down and work harder. I needed a lot more practice before exams. I needed to do extra work where I was weak long before homework was due. When I finally did do that, things started to click, and incredible opportunities opened up for me.

    You need to improve your work ethic and stick it out. This has almost nothing to do with computers or math. It has everything to do with you.

  194. Requirements by Anonymous Coward · · Score: 0

    I'm a network engineer with 30 years of experience.

    You absolutely need lots of Algebra. There is no way to exist in the IT field without it, and you will need it in every single IT specific field. If you don't know it, you're not going to go very far in IT.

    If you are involved in CAD/CAM development or operation, you will need lots of geometry and trig. Maybe even some calculus dependiong on the specific field of work.

  195. You probably wont miss it, but... by dbaarda · · Score: 1

    If you don't do the maths you will probably will never miss it and spend your time happily programming away, perhaps even revelling in your awesome coding skilz when you solve some hardcore problem with bucketloads of code. But when some poor programmer with some maths later looks at your tangled mess they will probably say 'OMG what is this mess... this should be a simple stats problem'. Maths gives you a bunch of powerful solutions to common problems that you will otherwise waste your time obliviously re-inventing badly.

  196. From-From The-The Voice-Voice Of-Of Experience by taoboy · · Score: 1

    -Experience... (subject line wouldn't let me type the whole thing...)

    I'm now at the wane of my career, and here's how math went for me:

    Degrees:
    - B.S. CIS (in the business college, three math courses; in the advanced course, if you could identify the integral sign, you got a B. Oh, and a stats course, more on that later)
    - M.S. CS (curiously, you don't need the advanced math as a prereq to a lot of master's CS programs. Took a discrete math course, which IMHO is the only directly relevant math to the concepts that comprise CS)
    - DCS (Doctor of Computer Science, but we did the dissertation thing. No math per se, but my diss chair had me go chase the second differential as a possible test for my hypothetical correlation, but it didn't work that way. I think he just did that to be funny)

    My computer career has had a healthy dose of software development and management, and until recently my calculus deficiency wasn't a hinderance. However, statistics have been pervasive in all my jobs, either directly in the code or indirectly in testing or management. My last string of positions have been in the domain of missile defense, and this is where I had to go dig out the old texts to figure out such things as Taylor series and RK4 integration - knowing ballistic trajectories is all about this topic. And again, stats pervades.

    So, based on direct experience (three degrees, four 'math' courses, and a varied string of jobs), I'd say 'It Depends.' There are a lot of things to do out there, and I know you can make a decent career in computer science without running the undergrad math gauntlet. However, there are certain domains where it is used; if you want to go there, you need to be able to 'speak snake'. And, as much as I hate to say it, familiarity with the ways of statistics is useful in most any place, if for nothing else than to be able to tell people who put up graphs of amorphous point clouds with a line running through them who say, 'and it's evident there's good correlation' that they're full of liquid shit without the proper statistical test.

    So There.

  197. Structured Thinking by Anonymous Coward · · Score: 0

    Although you may not use the specifics of any area of advanced math, the ability to identify and classify problems and have conceptual solutions is primarily based on mathematical constructs.

  198. Never needed it! by Anonymous Coward · · Score: 0

    24+ years in the industry. I have been an IC, Lead, Architect, Manager, etc. etc. etc. No degree of any kind. Published author on programming. I have worked on factory automation, inventory management, big data, accounting applications, GUI, web. You name it I have probably worked on it. I currently work at one of the big 3 in software. The only time I needed math was understanding Big O notation for job interviews and when I am doing my own 3D game programming.

  199. Whoa, hang on, this is all wrong by Anonymous Coward · · Score: 0

    If you don't like math, then you probably are in the wrong field. If math isn't fun, and your idea of a good time isn't reading the new Dover math books that come out (I can't wait for Pinter's set theory book in September), then you're not going to be able to sustain an interest in computers over the long term.

    Having said that, which specific math you are going to need is a whole different matter. My biggest problem is forgetting math I haven't seen in years. Use it or lose it.

    Books matter a great deal. Stoll's new linear algebra book Dover just reprinted is a model of how to be unclear and obfuscated. "Applied Matrix Algebra for the Statistical Sciences" (also Dover) says the same thing in a lot more understandable way.

  200. "So, how important is it?" by Anonymous Coward · · Score: 0

    Few hundreds years ago a fool fell in love with the idea F=ma was a good idea...Now, represent F through a potential U depending on space coordinates, time derivatives operating on space coordinates to obtain acceleration leads to a Differential Equation...Wanna get to a barrel of laughs? Almost every powerful law relies on DEs, think about Schroedinger Equation, EM Waves equation and many many others...

    Think about DEs in this way: maybe they won't make you a better programmer nor technician, but they can help you out in figuring what is the best description of this very boring reality.

    Maybe, one day, they could shake up your mind, suggesting you to dodge a useless TV show, getting interested in what is implied behind the time evolution of a Density Operator...

    You will write down your n+1 equations, solve them all...and will end up with the statement that if only you were placed in a different initial point in phase space you could have passed that bloody data by reference

  201. you don't need it at all by holophrastic · · Score: 1

    the odds that you'll wind up choosing an area of CS that is actually dependent on advanced mathematics is nil; those that do find themselves in such an area do so because they already love the math.

    there are literally thousands of areas of CS, you can choose from the 90% that don't use any math at all.

    and judging by my GPS's refusal to use the elevation number, that it already shows me, to calculate my actual speed and distance using basic trig, there are virtually zero consumer products where the math matters at all.

    the only reason you need math is, as you've said, to get through the degree. so drop the math, drop the degree, and stop worrying about what people from six decades ago thought was important then. run your own business, sign your own paycheck, and do whatever the hell you want. no client has ever asked me about my CS education. It's been twenty years of running a successful business, and no one gives a damn.

    stand by your own work, guarantee your own efforts, and be responsible. no one cares about anything else.

  202. Why math? by Anonymous Coward · · Score: 0

    Originally, before Computer Science became a science ,it was part of Mathematics just like Analysis,Statistics,...etc.
    That tells you how important Math is.

  203. Differential equations? Unimportant? Advanced? by drolli · · Score: 1

    a) Doing a three hour homework on ODEs or PDEs make you in no way comptent in "advanced math".

    b) Consider the following task:

    N ressources (sockets) which can react on random events E_i (connect,disconnect,read) , with p states (wait,connected,data in buffer) each. The external events each cause a transition of the states.

    How does the system react to a sudden change in the number of events? How should you introduce timeouts? How many resouces slhoud you allocate?

    Conveniently written as a (coupled) linear stochastic differential Eq.

    Ok, but back to why you should learn it at least once: It will help you to classify problems correctly. When being asked to generate a sine wave on a minimal microcontroller, you will at least have the option of implementing the dgl (four multiplicaitons, four additions) instead of the series (more). If you give the answer: cant do it in 4 bytes of memory and 100 cycles/step - your problem. At least understand the problem (e.g. stocahstic ode) in a way that you know *there is a differential equation hidden in it and if i give it to a physicist he will not do 10^9 simulations, but sit down and cut it to a handy and understandable form*.

  204. advanced? by D1G1T · · Score: 1

    I seem to recall touching on differential equations in high school calculus. And, yes, programmers do use math to determine/understand/compare the efficiency of algorithms.

  205. Sorry, but incomprehensible without much more by Anonymous Coward · · Score: 0

    I have an MS in CS, have taken and passed Discrete Math, Introduction to Logic, and Automata & Formal Languages and the first few paragraphs of The Unprovability of Consistency (actually the "revised" version "The Logic of Provability" are already completely incomprehensible.

    (To some extent this is just a specific instance of the problem that in Mathematics there is no unified, unambiguous set of symbols. But there is more to it, the writing is far too spare and overly concise. Like most Mathematicians I suspect Boole cannot differentiate between mathematical formulas and natural human language.) [pun intended] And I like Mathematics.

    What does the empty square box mean? (I assume this is not a missing HTML character since the book cover also has the empty square box on it)

    What does the symbol for perpendicular mean here (I assume it does not mean perpendicular, but if it does, what is the meaning of perpendicular in logic?) What IS modal logic?

    Are some of the symbols from other forms of logic? Like the rightward pointing arrow. Can I assume this means Implicaton? Why are they not defined here? (By the way, I was taught that a single-lined arrow and a double-lined arrow have a subtly different meaning. Wikipedia claims they are identical, at least in logic. http://en.wikipedia.org/wiki/List_of_logic_symbols

    What is the difference between 'p' as a variable and 'A' as a variable? Sentence vs letter? Sorry, there is far too much assumed here to claim that this is a "clear" mathematical work. Or were you just trolling?

    1. Re:Sorry, but incomprehensible without much more by Garridan · · Score: 1

      tl;dr: I am a master of logic. I looked at not the book that you said was good, and only spent one minute thinking about what it said, and I didn't learn any logic. Therefore, the book I didn't look at isn't a good introduction to logic.

    2. Re:Sorry, but incomprehensible without much more by Anonymous Coward · · Score: 0

      This book defines its own notation so you don't have to guess. And it is meticulous in keeping the natural language and the symbolic logic apart.

      The square and diamond can have different meanings in different modal logical systems. In the book the system is G, where the box means: "it can be proved that".

      Yes, the meaning of letters in logic and mathematics in general can be confusing. Some letters are part of the logic ("functions", if you will), others are placeholders ("macros", by the same analogy).

      You can't read Boolos's work quickly. Every sentence may require a few minutes to sink in and you often have to go back and read the paragraph again.

  206. You're right by Anonymous Coward · · Score: 0

    "I love computers, and am very good at them."

    "glance at my direction"

    "If I had understood what I was doing"

    You're right, you don't need more advanced mathematics. What you need is a few basic English courses if you expect to get and keep a job. ...but seriously, calc and diff eq are really important if you ever want to do anything beyond web programming with your CS degree.

  207. Learn it because it's glorious, grasshopper by as.kdjrfh+sxcjvs · · Score: 1

    Conveniently, you are unlikely to learn so much that you become less employable, so you won't even suffer in the long run.

  208. Mathematics is a language by Anonymous Coward · · Score: 0

    First, mathematics is a language. Languages provide our minds patterns in which to arrange our thought sequences. For this, even if you do not write mathematical formulae in your work, and even do not consciously remember the formulae you learnt, if you have learnt to concatenate in mathematical sequences and relationships your mind will be able to concatenate in mathematical sequences and relationships, and to understand the relationships of the elements in those, which are the fundamentals of computer languages. You will be able to write your own code then, instead of simply bunging in bits you pull from libraries that will achieve what is grossly required. That is, you will be able to produce elegant, and original, instead of copied and kluge code.

    Second, when you come to the bottom line in computer-science, where the math and the transistors meet, the math is dead simple stuff (or at gross glance seems to be): It is Boolean, digit one and digit zero. You don't even need to be able to count to two. You need only be able to count one and not-one. The complexity comes from the need to do numbers and number relationship, and logic and syllogistic sequences using only those. All the way to the infinite-exponent and most advanced calculus and factoring (statistics is factoring), painting pictures and conveying ideas and thoughts. All using only one and zero,, or one and not-one. Truth to tell, learning maths and logic is easier. Then you can use a computer-language, or easier still, engage a computer, to convert your maths numbers and formulae, letters, pixels, etc. to one and zero array expressions.

  209. The goal of education by Darinbob · · Score: 1

    The goal of education is to learn! Going to school with the goal of learning as little as possible is wrong headed. Why has there been so many slashdot questions and posters in the last couple of years all wondering how to learn the minimum amount necessary?

    Learning mathematics is not necessarily a requirement for computer science, however it is a requirement for being educated! You don't need to be an expert in mathematics, but you do need to be able to work at it and exercise a flabby brain to allow thinking logically and abstractly, two important things necessary for almost all fields of study. If you can not do anything beyond long division then it is likely because you're unable to think logically and abstractly, and programming will be the wrong career choice for you.

    Calculus is BASIC mathematics. It is not advanced. Long division is arithmetic it is not even mathematics really. Without calculus you won't understand physics or chemistry. Without mathematics and physics you won't get that dream job creating the next popular video game, you won't be programming any robotics, you won't even be doing computer graphics. Chances are without mathematics you'll be stuck doing basic grunt work making web pages or doing IT help desk support for the rest of your life.

    Computer science is also not just about programming, programming is just one small part of it. Please people, stop trying to be least that you can be.

  210. Re:Do the math. Get the degree. by Anonymous Coward · · Score: 0

    I agree - you won't regret it.

    However, for a slightly different reason. If you wish to become a Software Engineer (Computer Engineer) then you have to consider the process of software development and how it is always ripe for improvement. The process of engineering the improvement of the method is a job for the applied mathematician.

    The truth is, that 99% of us in the industry are quite happily applying ourselves to the development of software ignoring the actual process. We follow established techniques such as Agile (insert more here). And, while we are sill in the beginning phase of software development (much as a witch doctor was to medicine) we can use smoke and mirrors to disguise ourselves. Eventually Computer Science will actually mature. The "fad" will be over and the the number of jobs will be reduced, positions being replaced by other automatons. The skills will be in the periphery, such as the actual science. In the Math.

  211. Do runners need strong abdominal muscles? by Anonymous Coward · · Score: 1

    Hi, I'm a track runner and I just can't seem to get into doing sit-ups.

    I want to go to the Olympics, but no one will look at me twice if I can't do 100 crunches!

    Why do I have to do these stupid sit-ups, when running needs LEGS.

    what the heck.

  212. what's in a name by epine · · Score: 1

    If you want a hard-core mathematical proof that your code fulfills certain post-conditions etc., there's a large body of knowledge about how to go about it when the problem is posed in a functional programming language. Doing it to an otherwise unconstrained piece of C code is much harder.

    If you want a hard-core mathematical proof about how your code behaves in time and space (for a value of time and space that makes your software market competitive) often a procedural representation is better.

    Look at what happened between ATM and IP networking: "Another key ATM concept involves the traffic contract." For TCP/IP over Ethernet, the "channel contract" was a reamed-out muzzle diameter.

    Two viable business models:

    * Usain Bolt with a water-resistant wristwatch
    * Arnold Schwarzenegger with a waterproof wristwatch

    One permits more formal math than the other. I'm guessing Bolt is cooling down before 'egger has finished filling in his entry form.

  213. ...nobody in the workforce is even going to... by Anonymous Coward · · Score: 0

    "However, nobody in the workforce is even going to glance at my direction without a BSc"

    Really? I graduated with a BSc degree in Comp Sci from a large and reputable university 10 years ago, have been employed on both a full-time and contractual basis ever since with dozens of clients, and have never ever once been asked if I have a college degree. If you're planning on getting into programming as a profession, you need to demonstrate proficiency as a programmer and not ownership of a college degree. There are exceptions of course (Google), but these days most companies large and small will judge you on your programming skills first.

  214. It's very simple... by Anonymous Coward · · Score: 0

    If all you want to do is to draw some buttons on a window and put some if clauses behind them, plug in wires between network devices etc., then of course mathematics is not so necessary. If you are not interested in any kind of development work but rather *using* computers, you probably never need mathematics (but then again, why are you studying computer science (practically == software/hardware development) in the first place instead of something, which takes advantage of computers?).

    However, I'm sad to say that if you ever want to do something cool for which anyone (except your mother) is going to genuinely say WOW, it will be pure math from beginning to end. Even modern user interfaces utilize e.g. physics simulation, and topics like advanced graphics, game development (and I mean modern good-looking—probably 3D, but even 2D—games), signal (e.g. graphics (including video) and sound) processing, virtual reality, machine learning, pattern recognition, computer vision, algorithms, statistics and probability, data mining, cryptography, simulation, artifical intelligence, information retrieval, language processing, not to mention regular software of many application areas (e.g. medical imaging, industrial engineering, physics, chemistry, bioinformatics, business intelligence etc. etc.), are pure math. You can be a good programmer, but of what use is that if you cannot put your skills into use for anything useful? The skills of programming are just a device for achieving a target—it's not a target itself. Your client doesn't pay you because you are able to e.g. develop software. Instead, they pay you because they expect you to deliver them something from which they in turn can get more profit.

    Of course, there are many application areas and simple applications, with which one does not need almost any math at all. You can be successful with them, but often that kind of applications are not so interesting and revarding than the more complex and abitious ones. After all, to exagerate a little, a trained monkey is able to do repetitive and mechanical routine tasks requiring almost no intelligence. In today's world, math is at the bottom of almost anything, and if one doesn't understand it, one should be prepared to get only quite simple work to do, if any. Of course that kind of jobs do not pay so well...

    Like already said, almost anyone can install and use Windows 8, office applications, Internet browsers, games and so on, maybe even do some basic web sites etc., and claim to "be good at computers". In reality, they may be "good" from the viewpoint of their mothers or more inexperienced friends, but from the viewpoint of IT industry, they just suck. Everyone can do what they claim to be good at. It's not even enough to be a very good and well-educated programmer or be able to cite your CCNAs and CCNPs like clockwork. In the field, everybody claim to be able to do that, and you are asked about "what more can you do for us so that we should hire you". If you are happy with a job related to administration of workstations in a public library or teaching senior people to use computers, then you can forget even the BSc degree. However, if you want to be a respected and well-salaried professional in the field of development, you just have to take your math (and the rest of your studies, as well) very seriously.

  215. Not All Math Created Equal... by W.+Justice+Black · · Score: 1

    I tend to agree with the OP regarding the (ir)relevance of calc/diffeq. I rarely (if ever) use any concepts from farting around with f(x) in that sense...

    BUT stats and discrete math is HUGELY important. I've gotten way more use out of my one semester of discrete than the entirety of calc.

    I for one would love to see CS students get 2-3 semesters of discrete (and preferably 2 of stats) and one semester of calc (rather than the other way 'round).

    --
    "Time flies like an arrow; fruit flies like a banana." --Groucho Marx
  216. Sort of by Anonymous Coward · · Score: 0

    I have a math degree from MIT. I work in CS.

    Math has helped me more and more as I've advanced in my career. At first, I never used it. As I became more senior, it became more and more important that someone could read/understand/challenge equations.

    Math is like the most open door. From math, you can go anywhere.

  217. Quite important actually by guruevi · · Score: 1

    For CS (Computer SCIENCE) it is quite important. You'll be crunching numbers all the time, that's what CS-people do, they make computers do very complicated math problems.

    If you're looking to do computer technician, network engineer etc. some basic math is still required but nowhere near as heavy. If you're looking to do programming, depending on the field you're trying to program for, you may need little or much math. Eg. making games and 3D graphics is very math-heavy, making websites not so much.

    CS, require it's own math curriculum, the rest should be satisfied with a high school math curriculum (sets, logic, real numbers, functions, probability, geometry, quadratic equations, integrals, ...)

    --
    Custom electronics and digital signage for your business: www.evcircuits.com
  218. Beauty of Math; Beauty of Computer Science by Cliff+Stoll · · Score: 4, Interesting

    I work in computing; a meter away is a mathematician.

    He knows real math: group theory, complex analysis, Lie algebras, topology, and, yes, differential equations. To him, math isn't about numbers ... it's about rigor, elegance, and beauty.

    No surprise that his code is rigorous, elegant, and beautiful. When he showed me how to use Cheetah to build templates in Python, he explained things with an clarity and parsimony. In his world, clumsy coding is as bad as a clunky math; a clear mathematical proof is as fascinating as a tightly written function.

    This man is the go-to guy for the 100 person business. Soft spoken and never argumentative, his advice and opinions carry weight. I'm honored to work alongside him; not a week goes by that I don't learn from him.

    1. Re:Beauty of Math; Beauty of Computer Science by Anonymous Coward · · Score: 0

      How important do you think it is to be soft spoken, nice and non-argumentative?

      I am currently pursuing PhD in Higher Maths and I just spent ten minutes talking to people. It is very frustrating because I just don't grok people to people interaction. I can sort of communicate a little bit, but I really don't grok anything beyond asking for extra sheets in written exams. But I love engineering, and I am very good at it. However, nobody among the decision makers is even going to glance at my direction if I can't talk to them out of their instant dislike for my communication skills. And to punish me for being a natural arrogant snob, I need to learn all this crap. If I understood what I was doing, maybe I wouldn't mind so much. But the double frustration of not understanding it and not understanding why the heck I need to be mildly tolerably to other nice low caliber people.

      FWIW, I believe that with my superior intellect, I will cruise along very well in the engineering world, while those smooth talking, with misleading and gentle mannerisms are going to lose out, because of their poor math skills.

    2. Re:Beauty of Math; Beauty of Computer Science by Anonymous Coward · · Score: 0

      Not to rain on your excellent comment here, but Cheetah is probably the worst template language Python has to offer and it's been effectively abandoned for years. Try Mako.

  219. Learn the basics first by Dareth · · Score: 1

    I believe I know how you feel. You may be great at many subjects but just don't get math.

    Start with the basics. Basic principles of calculus and standard derivative formulas. Memorize them. Write them out on a "Master Formula List" and memorize it.
    Write it out on a blank piece of paper as many times as it takes to get it perfect 10 times in a row.

    The funny thing is that by the time you do this, you no longer need to write it out when you take a quiz or test. You may even start to realize that cos, sin, and tan are related and there are patterns to the formulas. Most people who struggle with advanced math are just not getting the basics and foundation set in place first so their math house crumbles. Take it slow and steady and you will realize that the individual pieces are not harder than basic arithmetic. You just have to learn to do the bookkeeping.

    I forced myself to finish my Computer Science degree almost 10 years ago and have not regretted it since.

    --

    I only look human.
    My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
  220. Need: Nothing. Can use: Almost everything! by Anonymous Coward · · Score: 0

    I learned to code in primary school. To just be able to program, knowing how to count, add and subtract is pretty much all you need. But oh boy does your coding skill improve with every additional math skill you learn! I did some bioinformatics and advanced maths when I got the chance, and it changed my coding style completely.

  221. Interesting CS Requires Math by edelbrp · · Score: 1

    I'm not sure what you mean by 'grok' but it's important to know what's possible. I remember a student asking a prof: Are we really going to remember how to do this 5+ years from now when we might actually need it?? And the prof said that the point was to know that it is even possible and demonstrate, at least for a short while, that you can do it. Then later when you may need it, you will know it exists, hopefully what it was called, and have the confidence knowing you can implement it.

    So, a bad programmer might say 'it's not possible' when given a problem, a better programmer will say it's possible but we need to find/buy a library to do it, and a good programmer will be able to implement the solution themselves. (btw- I'm not saying leveraging libraries and plugins is a bad thing, it's just not *always* the best solution.)

    I've worked on a number of projects which started out seeming to be simple but ended up using some semi-advanced math. It is rather rewarding to bust out a solution to a problem that others might have failed on.

  222. Re:Bottom line? It's not that important by pongo000 · · Score: 1

    Sometimes the order in which you execute the math operations from that equation the PhD gave you makes a difference.

    I'm pretty sure the poster was talking about higher math...I don't consider order of operations "higher math." I don't consider statistics higher math either. PDEs? Someone has already derived the steps necessary to solve these. Linear algebra should be included in any decent CS degee program.

    So I stand by my assertion that CS people don't need to know higher math. I never said they didn't need math. But is the ability to solve proofs in set theory or understand properties of f(S) necessary to most CS types? I doubt it.

  223. Its Sad by uneek · · Score: 1

    Differential equations are not advanced math. If you were complaining about topology or having to prove something then that is advanced math. When I was taking a grad school test on OS ( I forgot the exact topic) it involved something about scheduling and it was much shorter and elegant to answer by using limits than having to explain the answer with lots of words.

    As a professional who is been in the software world for at least 12 years, at this point in my career I do not need that kind of math. However , understanding that kind of mathematics as well as the numerical algorithms to go with them is very useful as many fields use them. If you don't know the basic mathematics expected of an undergraduate you will be cutting yourself from many opportunities.

  224. ComputerScience!=SoftwareEngineering!=Programming by Anonymous Coward · · Score: 0

    You should figure out what you really want to do. Computer science is a very different field from either software engineering or programming, though obviously there a big overlaps.

    CS deals with the innards of computers and heavy math theories behind it. The other two mostly use the foundations built by CS to build stuff on top.

    I quite confidently believe that most programmers will rarely need math on university level. In other cases usually a quick look at a wiki page will give an adequate explanation. Most business systems are very boring things like CRUD on databases for accounting or inventory management and that sort of stuff. But these things need to be well designed, reliable and flexible, which makes it a job for software engineers. (basically programming using structured processes for the definition and implementation of the software)

    I've heard a lot of people say you need advanced maths if you want to do games. Game programming is a bit of an oddball area. Iteration is key so it is more important to test something quickly, see if it's fun, and keep changing it until it is. This requires more of an ad hoc style of development which suits programmers. Don't make the mistake of thinking these people are simpletons as they can be very smart and creative. They just solve a very different set of problems. Things like how can I make this mechanic more intuitive, or, how can I improve this portal effect?

    Then there's game-engine programmers. These guys really need to know everything there is to know about the calculus, linear algebra and computer graphics theory. But these people are few and usually only at big companies. (and probably well-paid) Apart from requiring quite a bit of math, building your own engine is a lot of work.

    Most people though, just take an off-the-shelf engine or framework and work with that. As long as you know basic euclidean vector maths and trig you can do a lot of stuff, and you'll very rarely encounter matrices. In the off chance you'll need them, you want to read up on how to use them, but you don't really need to know how they work internally as a standard library will take care of that for you.

    It's definitely useful to know all that stuff, but not essential if you just want to make a game. I recently read a paper called 'Real-time fluid dynamics for games' and while I don't understand every math concept described in there, I was still able to implement it and play with it. But if I were to dig deep into my books of Calculus and Linear algebra I might be able to understand and use it better or even improve on it.

  225. Sorry but, by Anonymous Coward · · Score: 0

    Undergrad level differential equations is not advanced math.

  226. First off, identify why are you having trouble by Phase+Shifter · · Score: 1

    "I am currently pursuing a bachelor's in CompSci and I just spent three hours working on a few differential equations for homework. It is very frustrating because I just don't grok advanced math. I can sort of understand a little bit, but I really don't grok anything beyond long division."

    Don't rush into judgement on this. There can be several reasons why you have difficulty with math.

    First, it could be as you say, but consider the alternatives:

    Second, it could be that you just need to review the background material, or even that you overlooked something early in a course. Whenever I reach the "I'm lost" stage, I try to back up to where I first became slightly confused...then back up one or two steps further.

    It could be a motivation issue. Try looking ahead to see where you're trying to go--for instance, the seemingly pointless epsilon-delta definition of limits that most calculus textbooks starts off with is only there because they intend to use the concept of limits in explaining integrals, derivatives, and infinite series. Without seeing where you're going, half of the first semester of calculus will seem like pointless bullshit.

    It can also be that the instructor isn't good at teaching large groups. First, I would try asking the instructor for help in class--it may be he needs a nudge to remind him he's skipped over something important. If that doesn't help, try contacting him outside of class--odds are good you'll get better communication when he's trying to help one or two students as opposed to 120. If that still doesn't work for you, see if another professor or even another student can explain what you're having trouble with.

  227. Cause they ran out of subjects to teach? by Anonymous Coward · · Score: 0

    Try an Information Services Degree?

    At my school Math and CS were derivatives of the same department in the early days, and still seem to work closely together.

    Math Professors have tenure too, and Masters and PHd students need to TA classes as part of their work-study kind of relationship in big research universities. Its probably easier to teach Math where there is a gradable answer (right/wrong) than it is to teach a CS class where you have to review code for correctness and grade projects where there is no one right answer and too many possible languages to code in.

    They need to keep perpetuating the Math department jobs at these schools, and the CS department can't evolve their curriculums fast enough to catch up with technology's cutting edge.

    Major Curriculums are probably very slow to evolve. Consider the political battles that go on in the department heads (trying to please the employees without causing too many waves).

    My opinion is schools teach too much theory and are further behind reality. Which class in school teaches how to do a corporate review, build and hire a team, or how to manage your financial portfolio. Those are practical skilled used in all walks of employment and life, but schools don't think those are worth teaching (the system is more about theory than practical skills).

  228. And the Answer IS by StillNeedMoreCoffee · · Score: 1

    Analysis of Algorithms. Optimization of logic

    If you want to be any more than a coder the you need some background in math to understand (and caclulate) the savings of doing alternative ways of coding. This is especially true with recursive algorithms that are not simple recursions.

    Also the effect of various data sturctures like trees and hash tables for algorithms. or even the effect of different types of indexes in DB searches or to understand that query optimizations the DB servers is showing you.

    Without it you don't have eyes, like a eletronics engineer that does not have a multimeter.

    Thats just with the programming part. Then you get into all the things you want to program, like graphics and games (physics and geometry), or statictics for simulatations or the math for economic forcasts. Each has its subset of math that is needed for the job.

    But to get back to is. If you want to be a programmer with a big P, then you need the fundementals of math that revolves around data structures and algorithme and Boolean algebra at least. If not then anyone can do your job.

  229. really depends by buddyglass · · Score: 1

    Depends on what you want to do. Most coding jobs don't utilize much more than basic discrete math. Set theory, modulo arithmetic, etc. That said, there are still plenty of projects and applications that utilize heavy duty math. Photoshop, audio editing, 3d games, etc., not to mention all manner of scientific computing. If you can be content not working on projects like that (or, possibly, not working on the "mathy" components thereof) then you'll probably find you never, ever use differential equations once you leave school.

  230. Scientists, Cogs and Car Analogies by Anonymous Coward · · Score: 0

    There exist Scientists who study computers, and do the work that ends up determining the design of computers years or decades in the future. For these Scientists, Computer Engineering is the most appropriate field of study. Their needs set the bar for what goes into (competent) computer science programs; programmers and the like simply go for that degree because it's the closest match to what they want, and all of it can be useful depending on where they go after school.

    For "information and technology workers", people who push buttons on premade programs and put together different premade parts following instructions, any college degree is likely overkill - they're like plumbers or electricians, except requiring less smarts and getting less pay. That said, IT workers need to be more competent than the average joe, especially in their field of study; they may not specifically need a college education, but the skills needed and acquired through a college education have strong overlap (and even if the degree doesn't improve your competence any, it does prove something to employers).

    "Programmers" and "Engineers" (of the Database, Network, or Systems variety) come somewhere in between. Much of their day-to-day stuff might not touch math -- but occasionally they'll come across a problem where a firm grasp of mathematical concepts and how they relate to what they're working with will significantly help - it could mean the difference between 5 minutes and 5 days, or between $0 and $10,000. The math skills help in ways that might not even recognize as problems - they give you faster ways to do things, and let you set things up right the first time so they don't bite you later.

    Unless you're completely a cog in a machine at a giant corporation, you'll probably wear a few different hats over the terms of your employment. The generic "systems administrator" title means you'll be dabbling in hundreds of areas, and often deviating from the "standard" setups you can find in walkthroughs and such online.

    A car analogy: Consider generic plug-and-play IT workers as people in the city and programmers/engineers/admins as people living in remote wilderness. Math skills are spare tires in your car. In the city, you mostly drive on paved roads, rarely have a flat, and if you do get a flat without a spare, there's many resources available to get you back on the road quickly (maybe a couple hours wait, maybe a couple hundred dollars, and good to go.

    If you live in a remote location, you'll often drive on unpaved roads (or no road at all), greatly increasing your chance of a flat - and when you do get a flat, it'll be a much bigger problem - perhaps hours of walking to get back to civilization, exposed to the elements, and then having to get back out to the vehicle. Or days of waiting for help to arrive when you can't do it yourself. While not all programmers/engineers/admins deal with math on a heavy basis, those that don't will occasionally have "flat tire" problem where the math background would help.

    A final note: Any place large enough to need an IT department, will have someone there who both has and applies significant mathematical skills in their job. It may not look like math - no exercises on paper, no calculator, and it may closer resemble material from the Logic class from the Philosophy department - but it'll be there. And those people will outrank every (nonmanager) person who doesn't have those math skills. Do you want your salary cap set at 5 digits, or 6 or 7?

  231. It depends by zmooc · · Score: 1

    You won't really need it most of the time. But when you do, you do. I've encountered multiple problems that I just couldn't solve without advanced math (whatever that may be). I've run into serious give-up-on-the-project kind of problems due to my limited math knowledge. The first is creating a proper equalizer (and some other cool stuff that requires DSP). While I could probably follow some basic instructions to get what I need, I just don't feel comfortable in this field at all and am currently going to great lengths (in the form of a big stack of books:p) now to get my complex analysis and DSP knowledge to a workable level.

    The second is properly comparing performance test results for a rather large application. This requires some serious statistics and quite a few tricks. I've given up on this and have left it to a mathematician.

    To get back to the question. Advanced Math is not that important - most software engineers hardly ever need it. But that's because they don't work on interesting stuff. All interesting stuff requires lots of cool maths. 3d engines, image and video processing, software synthesizers, mp3 players, performance testing, big indices, ray tracers and even database systems are all built around some rather cool maths. If you don't plan to ever touch such things (in other words, you're going to develop some rather boring business software like most of us do:p), you could consider dropping it. But you're probably going to be sorry every now and then.

    --
    0x or or snor perron?!
  232. Depends.. by bored · · Score: 1

    On what the real problem is, and if you can compensate for it.

    If your problem with math is that you can't handle generic problem solving, and instead try to memorize solutions then your probably screwed in programming.

    On the other hand, you don't understand math because no one told you (or you haven't tried to understand) how it works, or what its used for, then that may just be a problem with your education and probably won't impact your programming abilities.

    Or maybe your just a little slow learning it, nothing is really wrong, you just need a little more time. In that case it probably won't affect your programing abilities unless your really slow learning to program....

    I suggest that if you think about it, or talk to a bunch of people about what exactly you don't understand about math, then you will have a clearer picture of whether programming is to closely related to math too make it a career.

    PS: I myself had varied math success while in school. Some subjects like calculus I did really well in. Some subjects not so well. To this day, I wish I had taken more math in school (I stopped after first semester diffeq). It sucks to have to bang my head against some math concept for weeks before I get it enough to understand why something works enough to implement it well. Last year, I spent a few weeks studying galois theory and kicking myself for not taking abstract algebra when I was in school.

    That said, a lot of "advanced" math shows up in the strangest of places. Sometimes without sufficient background you won't even be able to identify it. So, your stuck trying to solve a problem the "hard" way.

    So, while a lot of people are saying you don't need it for specific areas in computing, if your programming for long, you will run into things more advanced than linear algebra, even if all your doing is "business programming".

  233. It's so no idiot asks "what's an integral?" by dbIII · · Score: 1

    If a programmer is given a task related to the physical world we don't want to have to babysit them through year 9 maths to bring them up to speed - or acceleration, or displacement :)

    1. Re:It's so no idiot asks "what's an integral?" by Shados · · Score: 1

      Of course, one issue is that so much of software development now is ultra specialized, or involved integration work, design, UI, and more, that you can have someone with a computer science degree for MIT, Cal tech, CMU or any other big CS-y schools, and after a few years they'll be saying "Err...I know what an integral is but....I forgot that at the same time I forgot long divisions".

      Thats why a lot of big companies have scientist departments to do the math stuff. The people taking the math stuff and making it useful won't remember how to do math in a few years. They'll be able to google it up to modify existing code, or do trivial stuff in a pinch, but....

  234. Have to know enough to "look it up" by dbIII · · Score: 2

    The problem is the person has to understand enough to know what to look up instead of starting with a blank slate. What the submitter is calling "advanced" really isn't but is instead a starting point to be able to lead into advanced topics if required.

  235. The Unreasonable Effectiveness of Mathematics by DamnStupidElf · · Score: 2

    The Universe has a structure that is, as far as we can tell, very accurately modeled by mathematical theories. It's no surprise that when solving problems that arise in the Universe mathematics is a vital tool. That said, some problems have been solved in general and if you expect to only spend your time programming specific implementations of solved problems you can almost ignore mathematics beyond familiarity with the symbols and skills necessary to translate mathematics into code, and only then if you can't just find a library someone else has written.

    But do you want to go through life taking other people's word for how and why the Universe works the way it does, oblivious of the knowledge of how to even figure out answers to questions for yourself? How do you know how long it will take your car to stop when you step on the brakes, and how far will it go before coming to a stop? Don't say "1/2 a^2 + v + d = 0"; that's just something you memorized in a physics class. Where does the power of two come from? Why the half? If you don't even know how to answer this question I don't really want you driving on the road with me, to be honest. Most people learn patterns of behaviors that allow them to survive well enough most of the time in familiar situations, but fail when presented with anything novel. The world is so much more interesting than can be properly appreciated by only responding to it with the standard learned behaviors.

    Finally, if you do expect to spend your career implementing specific instances of solved problems then also expect to be replaced by a computer programmed by someone who *does* understand mathematics sometime in the not-too-distant future.

    1. Re:The Unreasonable Effectiveness of Mathematics by iggymanz · · Score: 1

      You are very silly, that formula will not give you the stopping distance of any car. Moreover, the only way to know the stopping distance of your car would be to experiment. Clearly you are the one talking other people's word for how and why things work, except you have built a false model in your head from it.

    2. Re:The Unreasonable Effectiveness of Mathematics by Anonymous Coward · · Score: 0

      If you don't even know how to answer this question I don't really want you driving on the road with me, to be honest.

      What a douchebag. Please kill yourself, you smug asshole.

  236. Re:Why Most Computer Sciences Don't Require Adv. M by bluefoxlucid · · Score: 1

    Not the point. The point is the actual flow of a program is a mathematical concept, and higher mathematical concepts will give you a much better understanding of exactly what you're doing. I mean that on the level of "implement an HTTP session handler" or "implement an HTML reflow engine"--stuff that isn't calculus--you will benefit strongly from a strong mathematics background.

  237. Excuse me by Anonymous Coward · · Score: 0

    Excuse me, but I simply must ask: are you a software agent? I have rarely witnessed such semantically incoherent, yet syntactically correct, output in response to a subject. I can only hope you aren't being tested here for use in defeating spam email filters in the future.

    Either that, or are you on very strong dissociatives like PCP or ketamine? If so, I will leave you to analyze the waterproof wristwatch Austrian movie star metaphors for code moving through space down a reamed-out Ethernet muzzle diameter to the entry forms (as they pass through time). I mean, this is certainly hardcore lavender mathematically rigorous analogy conceptual traffic contract keys if I have ever smelled it with my retinas!

  238. Re:trig by gr8_phk · · Score: 1

    One thing that I've learned in physics and simulation software: If you're using trig functions you're doing it wrong. OK, not wrong but your code has sub-optimal performance. Vector and matrix math are almost always the way to go. But of course most the comp-sci majors I've met were not required to take a linear algebra course. To me that's one of the most useful math classes a programmer can take.

  239. Purpose of Math Courses in CS by prefec2 · · Score: 1

    The primary function of these math courses including analysis and algebra is to teach you how math works. Math is a language which allows you to describe things. Math notations are widely used in CS. Most prominent, stuff like sets, classes, relations etc. are relevant to understand ontologies and meta-models, which you have to understand to be able to develop programs today. Graphs are everywhere in CS. Meta-models, models, databases, social networks you name it. If you start software monitoring, which is also relevant in todays software maintenance, you have to deal with differential equations and many other things from analysis.

    So in shot: Yes math is important. And yes math is hard. Try to learn it like a language. When I was studying, I first understood it after momorizing many rules and lemmas etc. until it reached critical mass in my brain to be useful for anything. Nowadays I cannot work without it :-D

    1. Re:Purpose of Math Courses in CS by inaciomdrs · · Score: 1

      The [Big Quote]First[Big Quote] Computer Scientist of history (Alan Turing) was mathematician by formation, and the article writed by him [1], which defines many things about computer science, however in a subliminal way (maybe he even didn't know that was doing this), is mathematical (it's purpose is to prove a stuff about a famous mathematical problem). [1] http://classes.soe.ucsc.edu/cmps210/Winter11/Papers/turing-1936.pdf

  240. Stupid question by Anonymous Coward · · Score: 0

    YES. Statistics, game physics and graphics (physics, calculus, trig, geometry), search engines (statistics, ?), nearly anything realtime/embedded (Arduino PID controller - calculus). True, you don't need it if you want and can get a lower end programming position ... writing fiscal reports that just add and subtract, and display.

  241. Re:Bottom line? It's not that important by dbIII · · Score: 1

    Experts is too strong a word in a discussion about whether introductory calculus is necessary or not. The submitter is bitching about stuff that used to be expected to be known by the graduates of the maths-science stream of a high school.

  242. it's not that much by Anonymous Coward · · Score: 0

    I was sure I was never going to pass BSc level math, man-o-man, it was like climbing a mountain compared to hiking the hiking we did in high school. Now in my master's courses, I need to look it up now and then - and then I think, why was this so hard?

    Bottom-line, math grows on you like a little seed through the years and suddenly you see things in real-life which are so much more easy to model and comprehend because you have that knowledge. Furthermore, don't shove this off as, I will look this shit up when I need it, that assumes you already know the problem, which often is not true. Recognizing a problem is the hard part and to be able to, you need to have seen that stuff.

  243. You're doing it wrong by Anonymous Coward · · Score: 0

    If you're thinking about how important it is to you instead of how important it is to your customer (the college/uni) then you're already doing it wrong and you'll have problems if you ever graduate and get into the workforce.

  244. Depends on the job by RAMGarden · · Score: 1

    In my case I customize ESRI's ArcGIS software. The most math I've had to use so far are things like algebra and a little trig. Mostly dealing with X, Y coordinates on a map to find distances using the distance formula and direction using the slope formula. But in every case I just googled up the formulas then wrote the code that would do them. So it helped to understand the formula in order to program it into the syntax of the language we were using at the time. The companies I've worked for started with VB6 but now use mostly VB.net and C# with a hint of Python and a dash of C++. In fact I actually took the branch of the CS degree at my college that had the LEAST math classes! It was called concentration in Information Systems and the highest math was Business Calculus which is basically "Advanced Math for Suckers". (Sorry if I offended anyone that loves or uses Business Calculus daily.)

    --
    --- Nothing is secure.
  245. Boring vs interesting by Anonymous Coward · · Score: 0

    If you want to be subjugated to the data entry end of a bean counting factory, then just ignore all that yukky math. If you don't want to be stuck in the data entry end of the bean counting factory (usually the sub-basement of a large bank or corporate office), then you will need math. Routing algorithms need graph theory. Game development needs trigonometry (Maclaurin/Taylor series) and linear algebra (4x4 matrices coded as arrays) till its coming out of your ears. Likewise Financial Analysis needs you to understand eigenvectors and eigenvalues (again, Linear Algebra) ...so its not just for solving higher order differential equations. Automated Industrial control (SCADA and friends), needs logic, plus (first and second order) differential equations along with calculus. Fast Fourier Transforms (FFTs) are used for most compression algorithms including converting mp3's and doing image processing, noise filtering/cancelling, etc. Any job involving scientific computing will require the math requirements of the job (to write weather forecasting software, you need to know Navier-Stokes equations for example). Any job involving simulation software will require all the math of above plus game theory. Its not enough just to know about it though, most software (like most math problems) require efficiency (the big O notation) so that instead of coding a crappy algorithm that takes 500ms or more for a robust processor to execute, you code an efficient algorithm that takes 2ms for a low-end processor to execute, and likewise scales well.

  246. Re:I think we need more apprenticeship like system by dbIII · · Score: 1

    I disagree. Learning how to do a sort in abstract terms and how to apply it is a lot more useful than learning how to do it by rote in a single extinct version of VB. The apprenticeship is supposed to kick in with your employer showing you the way THEY do things, the education is there so you have a choice of employers that do things in different ways.
    A good way to illustrate the differences is to think about what people would get to know from sex education and then what they'd get from sex training. Very different isn't it?

  247. I really don't grok anything beyond long division by bill_mcgonigle · · Score: 1

    Get a tutor. Odds are you had a bad math teacher in school at some point that hosed you and your class*. This happened to me - the teacher taught us Algebra wrong in 7th grade. I was sunk in high school. My parents got me a tutor who untrained me in the nonsense non-algebra and got me back on the right track. I was doing college-level math by my junior year of high school. Once you get it, it's just problem solving, which is fun if you're a geek. If you fundamentally don't get it, no wonder it seems like punishment.

    You need somebody who can figure out where you're broken. Then you need to get fixed. It's, again, just problem solving, except now you're the subject of the word problem.

    * I've recently tutored some of my then classmates on Facebook. It wasn't just me.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  248. Math is important by dark404 · · Score: 1

    but the weight of its importance depends on how far you go. A B.S. in Computer Science does not expose you to much in the way of how higher math is applied in computer science - but if you go to the graduate level, you need that background. One of my criticisms of how calc and beyond is taught to CS undergrads is that the applications are not made clear at all. It wasn't until I was in grad school and started working on some machine learning / bioinformatics stuff that the application became clear. If I never see another word problem with springs again it will be too soon.

  249. Actually that's why we have scientists doing the p by dbIII · · Score: 1

    Actually that's why we have scientists doing the programming at my workplace - it's too time consuming to remind non-scientists and non-engineers of the stuff they were taught in high school and have forgotten. It's not very difficult mathematics either.

  250. Re:Actually that's why we have scientists doing th by Shados · · Score: 1

    And depending on the work to do, that may be the right way to do it. But if you're doing a advanced UI/javascript (not tiny silly web pages that anyone can do), the intersection between the people who know enough to do it, and scientists, is extremely close to zero.

    I'm not talking about people who THINK they can do both, but those that actually can. We had ONE out of slightly under a thousand engineers where I work, and he recently left to work for Google. They've been trying to replace him for a year or so (he gave a very early notice), and multi-hundred-thousand/year salary or 40-50k referal bonus isn't working.

    Its just easier to hire 2 people.

  251. DiffEq is a weed out bait and switch. by Anonymous Coward · · Score: 0

    The main goal of DiffEq is to give you a semester of the hardest damn way to solve a rather small set of problems so that you're more likely to appreciate the Laplace transform... and to get a significant number of your peers to quit and go into another curriculum.
    Look at the linear circuits courses and you'll see about 2 weeks of application of DiffEq before you shuffle off to using the Laplace Transform.

    If you skip ahead to Laplace Transform and its application in linear circuits and still don't get it... Take the discrete mathematics course and change to an Management of Information Science degree program... Make sure it includes COBOL. You won't starve, but you won't be happy either.

  252. Math teaches you how to solve problems in general by Anonymous Coward · · Score: 0

    Math is never about differential equations or real functional analysis or any of that crap. It's literally warping your brain to figure out new ways to solve problems you've never thought existed before. The process literally hurts, but you'll be a better developer for it.

  253. YES. by Anonymous Coward · · Score: 0

    Unless you want to do the most boring tasks forever - if you can get a job doing them. OK, you can develop many web pages, but real software takes math of various types. If you can't grok math, can you grok boring. Robotics, games, graphics, business - anything at other than trivial levels needs some sort of advanced math - Calculus - games, graphics, robotics, trig - same, statistics - business, marketing, advertising.

  254. Sounds Like Me by Anonymous Coward · · Score: 0

    That sounds exactly like my experience. I always flew through all my CS classes, but struggled with math. I eventually graduated and started working, where I didn't need any of that math anyway. Then I went back for my MS. I took "statistical machine learning," which was extremely hard, but it finally made math "click" for me. It gave me a way of relating math with a subject I already understood, Computer Science. I am now in a CS PhD program and the math is heavy. If you want to focus on "writing code" then you probably don't need a ton of math. But if you want to get into the really cool aspects of this profession, then yes, you do need math and it will be worth the struggle of learning it. ;)

    For what it's worth, it helped me to think of an equation in terms of a computer program. "Math/algebra/calculus/etc" is just the programming language. It amazes me how I struggled with math for years growing up and it turns out it's very similar in a lot of ways to Computer Science.

    1. Re:Sounds Like Me by Anonymous Coward · · Score: 0

      To expand a bit on my previous point, you can get by without a lot of math if you want to "just" write web apps or something. But you will have a ceiling on your career. I have worked with people like that and really that provides a good career that will pay the bills. But to do anything remotely advanced you need math and plenty of it. It just depends on your chosen path, but either way, at least being exposed to that in college will end up being beneficial to you later on.

  255. Computer science IS math by SoftwareArtist · · Score: 1

    Computer science is a field of math. If you're majoring in the field, you really ought to already know that. Computer science does not mean "writing computer programs". It does not mean "the set of skills needed to get a job in IT". If those are what you really want, you're in the wrong place. Computer science (note the word "science" in its title) is a field of math that studies the process known as "computation" from a theoretical perspective. If that isn't what you want to study, you need to find a different major.

    --
    "I'm too busy to research this and form an educated opinion, but I do have time to tell everyone my uninformed opinion."
    1. Re:Computer science IS math by gweihir · · Score: 1

      True, but it is in many cases non standard engineering math, like differential equations. I never needed them, even when doing my PhD. I needed quite a bit of advanced discrete Math though.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  256. Re:trig by drcesteffen · · Score: 1

    Back in the late 80's/ early 90's, I considered using a lookup table for some trig calculations. The first thing I did was check the computation time for a "multiply" and for a tan() calculation in a loop dividing by the number of iterations. I was supprised to find the cost of a tan() computation was only the cost of 8 multiplies. I am curious as to how you are beating this using vector math. Are you are using normalized 3 vectors and the dot and cross products to compute sine and cosine? And maybe sin(x) = sqrt( 1 - cos(x) * cos(x)). While I was using closed source code, a friend had access to the open source implementation of tan() and printed it out for me. They might have been different. I might still have it. It was an interesting technique. I eventually found a book that described it. I believe I still have the book. How much would you pay for the information? I like people who don't like math, they pay well!

  257. No, strongly disagree here by Traf-O-Data-Hater · · Score: 0

    I earned a second major in Statistics alongside my Comp Sci degree. In my 25 years of systems programming, application programming, *nix, Windows, GUI apps, data gathering, data analysis, web, comms, you name it - in a wide variety of fields I have NEVER used any of my statistics knowledge more complicated than a mean or median to this day. Not one single bit.

  258. Math is important by inaciomdrs · · Score: 1

    Computer Science, indeed, is a very wide area, so that "Software Engineering", "Information Systems" etc. are branches of it (and from "Information Technology", which covers with more enphasis some stuffs about Management e Development, more than CompSci). Because of this, it's important that you learn a little from everything, so that when you choose an specific area to following on, you have the basis knowledge necessary. Once it's Computer Science (or, reading by another way, The *Science* of Computing), it's somewhat natural the high bulk of mathematics in it, once CompSci is the initial branch of mathematics that took "created own life", investigating things that were even outside maths field. So, it really depends of what carrer you want you follow, and it's like was commented: development of games demands Hardcore Math. Scientific Software i don't need to say. AI (Artificial Inteligence) and BI (Business Inteligence) too. Even some fundamentals of networks comes from mathematics (you maybe will heard about Dijkstra's algorithm... it's used in network routing). So, that's it.

  259. Differential equations isn't "advanced" by Anonymous Coward · · Score: 0

    In any technical field, differential equations, linear algebra and calculus are fundamental topics. They are not considered "advanced". Even if you disagree, you shouldn't call them "advanced" e.g. to a prospective employer.

    To be honest, if you don't "grok anything beyond long division", you probably don't deserve a bachelors degree in anything.

  260. the only integration i ever performed in my career by tkjtkj · · Score: 1

    yeah.. the only integration in my career in comp sci and the biological sciences was to assure that non-whites had equal room at the table ... but i would not trade my calc history for aNYthing ... it nearly did influence me to change to a mathematics major .. The logic, the approaches to analytic thinking that a math background provids are not duplicated in any other area.. and isnt comp sci 'practical logic'??

    --
    "There are 11 kinds of people: those who know binary, those who don't, and those who could not care less!"
  261. Come on now by dbIII · · Score: 1

    Hiring two people doesn't work if they can't communicate. That's one reason programmers need to know slightly more mathematics than they can get from a scrape through grade in high school.
    If you think a Laplace Transform is a French car that turns into a robot then there's not much other than shell scripts, web pages and front ends to other people's software that can you do - and seriously, how much of any project is the UI?

  262. Well, no, or yes. by Anonymous Coward · · Score: 0

    Do you need to solve differential / integral equations - NO. But you need to understand what thiey are and what they do (and how to find solutions - like Taylor expansions), because these are commonly used in programming. It, of course, depends on what type of programming. But nearly every area, in order to be good and get the best jobs, you will need some specific mathematical skills - statistics, calculus, trig, geometry, probability and more. If you can't grok any of these, you should find something else to do, not software development.

    1. Re:Well, no, or yes. by Anonymous Coward · · Score: 0

      Agree.

  263. Re:I think we need more apprenticeship like system by servognome · · Score: 1

    I agree, not just at the college level, but at the high school level as well. Sometimes you need to get your hands dirty, you need a mentor there to help you when you inevitably make a mistake Not all high school kids are college bound, and it is incredibly useful for both networking and experience so they can gain meaningful employment. It also helps the employer, because if they know you'll do a good job, they will fight HR on your behalf to get you hired.

    I did an 8 month co-op with IBM and it was an incredible experience. It went beyond the 2 month summer internship doing menial work.
    I learned from an amazing mentor, and because of the length of time I was there I was able to take ownership of experiments and tools and actually contribute.
    Best of all was when the college job fair came. Everybody all dressed up waiting in line to give their resume, the recruiter scans it and puts it on a pile. But because of the length of time I spent as a co-op with tangible accomplishments, my resume didn't go on the pile. I would have conversations with recruiters about what I did, and was offered interviews on the spot. From the vantage point of the recruiter you're just going through the same routine, but anybody with experience and interesting stories will catch their attention.

    --
    D6 63 0D 70 89 81 BB 8E 7B 7C 5F 5D 54 EA AB 73
  264. No one one will look your way.... by Anonymous Coward · · Score: 1

    No one will look your way without a degree? You serious? I know plenty of developers who became professionals w/o degrees. I have an A.S. in Comp Sci myself, I can say from experience it was a complete waste of my time. I didn't learn anything I didn't learn on my own on my frist read-through of Bjarne Stroustrups "The C++ Programming Language" and after I read K&R I was way ahead of the curve.

    They did teach me the basics of Java, but even that was only done to serve some backwards style of teaching OOP. I'd wager many Comp Sci grads don't "know" a single Library; not even the STL. It's really pathetic but it's true. When I asked by my dean how I felt about the program, I said it was a waste of time, he tried to justify the lack of teaching anything useful by speaking in proverbs... "we teach students to learn how to learn".

    If you just want to get paid for writing programs, learn Java and SQL, get into Web 2.0 or writing apps for the Apple / Android stores. That's where the money is, college might teach you the basic syntax of C-like languages, but you're going to have to spend your whole life learning libraries and new systems anyway; and for being such a profound truth of Software Development (constantly learning new systems/libraries) it's funny it was never, not once mentioned to me or any other COSC grads I know.

    Fuck college.

    1. Re:No one one will look your way.... by Anonymous Coward · · Score: 0

      Oh, and by "way ahead of the curve" I mean I the curve set by Academia.

      By no means does reading K&R put you ahead of the curve set by the real world.

  265. Depends on the Mathematics and your work by gweihir · · Score: 1

    I never needed Differential Equations at all. But I am in IT security. A friend that is in robotics would have a very different story. On the other hand, I need logic, some complexity theory and some advanced algebra and even some (almost standard) geometry regularly. So it really depends.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  266. Long division is enough by Anonymous Coward · · Score: 0

    ...for a web site code monkey. You just chose the wrong major for your brain.

  267. Re:trig by gr8_phk · · Score: 1

    Back in the late 80's/ early 90's, I considered using a lookup table for some trig calculations. The first thing I did was check the computation time for a "multiply" and for a tan() calculation in a loop dividing by the number of iterations.

    There are no generalizations. You don't replace a trig function with something else, you change the approach to the entire problem. Also, if that was on Intel hardware of that era you were using the 80387 coprocessor which implemented multiplication and trig functions on the same hardware - look up CORDIC algorithms to see how trig functions can be done using shift-and-add operations. Most modern processors can multiply in a single cycle if pipelined. Vector operations on Intel or GPU can often be done in one cycle these days, so vector operations are fast. The math usually works out more elegantly using vectors as well.

    As an example, consider the sun at the origin and calculating the gravitational pull (gx,gy) on a planet at coordinates (x,y). Lots of people would use atan2(x,y) to get the angle and more math to get a radius and then compute F=G*m1*m2/(r*r) and then gx = F*cos(theta) gy=F*sin(theta) or some such - 'cause that's how they learned it in physics class. A better way to go is: T = G*m1*m2/((x*x+y*y)^1.5) where ^ is exponentiation. Then do gx = T*x and gy=T*y. The only complicated calculation here is the exponent of 1.5 which is also the same as cubing it and taking the square root. So at worst we have a square root and a few multiplies to replace all that trig. This also trivially extends to 3d by putting a z*z in there and computing the 3rd component gz=T*z whereas trig will make your brain hurt in 3d.

    Now that I wrote it down, I recall making this exact suggestion to the people working on x-pilot back in the early 90's. Then implemented gravity that way and got a rather large performance improvement on maps with lots of gravity sources. It's a specific case, other problems involving trig will have different non-trig solutions, but I hope this illustrate the type of thing I was talking about.

  268. Yes, you're going to need advanced math by russotto · · Score: 1

    This question comes up all the time. The answer is the same every time. Not because the math is useful in itself (though it often is), but because if you can't do math you can't do computer science. You may think you're good at programming, but you're just pushing code around without really understanding it. Linear algebra, statistics, number theory, calculus and differential equations; you don't have to learn them all, but if you can't seem to learn any of them, computer science probably isn't for you.

    (as for "advanced", mathematics is such a deep subject that for any field I could name, there'd be some mathematician who would claim it was elementary and real advanced math started somewhere else)

  269. Re:trig by flargleblarg · · Score: 1

    Actually, you need both. If you're doing angular acceleration, say, a ship that's firing thrusters to rotate around its center of gravity, then you have to keep the orientation of the ship as an angle (in radians, say), and also its angular velocity, and you apply its angular acceleration to that angular velocity. That part simply can't be done as pure Cartesian vectors. Then, when you fire forward thrusters, you take the angular orientation and convert that to a Cartesian vector which you use when applying the thrust force to obtain a Cartesian acceleration vector.

    So most of the time (like 99%) you can simply use Cartesian vectors for everything. But you still need trig functions for some stuff. It's inescapable.

  270. Consider doubling down on math by Phoenix+Rising · · Score: 1

    I was going to start this out by saying that some people saying DiffEq isn't "higher math" are math geeks and that they're over-emphasizing math... But then I went back and re-read the OP and, well, maybe they're still overstating the case, but they do have a point.

    If you really want to go for a career in computer programming, you will need a more solid basis in math than a good understanding of long division. You need to be able to do function based math (grouped under Algebra when I learned it) in your sleep; you will never be any good with computer code if solving simple equations and reading functions isn't second nature to you, regardless of variable names or format. And all of those proofs you did in Geometry and then probably again in Calc I and II - that's formal logic, and if you can't apply formal logic at a whim, computer programming is going to be a rather rough life for you.

    Beyond that, statistics and probability, linear algebra, matrix algebra, trig, vector math - these are things you're likely to run across sometime during your career. Maybe (probably) not every day, unless you're in a job that utilizes them heavily, but they're good to have learned at one point so you know where to start 10 years down the road when you run across that situation.

    If you really got through the math between long division and DiffEq without really understanding it, I'd recommend going back and working through anything in the above list until you do understand it - and if you have more advanced math ahead of you, include Calculus in your review. If you need a tutor for it, get one; or audit lower level classes as refreshers; or find some book that explains things in terms you understand. Also, if you don't know it already, understand your own learning style and find something that matches your style; understanding how you learn best can help immensely as you go forward.

    PS - DiffEq is a bit different; I had zero problems with math classes (aside from being bored) until I got to DiffEq. I did calculus, complex math, matrix algebra, prob&stats, and linear algebra all okay - don't know what it was about DiffEq that tripped me up. Don't feel bad that it seems difficult - it isn't simple. It's also nothing I have used in my career as a software developer.

    --
    Let us live so that when we come to die, even the undertaker will be sorry -- Mark Twain
    1. Re:Consider doubling down on math by Phoenix+Rising · · Score: 1

      The most important things to me as a programmer in a team:
      1) Can you work logically through a problem? Can you break a problem into its constituent parts and expound on the possible consequences of what you are attempting? This isn't just math, though the logic of math helps; it's brainstorming, it's thinking outside the box, it's problem analysis; it's even part report writing and presentation - being able to express the problem clearly to others. You have to know all about the subject matter, too - that's point #3 below.
      2) Can you code logically, cleanly and maintainably? If your code is one long strand of spaghetti, or reads poorly, or has too many interdependencies, then you aren't doing yourself or your co-workers any favors in the long run. Again, math is good here, but code organization is more about being able to clearly organize parts of the problem into efficient buckets - functional analysis. There are elements of writing class in here, too - even down to the use of white space.
      3) Can you learn, and quickly? You don't need to know everything as a programmer - but it really helps if you can figure it out on short notice. Being a good researcher and a fast learner is an invaluable trait in the generic programmer. Having a broad knowledge base to start with is good; first rule of computer professionals - keep learning! Of course, if you're in a specialty field, you'd better look like already knowing what you need to know for your specialty - so don't skimp on the math or physics if you'll be doing game programming, don't skimp on statistics if you'll be doing accounting and business apps.

      --
      Let us live so that when we come to die, even the undertaker will be sorry -- Mark Twain
    2. Re:Consider doubling down on math by peawormsworth · · Score: 1

      I think you forgot the most important aspect of being in a team: CAN you communicate clearly your programming ideas and understand what others mean when they are discussing their programming ideas? I have met many great programmers who could not do this. They were excellent solo programmers, but not team players because of their inability to express themselves or their ideas and/or they would not understand exactly how others were planning to code their protions. This is a team problem.

      I do not think that the computer science education system spends enough time training students on clear communication.

      Also you will need to be able to understand code you did not write. Some people can write code in their own way but have a lot of trouble using existing code from others. Finally, you will need to write code in the way the existing code is written. This means that you must be willing to lower or raise your level of coding and documentation in order to fit in to the existing group.

      One last thought... if you want to excel in an business, then you will need to work on your social skills. Most advancement in a company does not go to the best programmers, but rather the programmers that get along best in a social manner with the managers and owners of the company. The education system does not focus at all on the social requirements of succeeding in business. This is something you will need to keep in mind and learn on your own.

  271. Out of my profession by Anonymous Coward · · Score: 0

    If you can't do math then get the hell out of my profession and go get a business degree or something equally worthless.

  272. Computer Science. Computing not computers by Anonymous Coward · · Score: 0

    Simply because at the end of the day, Computer Science is NOT REALLY about "computer".. but on "computing". If you're going to say that you're a Computer Scientist and you're good at computers, but not really in computing (math), it's like you're saying your an Astronomer who is only good at telescopes but not the heavenly bodies, and stuffs.. Computer is JUST a tool, a very powerful one... but it is still JUST a tool. As in programming... it is an art, or a science, or whatever.. but it is also JUST a tool for problem solving, for building things, for improving life, etc etc etc...

    I've worked in IT field for a lot of years and I encountered a lot of great developers that didn't study CS.

    My question is, do you really like to become a Computer Scientist? or a Programmer?

    Not all programmer/developers are computer scientist... but all computer scientist know how to program or two. (However, this doesn't make "programmers" less cool than computer scientists)

    I can build a complex website that stores a lot of data from users with only little-to-nothing programming that uses mathematical equations and stuff...
    At the same time, I can create a "small" program (console-based) that only shows a rotating triangle but it surely has mathematical computations (unless I am to use a predefined function, rotate())..

    The bottom-line is, at this point in time, you decide your career path. From what I clearly observe from you, you misunderstood your bachelor course.. Let me repeat, Computer Science is NOT REALLY (or not only) about "computers"... but about "computing".

  273. If you can program, you can do math. by Anonymous Coward · · Score: 0

    Translate as much of the math into code as you can. Eventually it will make more sense. If you're a good programmer, you have it in you to be good at math.

  274. programs are algorithms by Anonymous Coward · · Score: 0

    Computer programs that do anything non-trivial are point to set mappings, which is the definition of an algorithm. Without the understanding of what can and cannot be done analyticially, and what must be done numerically (unless some very brilliant person discovers otherwise), you'll never be able to nail down those nasty little errors that are due to decimal-to-binary, binary-to-decimal, conversions, and why some calculations take so dang long. A programmer without Numerical Analysis is just a web-page developer.

  275. Depends... by Anonymous Coward · · Score: 0

    Like most things in life it depends. I feel taking the classes in order to learn how to think more logically is important. However, unless you are into modeling of some sort you are unlikely to need anything beyond the most basic calculus and linear algebra.

  276. I work for a large R&D house by Anonymous Coward · · Score: 0

    Part of my job description is interviewing and hiring software developers. I am supposed to hire programmers but I never bother. I hire mathematicians. I make a point of never asking any software related question during the job interview. Just the math. Heaps of it. Usually, after half a year, they become excellent software developers - they already know the grammar, they just need to learn the vocabulary. On several occasions I was overruled to hire a star programmer. None of them lasted.

  277. It's one of your most important classes. by tlambert · · Score: 1

    "How Important Is Advanced Math In a CS Degree?"

    Apparently, at your university, the contract you have with the CS department for your degree program has it as a required class, so it's of paramount importance to you getting your CS degree from the program in which you are enrolled.

    Should it be important? That's an entirely different question, and not one you have asked here. I will answer it anyway.

    If you plan on getting a job at a site which uses social networking, then an understanding of graph theory is a necessity. Given that the entire Internet 2.0 bubble is based on social networking being important to monetization, if you plan to get a job doing CS things, then you plan to get a job at a company which uses social networking.

    A lot of advanced math is useful to solving graph problems, not just Warshall's for computing transitive closures. For example, Differential Geometry http://en.wikipedia.org/wiki/Differential_geometry tends to be incredibly useful for reducing resource requirements related to Computability http://en.wikipedia.org/wiki/Computability_theory . Reducing data center costs for something that has scaled, or is intended to scale, as large as Facebook or Google, or even Yahoo, Twitter, LinkedIn, and so on, is the primary gate on your income vs. expense ratio = profitability.

    It's useful for other things as well, which will likely become obvious to you after you learn it well enough to apply it as a tool when faced with new problems.

  278. Khan Academy. by Sait-kun · · Score: 1

    I have an extremely terrible memory making math exceptionally hard as I can't keep numbers in my head without them going all over the place and it's not much different for remembering the equations.

    So I have been looking for ways to help me remember and I found a website that does just that:

    https://www.khanacademy.org/

    The practice video's and exercises combined with simple short term goals such as achievements for getting x answers right in a row or within a certain speed really gives me a constant focus point.

    You should give a go, it's good fun =)

  279. Assuming leads to assumptions by Anonymous Coward · · Score: 0

    There's no doubting a BSc is a great thing to have but don't assume the employers won't hire you without it. If you are creative, passionate and can represent that by creating projects that can be displayed or explained there's a good chance you will make more than someone who doesn't have that regardless of the presence of a BSc.

    I say this this from experience having been a software engineer for 18 years (now a software architect) and a business owner for 5 years. I value and look for engineers who have a tangible example of their passion for software engineering and/or computer science.

    Good luck!

  280. Not very important. by NewYork · · Score: 1

    "An ounce of action is worth a ton of theory." --Engels

  281. Look beyond your own plate by benzh · · Score: 1

    A BSc prepares you for any kind of specialization, including scientific programming and computer graphics. (Want to render fur or smoke? That's differential equations.) Bear in mind that many of your fellow students don't know yet what they will specialize in, or even don't grasp all the options. Exposing you to higher math shows you what those options can be. It's good to know what else is out there, because you will certainly get in touch with other fields through collaborations or a career change. If on the other hand you even have trouble with algebra (which I count as beyond long division), CS as a whole may not be the right thing for you.

  282. Mathematica by soren42 · · Score: 1

    Whilst studying for my BS in computer engineering 20 years ago, I struggled with the same issue. Now, after all these years, I'm poised to complete my Doctorate of Engineering in mathematics. The trick was grasping the basic concepts of advanced maths (theory, not equations and applications) and then solving them using software, either commercial or custom. One thing that was a *huge* help was Mathematica. It's damned expensive on a student's budget, but it was an amazing learning tool that, at least, helped me earn that first degree. Most tech colleges require MatLab, which is an amazing tool as well, but it's hard to match Wolfram's software. I'm not suggesting that you just key in your homework and coast â" Mathematica always provides reference material, links, and other sources that a great way to pull apart the problem and make it understandable. Lastly, if Mathematica is out of your budget, use Wolfram Alpha. This free tool has more capabilities than Mathematica did 20 years ago. There are also low cost modules for Computer Science, DiffEqs, Stats, Integration, and more. Best of luck. I hope your degree leads you into a successful career.

    --

    "Adventure? Excitement? A Jedi craves not these things."
  283. you are confusing what we want with what we have by Anonymous Coward · · Score: 0

    I have masters degree in Math. i was employed as a software developer for about 15 years.
    and i perfectly know that every my co-ed wich has been expelled from university is now paid at least ten times more than i.

  284. Engineering/Science == math by woboyle · · Score: 1

    If you want a degree in either software engineering or computer science, then the math is part of the (pardon the pun) equation! I do performance engineering (actual job title is Senior Systems Engineer) for a tier-one Fortune 50 company. Without the math (3rd order differential equations at the least), I could not do my job. No, I don't need that on a daily basis, but I DO need it from time to time, such as when developing predictive analytics algorithms to properly analyze system performance and time-to-failure (Kalman filters anyone?). FWIW, my previous job was developing risk analysis (real-time) software for the options trading industry - keeping the portfolios of traders and market makers properly balanced, using (primarily) the Black-Scholes risk algorithms - again, 3rd order differential equations. :-) So, want a position that is just something more than being a code monkey? Then math is your best friend!

    --
    Sometimes, real fast is almost as good as real-time.
    1. Re:Engineering/Science == math by peawormsworth · · Score: 1

      What a load of crap. 99.9% of computing jobs do not require 3rd order differential equations. It is a lie to pretend that extensive math is required for most computer programming jobs. Basic math with an understanding of algebra and logic is enough.

    2. Re:Engineering/Science == math by woboyle · · Score: 1

      If you read my message, this level of math is NOT required for most programming jobs (though formal logic is helpful). However, for a job as software engineer or computer scientist, then I stick with my opinions about that! Engineer/Scientist == math...

      --
      Sometimes, real fast is almost as good as real-time.
  285. I asked myself that one too by CmdrEdem · · Score: 1

    And found out that most likely you will never need this math as you already guessed. I`m not good at math either but I like to learn the syntax and principles so they are in my "toolbox" if I ever need it and when I need it I just check how it can really be done. But really: study numerical analysis and numerical calculus, this can come in handy.

    --
    This combination doesn`t exist: ETIs that know about humanity and want to see us dead. Otherwise we wouldn't exist.
  286. Just learn what you need to by peawormsworth · · Score: 1

    Computer programming requires you to know algebra. Even if you dont know that is what you know.

    In almost every case, your job will not require you to know or use everything you were forced to learn in school. So just do what you can to get through it if you feel you need a degree as a badge in order to get the job you want. Most companies value similar work experience over education. Unless the field is highly technical. Most computer science jobs are not highly specialize or technical. If you are not excellent at mathematic, then you will not want one of these jobs anyways.

    Just do what you have to in order to graduate. This means that you will go to the library and pull up all the old examinations and memorize every questions from the past. You will get the correct solution for each one and practice this over and over again. Even if you dont understand it completely, you will have the process down and you can probably pass a test without really understanding it. It doesnt matter if you know it, because generally, you wont have a job that requires it. But you will end up with a degree to show an employer that you are willing to buckle down and work hard and complete a task over multiple years.

    After saying all of this... I think a computer science degree is a waste of time. You can now learn more online then they will ever teach you in a college or university. Most employers will value work experience and practical knowledge over a degree. Most software tools are completely free to download, test, use and learn. All of this can be done for free and you can do it while working at a very easy computing job that does not ask for a degree. And you will not start life with a large debt.

  287. Just do it. by colonel+spalding · · Score: 1

    I have a BS comp sci degree. I had to take 2 semesters of calc (differentiation and integration) as well as combinatorics, finite math, operating systems and yes ENGLISH, LOGIC, Art History. A 4 year degree isn't just a trade school degree. A lot of theoretical stuff that was very helpful in figuring stuff, making it easier to learn new ideas at jobs as well as making me a less boring person to work with. That piece of paper shows an employer that you are able to dedicate yourself to a long term task.

  288. That is basic math by Anonymous Coward · · Score: 0

    That kind of algebra, calculus and probability you take in CS is the typical basic math needed for any engineering (that is what CS is academically). The only science to require truly advanced math is physics.

  289. Analogy with learning ancient Greek by Anonymous Coward · · Score: 0

    Hello,

    Personally, I always have loved maths and it has helped me a great deal over the years. However I can understand that if you don't like the subject, it is hard to learn. When I was younger I did 4 years of ancient Greek at school. It was by choice, but it was punishing. I hated learning the grammar, having to acquire vocabulary the hard way (since ancient Greek is not spoken), and having to look up almost-unreadable words in a huge dictionary. Also it felt almost totally useless. However I stuck at it and I found that that too was in fact very useful, if only to understand better much of the foundation of Western languages, not to mention access to the roots of much of our culture. For instance, beyond transcriptions of the works by Homer, the works of Plato, Aristotle and many others (indeed, mathematicians) are written in Greek. The new testament was also written in Greek and it is in fact fairly easy to read.

    So, the same for you with math. Stick at it. It will become easier, you will conquer your initial feelings and feel better and stronger for it, and you will be able to leverage this effort to a large degree.

    As Aristotle wrote: the roots of education are bitter, but the fruits are sweet.

  290. thinking skills by jcalcote · · Score: 1

    I attended a conference once several years ago where Alexander Stepanov - father of the C++ STL - spoke on math and CS. He recomended a personal indepth study of algebra and geometry, not because they were particularly related to computer science, but because the teach (resp) problem solving skills and architecture. I suspect the basic rationale behind requiring advanced math for a university degree in any field of science is to enhance your thinking muscles. Rather than fight against it because you don't understand the reasons why, try to embrace it and get more than you paid for from your education. Hire a part time tutor to help you understand the ellusive concepts. You can never learn too much in this life.

  291. It depends.... but: by Anonymous Coward · · Score: 0

    I have a few observations, here:

    First-- and I say this with the greatest of kindness-- what constitutes "advanced math," depends on your context. My parents have high school diplomas from the 1950s. For them, "advanced math," is algebra. For you, as an undergraduate in a BS program, "advanced math," are classes you can't take without permission as an undergrad. (And when I was an undergrad, I would browse the catalogs of other departments and couldn't even understand the descriptions of the 400- and 500-level math classes. In my supreme arrogance, I assumed they were bullshit.) As a graduate student, "advanced math," is whatever is so esoteric you have to beg a faculty member to teach a class in it, or suck it up and organize a class yourself. As a faculty member, it's whatever was in last month's journals.

    Second, what math exactly you might need depends a great deal on what you end up doing. But-- and this is critically important-- mathematics is a tool for computer science, and vice-versa. What you can do as a computer programmer is in many ways limited by how much, and which mathematics you know. Yes, to a degree, if someone else has figured it out, put it in a good software package, and made it available, then anyone can use it. This is the great advance of computers over "pure" mathematics. But, there is more to "being good at computers," than re-using other peoples' software and library packages. The idea is to make new software, which in a very real sense is an exercise in mathematics. (For most of us, myself included, the Curry-Howard Correspondence qualifies as advanced mathematics....)

    Third, there simply is no branch of mathematics that cannot be applied to computer science. Even branches like number theory, which was once famously touted as being "pure" and "application-free" mathematics is at the heart of modern cryptography. Do you *need* advanced mathematics? Some, I would claim, actually are essential-- some set theory, some discrete math, some graph theory, so that you can understand basic concepts in modern algorithms. Beyond that, if all you need to do is maintain what other people implemented, and implement at someone else's direction, you probably don't *need* much. Even there, though, the more advanced math you have, the better you will be able to truly understand the algorithms, to evaluate them, adapt them, and extend them. But if you have visions of working on any of the "cool" stuff-- AI, robotics, image recognition, advanced social networking stuff, real-time *anything*, video game development, virtual/augmented reality, medical applications, engineering applications, and a dozen fields that don't interest me that much but are still the current hotness-- then, yes, you will need some math.

    One good way to see that I'm not blowing this out of my ass is the following: Go to stackoverflow.com and watch tags like "math" and "computer science," and observe two things: Observe the sheer number of questions there are on a daily basis asking about this stuff, either professionally or for hobbies, and observe how often there is really no way around the issue other than to truly understand the math they're asking about. Sure, sometimes someone will solve your problem, but you can't make a living off stackoverflow.com answers.

  292. CS degrees prepare you to be computer scientists.. by Shirley+Marquez · · Score: 1

    Theoretical computer science is very math heavy. Stuff like studying what is computable and what is not, the order of computation of algorithms, proving whether programs are correct, and so forth. These things are what being a computer science academic is about, and that's why most CS degrees are math-heavy.

    The work that the majority of software developers do in the real world does not use much math. (As other commenters have pointed out, there are exceptions; aside from scientific programming, such fields as data mining and financial analysis require math.) There are a few schools that offer computer engineering degrees (rather than computer science) that focus on preparing you for real-world work. Community colleges and continuing education programs also offer many classes focused on the practical aspects of software.

  293. What I use 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. Some of Excel's probability functions have an unnecessarily limited domain. I had to substitute alternative versions in VBA that added and subtracted the logs of the components and then exponentiated to return the results.

    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.

    Some people are willing to zero in on an optimum of something via successive approximation, but when a function is readily differentiable and that is easy to solve for a zero, isn't it embarrassing?

    I have created and navigated through a four dimensional array A[i,j,k,l] only once, to deal with the consequences of combining four independent discrete probability distributions of requirements for a type of resource.

  294. Use laplace transformation by Anonymous Coward · · Score: 0

    Differential equations can be intimidating to solve directly. The math is more understandable when aplying laplace transformation first. Then again in a discrete system the equations are difference equations and they're much easier to grok as well.

  295. computer science requires math! by mladams · · Score: 1

    if you want to work with computers but not be a computer scientist, maybe you should pursue a degree in IT. Western Governor's University offers one and there are many being offered in various universities. CS is exactly that...science and it requires math. With a CS degree, you should be able to do some Assembler programming, and you should be able to program simulations (math intensive). If you want to go into any kind of cyber forensics, math will be important. You know what...even being a business analyst requires the use of math, so I suggest learning it. You mentioned differential equations, which aren't truly advanced math. They are important in science, engineering and economics. Just stick with it and in the end, my suspicion is it will be worth the effort.

  296. important or not by Anonymous Coward · · Score: 0

    The only math I found useful on compscience was linear algebra and propositional calculus. That is easy to understand if you understand logic, any other maths would be useless imo.

  297. Re:trig by drstevep · · Score: 1

    Yeah, I anayzed the CORDICS. And the source implementation of atan2, etc. And optimized for cos = 1-sqrt(sin). (By the way, sqrt is expensive, too). And looked at integer approximations.

    The key was I ONLY NEEDED ACCURACY WITHIN 5%!!!!! As others have pointed out, understanding the problem speeds things along nicely. Reviewing the source code showed that the lib calls used hardware doubles. Cycle-expensive. Modern processors, FP and INT are pretty close when compared to trig functions. And only needing very low precision meant the taylor expansions were around two mults and an add. Three and two for some of the more expensive ops, but the trig ran more expensive there as well.

    Side note: Going to int was considered as well, but adding in the renormalizations added time, too. And I usually avoid div when I can.

    Side note: The power of 1.5 can be done as a cube and a square root (sqrt(x*x*x)). It is cheaper to do x^1.5 as x*sqrt(x), saving a couple of mults...

  298. Don't be an idiot (like I was) - max-out on math! by Money+for+Nothin' · · Score: 1

    Early 30s, undereducated, curmudgeonly, senior software developer here.

    Not only is math my weakest area, but that weakness was probably partly due to my self-defeating and self-fulfilling belief that I didn't *need* much math, so I got my CS degree from a shitty university with just through Calc 2 and a couple non-calculus-based stats classes. No linear algebra, no dynamics, no quantum-anything, no Fourier analysis, no algebraic topology, no number theory, no discrete math, etc..

    And so I've spent the last decade writing stupid CRUD-and-forms apps. It's boring shit that only pays high-5-figures (in my top-3-by-population U.S. city as I work in university research, though I am repeatedly sought by some of the biggest names among tech employers. But I choose my current employer for the work-life balance).

    But to go anywhere more-interesting -- say, working on self-driving cars, or data-mining stocks or health data, or building robots -- I need more math. Shit.

    I have taught myself some linear algebra from a LA book, at least, as well as learned some slightly less-basic stats (e.g. Markov models) and taken a couple graduate-level CS courses in AI and ML. But it's definitely not enough to break-free of my self-imposed intellectual chains.

    So, get as much math as you can -- not because you'll definitely use it (maybe, maybe not), not because it's fun (but if it is for you, great; it is for me, when I understand it), and not because it's important for its own sake (by definition, anything that isn't eventually useful is useless), but because it gives you FLEXIBILITY later in life. And you have no way of knowing, a priori, whether you will need that flexibility.

    I'm not original in this thinking. Learning more math is what Nassim Taleb would consider an example of "robustification" -- becoming robust against unknown undesirable future "bad" events or scenarios.

    My strong advice: Don't be so damned efficient - or arrogant/overconfident - in your learning that you fail to robustify yourself against a future you that is smarter and wiser than the current you.

  299. induction by sribe · · Score: 1

    Every single function you have ever written, or will write, is an inductive proof. To be good, you must understand induction. Some people come by this through their own intuition, and can be good without the formal training. The rest need to have it hammered in with math problem sets.

    And, btw, differential equations does not qualify as "higher match" in the university context :-(

    In other words, the Calc and Diff EQ are not directly relevant to writing code. But there's more math coming which will be...

  300. The problem is application not what they teach by shaitand · · Score: 1

    Universities are great for covering material but they are lousy at teaching you how to apply it. There are no shortage of students who get excellent marks and rip up maths like they are nothing but can't recognize and resolve daily real world challenges that arise where those maths can solve the problems. The same is true of most other material.

    With nothing more than simple algebra, high school chemistry, basic physics, and a bit of simple electrical theory you can dazzle and impress even people with technical degrees with your mastery of the world around you.

  301. Not necessary, but are you /that good/ by countach44 · · Score: 1

    I have worked at some places that hired folks with only a high school diploma, if that. These were some of the smartest people I've ever known and they were definitely good enough to make it without the diploma. If you are truly amazing at what you do then any employer would be happy to have you. You just have to demonstrate it.

    That being said, it is more than worth it to take an honest look at yourself. Are you really that good, and if so, would it come across to a stranger? As many people have pointed out, the degree is not strictly about what you learn, it's a chance for you to prove what you are capable of. Also, most of the folks I'm talking about started doing this stuff before formal tranining was as pervasive as it is now.

  302. Re:trig by gr8_phk · · Score: 1

    Side note: The power of 1.5 can be done as a cube and a square root (sqrt(x*x*x)). It is cheaper to do x^1.5 as x*sqrt(x), saving a couple of mults...

    Nice. Hey, but since we end up dividing one could do the cube and then a reciprocal square root ;-) So many options.....

  303. Re:trig by Alioth · · Score: 1

    But is vector and matrix maths "advanced"? I'd argue not - here, we do that for our GCSEs (exams taken at 16 years old).

  304. Re:trig by drcesteffen · · Score: 1

    Information for information works as well as money. Thanks for the iterative CORDIC algorithm information and clarifying reformulating the problem to not use trig was an option. I was using an Intel 386 processor, and I may have purchased a coprocessor, but I don't recall for sure. If I did, my measurement may be of the coprocessor time rather than the algorithm. I am also not sure if I compiled with coprocessor support or not. Thanks for pointing out my possible error. The method in the tan() implementation was to use Chebyshev polynomials (See http://en.wikipedia.org/wiki/Chebyshev_polynomials#Trigonometric_definition) to make the Taylor's series converge faster (See http://en.wikipedia.org/wiki/Approximation_theory). It required some rescaling as well. First, find the Taylor's series of the tan(x) function to the number of terms needed and then choose the Chebyshev polynomials T_i(x) with values smaller than the approximation accuracy you need. Use the largest T_i(x) first since T_(n+1)(x) T_n(x).. Solve for the highest power of "x" and use it to eliminate the power of "x" in the Taylors series. You may have to add up the errors of each Chebyshev polynomial you use. For instance, T_4(x) = 8x^4 -8x^2 + 1 so x^4 = (1/8) * (T_4(x) + 8 x^2 - 1). Use x^4 = 8 x^2 - 1/8 to eliminate x^4. This reduces the number of multiplies and additions needed for the evaluation of the Taylors series to a certain approximation. I did also see a case where someone used fractional powers of "x" to possibly reduce the complexity still further. I am recalling this from memory so a I may have got a few details wrong. One of the 3 books that mentioned this method was a Math book by Korn and Korn. There is a Dover edition.

  305. Re:trig by drcesteffen · · Score: 1

    If you have not tried it, try to inline your simple functions. The cost may be your function call overhead. I am assuming you are using C or C++. Also, it may help to look at my post on the same level as this one.

  306. Define advanced math by Anonymous Coward · · Score: 0

    I would argue that Differential Equations are not advanced math as they are taught during the initial Calculus sequence(freshman level classes) or right after(at best sophomore level math).

    Whatever math class in your school that teaches sets, functions, relations, counting theory, cardinality, groups, writing proofs etc(the name of the class usually has the term transition or fundamentals in it) should be considered your first advanced math class. Everything before it(algebra, trig, calculus, diff eq, linear algebra) are all elementary mathematics.

    Yes, advanced math is critical because computer science is a mathematical discipline.