Slashdot Mirror


Math Skills For Programmers — Necessary Or Not?

An anonymous reader writes "Currently, the nature of most programming work is such that you don't really need math skills to get by or even to do well; after all, linear algebra is no help when building database-driven websites. However, Skorks contends that if you want to do truly interesting work in the software development field, math skills are essential, and furthermore will become increasingly important as we are forced to work with ever larger data sets (making math-intensive algorithm analysis skills a priority)."

86 of 609 comments (clear)

  1. Given two programmers by Anonymous Coward · · Score: 5, Insightful

    The one with more math is the one you want.

    1. Re:Given two programmers by Fluffeh · · Score: 5, Insightful

      I did the highest level of maths in my Australian higher school certificate, but didn't really do much in the way of physics at school or Uni. Even with what I am programming in my spare time (a space based build/conquer/explore type game) I am finding that I have to resort to buying coffee for friends that DID do physics and higher levels of maths at Uni to get some of the formulas I need to work out the things here. Also, I work with numbers ALL day pretty much at work (Senior Performance Analyst for a multinational) - so I ain't exactly derpa derpa derpa when it comes to numbers.

      Can I google and find the formulas? Sure, yeah, but do I have the level of understanding with all of Kelper's Laws and bits to change them to what I want for my game? Nope.

      Anyone who says that maths isn't needed for a programmer is utterly kidding themselves - or working at the low end of the food chain.

      --
      Moved to http://soylentnews.org/. You are invited to join us too!
    2. Re:Given two programmers by Thanshin · · Score: 4, Funny

      do I have the level of understanding with all of Kelper's Laws and bits to change them to what I want for my game? Nope.

      You needed to change that bit for your game?

    3. Re:Given two programmers by ghostdoc · · Score: 5, Insightful

      Actually the one with better people skills is the one you want.

      Maths is great for some coding problems, I'm not saying it isn't, but you rarely bump into a commercial coding problem that requires any degree of serious maths. I've been commercial coding for nearly 20 years, and I've hit a maths problem 3 times (and the last two were solved by a half-day of Googling).

      But you will bump into a people problem in commercial coding. Every. Single. Day. Knowing how to cope with those is massively more important (and Google can't help you with them).

      But the article wasn't really talking about this. The article was talking about becoming a Great Programmer.
      To become a Great Programmer, don't spend your days coding CRUD websites. You're never going to build/discover something amazing while doing commercial coding.

      --
      Business/App ideas are like arseholes: everyone's got one, they're mostly shit, but very rarely they contain a diamond
    4. Re:Given two programmers by lgw · · Score: 4, Funny

      There's more to commercial coding than CRUD work, young Skywalker. This kernel API documentation was your father's, but now I pass it on to you.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    5. Re:Given two programmers by Anonymous Coward · · Score: 4, Funny

      Nooooooo!

    6. Re:Given two programmers by smallfries · · Score: 5, Informative

      I'd go further than that - most chunks of maths are things that are absolutely essential for some area of programming. You may not need to know everything all of the time, but for any particular task you will need to know some of this (non-exhaustive) list :

      Statistics - useful just about everywhere, but in particular if you have to do any kind of data analysis in your work. Knowing particular distributions and how to compute the properties of them is essential.

      Probability - if you use any kind of randomness in your work this is essential and in quite a few places where you don't deliberately use randomness but you are using non-determinism to model lack of knowledge i.e packing and filling of sparse data-structures.

      Algebra - the daddy. Knowing a simple formal language that lets you rearrange expressions is an essential first step towards understanding a programming language. The more you learn the more it will help. If you head down to the Category Theory end of the pool then Monads and Arrows come in useful if you swim away from imperative languages and find something more interesting.

      Logic - the other foundation. Learning to apply logic is relevant in any area of programming as it is an elementary part of programming. A deeper understanding of propositional and predicate logics is essential to do any work in compilers and will aid your understanding of control and data-flow in any language that you work in.

      Linear Algebra - anything that touches the "real world" requires a bit of LA, as the parent mentioned physics, 3D graphics and I would add Vision to that list.

      Set Theory - these are your basic building blocks, use them well. Whether it is building the right data-structure or using a database this is the foundation that you need to understand.

      Graph Theory - some people never need anything more complex than a relational database, but some people only care about the relations. If you want to model any large network (the internet, or social interactions, economics), or perhaps programs within a compiler, or just the relationships between discrete objects then you will either learn some Graph Theory first, or rediscover it yourself the hard way.

      Combinatorics - counting is fun! Counting (and enumerating in the programmer's sense) complex objects is basic problem that crops up in almost every area. For people without some grounding in combinatorics it is the kind of question that will get kicked up to the "office guru".

      Now, if only maths graduates could program their way out of a wet cardboard box, then we could truly start designing giant flame breathing killer robots.

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    7. Re:Given two programmers by MrNaz · · Score: 5, Insightful

      Totally disagree. It has been found that the universe reflects math, and much discovery in the field of physics is driven by a previous understanding of mathematical principles.

      Furthermore, there are extremely numerous cases where math skills come in handy for totally unexpected applications. For example, I learned about statistical concepts (standard deviation, interquartile ranges, median, mode, mean, etc) long before I had any application that actually meant anything in my life. In the 11 years since high school, I've lost count of the number of times that that has been useful. From analyzing web statistics to finding patterns in sales in my shop, I've used these skills to great effect. This is even more the case with trigonometry.

      Math does not have to be limited by immediate application of the principles being taught, and doing so results in an unnecessarily constrained syllabus that denies students skills that they may find useful later in life. Mathematics' usefulness just appears in front of you as you go through life encountering problems, assuming you have the skills.

      --
      I hate printers.
    8. Re:Given two programmers by HungryHobo · · Score: 5, Insightful

      Programming as a skill in itself is totally separate from most of those .

      But to be a good programmer you don't just have to be able to write good code- you have to be able to write good code which does useful things and unless you have a decent understanding of a few of the above you're going to be missing a number of very useful and powerful tools.

    9. Re:Given two programmers by jawtheshark · · Score: 5, Insightful

      But IMO math should be physics driven.

      No, absolutely not... Physics uses Math: Physics without Math is unthinkable. Math without Physics is absolutely possible. There was pretty much maths before physics. The old Greeks were more Mathematicians than Physicists.

      There is little need for calculatign stuff you don't know what it's your calculating.

      I present to you Complex Numbers. For all intents and purposes we don't know what we're calculating *but* they are used in all kinds of engineering to find actual useful results. (Scroll down to the Applications part). Understand that Complex Numbers were first, then came the applications.

      I am by no means a Mathematician and I wasn't a big fan of it in school, but loved physics and excelled in it. In a way, I was like you, but I understand that Maths is used in Physics but not limited to Physics.

      Finally: Obligatory XKCD Link. (Of course, if you feel bitter about this comment, read the mouse-over text)

      --
      Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    10. Re:Given two programmers by Opportunist · · Score: 5, Informative

      I dare to disagree. Programming is basically putting algorithms into a form a computer can understand. Nothing more. And where do these algos come from?

      It baffles me to no end every time I see "programmers" apply who consider math as some sort of secondary skill. It's not. It is the primary skill for a good programmer. I do not need someone who can "translate" my algorithm into code. I need someone who can take my problem and develop an algo for it. Coding it is the most trivial part of the solution.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    11. Re:Given two programmers by outsider007 · · Score: 5, Funny

      My people skills would give your math skills a wedgie.

      --
      If you mod me down the terrorists will have won
    12. Re:Given two programmers by vanderbosch · · Score: 3, Interesting

      Those are all things I did as a CS undergrad, but there was also huge importance put on proofs. Everyone is talking about writing good code doing useful things quickly, but (and this is especially important in real time applications, such as autopilot on planes), if you can't prove that the code you have written is going to do what you want 100% of the time or its not 100% accurate, then really what is its worth. Maths is vital (ok not if your connecting up a website, although it does have applications in scaling and databases) and should be being used in the design phase even before the programming starts, that way people might be able to cut out buggy crappy software. I'm not sure how many people on my course got to grips with it, not many I think as most of then changed over to software engineering in our final year. I know I never did and I regret it.

    13. Re:Given two programmers by ByOhTek · · Score: 2, Insightful

      I'm guessing he meant that you understand the physics conceptually first, and then learn the math that represents it, that way you have a motivation for learning the math and it is more interesting.

      I'd tend to agree with that. Most physics can be understood conceptually without the math, but when you understand the math you can move from qualitative descriptions/predictions to quantitative.

      --
      Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    14. Re:Given two programmers by NekSnappa · · Score: 2, Insightful
      Come on now. This is /. everything must be stated in absolutes.

      As in, "My opinion is absolutely right, and yours is absolutely wrong"

      --
      I want to shoot the messenger!
    15. Re:Given two programmers by smpoole7 · · Score: 4, Interesting

      I dare to disagree. Programming is basically putting algorithms into a form a computer can understand. Nothing more. And where do these algos come from?

      It baffles me to no end every time I see "programmers" apply who consider math as some sort of secondary skill. It's not. It is the primary skill for a good programmer.

      .

      Absolutely. And an old dog like me can even provide a classic example: older OS's like DOS and CPM had to cram a lot of functionality into a relatively small amount of memory. They also had to perform decently on small, slow (by today's standards) processors. The approach that they used was the vector table.

      Simply put, the functions were numbered in order: get OS version was typically the first (function 0), and successive numbers were for all of the other important functions: open file, write file, get system time, and so on.

      Now: can you imagine how inefficient that would be if the original programmer had used a "switch" statement (or the assembly equivalent, with a bunch of "compare and jumps")? Instead, the function number was left shifted (equivalent to multiplying by a factor of two), then used to find an index in a vector table that contained the addresses of all the functions. Neat, compact and lightning-fast.

      This technique is still used today in small embedded processors that suffer from similar low speed and limited memory problems. I used it myself on a small controller in a contract job back in the 1990's. It allowed me to cram everything (read keyboard, activate relays, check temperatures, and more ... even including a quick and dirty "config" option ... in a PIC micro with 2048 bytes of memory. :)

      I have never met a really good, really world-changing programmer who wasn't also good at math. Not necessarily with high-end math, but just good at the fundamentals of algebra, and with the ability to "think" in numerical calculations and offsets.

      --
      Cogito, igitur comedam pizza.
    16. Re:Given two programmers by juasko · · Score: 2

      Einstein did not find out what he found out by calculatign, first he understood the physics behind it after eh calculated for us the formula E=MC^2

    17. Re:Given two programmers by Aceticon · · Score: 2, Insightful

      As selection criteria, Professional Experience/Proven Skill pretty much trump everything else.

      (Think about it, who would you rather have, the guy with 10 years Software Engineering experience in the field or the one just fresh out of university with a Maths Doctorate)

      After that you'll go for people which can work well in a team.

      Maths is a nice to have, but except for very specific domains (such as Quants and other positions where you're creating Algorithm engines), it will never outweight Experience and Teamwork skills.

      Most Sofware Engineering work out there is Algorithm-lite and instead is mostly based around Integration, User Interfaces and Workflow.

      That said, Maths is usefull in IT, some times quite unexpectedly. Having a strong Maths foundation does help a lot in understanding many things, especially at the highest levels of Software Engineering (Software Design and Architecture).

    18. Re:Given two programmers by BrokenHalo · · Score: 2, Insightful

      A physics professor at my university said "Maths is an auxiliary science to physics."

      Interesting. I had a physics professor who insisted that physics is mathematics. Given that Stephen Hawking was Lucasian Professor of Mathematics at Cambridge for some 30 years, he might have had a point.

    19. Re:Given two programmers by Anonymous Coward · · Score: 2, Funny

      You can stick with your opinions. I will stick with the facts.

    20. Re:Given two programmers by SWPadnos · · Score: 4, Funny

      Now that's funny.

      I had a professor who said it like this:

      Math is the only pure science
      Physics is chunky math
      Chemistry is wet physics
      Biology is gooey chemistry

      (or something like that)

      --
      - The Sigless Wonder
    21. Re:Given two programmers by RulerOf · · Score: 3, Insightful

      Math does not have to be limited by immediate application of the principles being taught, and doing so results in an unnecessarily constrained syllabus that denies students skills that they may find useful later in life.

      I agree. I wish it was easier or perhaps more common to teach the ability to apply more advanced mathematics to a situation when possible. I remember going through school you always heard the line, "We're never going to use this anyway," when referring to math anywhere above algebra, and I have to say that I generally agreed with it. There have been some advanced mathematical skills that I've used since leaving school, but they've all been applied inside of IT or programming, so perhaps I'm a bad example.

      My personal largest problem, though, has to do with literacy. Though I'm quite skilled with language, excessive comma usage notwithstanding, I find that when trying to read about advanced math or physics principles on Wikipedia for example, I'll see a theorem written using symbols and functions that I know were covered in the math classes I had in high school but I can't look at those same symbols and functions and turn them into words that accurately explain or describe the principle I'm reading. Perhaps I'm alone in that situation, but attempting to read advanced theorems and math does give me insight into what text must look like to illiterate people who still know their ABC's.

      --
      Boot Windows, Linux, and ESX over the network for free.
    22. Re:Given two programmers by pnewhook · · Score: 2, Informative

      Physics *IS* math. However Math also includes algorithms and concepts that have no physical basis, or at least none discovered yet.

      --
      Tesla was a genius. Edison however was a overrated hack who liked to torture puppies.
    23. Re:Given two programmers by LateArthurDent · · Score: 2, Interesting

      Einstein did not find out what he found out by calculatign[sic], first he understood the physics behind it after eh calculated for us the formula E=MC^2

      Man, you have no idea what you're talking about. Einstein was having severe problems with General Relativity until his mathematician friend, Mercel Grossman, looked at what he was doing and pointed out, "hey, you need to describe this using these things called tensors.": look here

      Before that, Hermann Minkowski, a mathematician, had looked at Einstein's Special Relativity and thought, "hey...if we describe these things in four dimensions, these equations become really elegant." Yes, Minkowski space was derived from the physics, but the math dealing with higher dimensions than just three was around long before.

    24. Re:Given two programmers by BattleApple · · Score: 2, Funny

      :( Sincerely, Paul Kinko

    25. Re:Given two programmers by computational+super · · Score: 2, Funny
      if you can't prove that the code you have written is going to do what you want 100% of the time or its not 100% accurate

      Bah! If it works on my machine, my work is done.

      --
      Proud neuron in the Slashdot hivemind since 2002.
    26. Re:Given two programmers by computational+super · · Score: 2, Funny
      The three best programmers I know, who came up with incredibly clever algorithms and got large projects done in amazing ways were all high school dropouts.

      So anecdotally then, should we assume that the best programmers would be those who didn't even make it to high school?

      Susie: "Yeah, that's it. You're too smart for the class."

      Calvin: "Believe it, lady! You know how Einstein got bad grades when he was a kid? Well, mine are even worse!"

      --
      Proud neuron in the Slashdot hivemind since 2002.
    27. Re:Given two programmers by MrNaz · · Score: 2, Insightful

      Yea, but when confronted by a bag of nails, trying to use a screwdriver is stupid.

      --
      I hate printers.
    28. Re:Given two programmers by PsiCTO · · Score: 2, Interesting
      Riiiiight...

      I have a hammer, and wrenches, and screwdrivers, and many other tools in my shop. I have over 100 books on mathematics and many more on applied mathematics (physics, engineering, comp sci, etc.).

      I have TOOLS.

      Making an analogy between Mathematics and a hammer is like saying I have only hammers in my shop.

      When you have only one analogy in your life, all like looks like your analogy :-)

    29. Re:Given two programmers by DMUTPeregrine · · Score: 3, Insightful

      Proofs are somewhat overrated: you CAN prove that code matches a formal specification, but you can't prove that the specification is correct.
      “Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth
      You're right about the maths being important though.

      --
      Not a sentence!
    30. Re:Given two programmers by Blakey+Rat · · Score: 2, Interesting

      I think people are looking at the problem wrong.

      Programming is programming; it's a discipline independent of anything else. It involves logic, but not math. (Unless you include logic in math, in which case the answer to this question is "duh" and there's no point in having this discussion.)

      If you're writing a program in a domain where math is important, for example calculating spaceship orbits or rendering 3D graphics, then math is important. This is also kind of a duh.

      But here's the fun part: if you're writing a program in a domain where accounting is important, then the principles of accounting are far more important than anything else. If you're writing a program to run a coffeemaker, knowledge of making espresso is more important than knowledge of math. If you're writing a front-end to a database, then you need to know the principles of good GUI design much more-so than math.

      Math isn't something fundamental to computer programming, it's simply a problem domain like any other. You can write a program to do accounting, you can write a program to schedule meetings, you can write a program to make coffee-- each of those problem domains are perfectly valid, and yet don't include anything like linear algebra in them.

      Last time we had a discussion like this, I mentioned that colleges would better serve their students by teaching them GAAP (Generally Accepted Accounting Principles) rather than advanced math, because the number of graduates working with money is an order of magnitude higher than the number working with, say, calculating orbits. I stand by that.

  2. Absolutely by deisama · · Score: 5, Insightful

    Math KNOWLEDGE may be debatable, but Math skills are essential.
    If you don't have the ability to break up and solve mathmatical formulas, how do you expect to be able to solve complex programming tasks?

    Plus linear algrebra is awesome. And everytime I do anything even remotely 2d or 3d related, I always wish I had paid more attention in Geometry.

    But more than anything, its good to know that there's an equation for that. Even if you don't remember what it is, or how it works, having the simple knowledge that it exists to look up is more than worth the time of taking the class.

    1. Re:Absolutely by Thanshin · · Score: 4, Insightful

      There can be two types of people. The math nerd (high math skills), and the programming geek. A combination of these would be great, but, who do you think would make it in the LONG RUN?

      The first who marries the CEO's daughter.

    2. Re:Absolutely by Hognoxious · · Score: 2, Insightful

      Plus linear algrebra is awesome. And everytime I do anything even remotely 2d or 3d related, I always wish I had paid more attention in Geometry.

      That's nothing to do with programming itself. That's to do with the subject you're programming about - the problem domain.

      You could program perfectly well just knowing how to add, subtract, multiply and divide if you worked on (yawn) accounting systems.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    3. Re:Absolutely by Antony-Kyre · · Score: 5, Funny

      That would be the math nerd... the one who knows how to multiply.

    4. Re:Absolutely by kaizokuace · · Score: 2, Interesting

      the sociopathic management will get to her first...

      --
      Balderdash!
  3. Ah there it goes again by TheRagingTowel · · Score: 5, Insightful

    Another person who is ill defining mathematical thinking. I consider mathematical thinking not only Linear Algebra, Infi et al, but everything that requires exact abstract thinking and has the properties of consistency and a formal and defined "language" to represent ideas.

    For that matter, I think that mathematical thinking should be defined more broadly, such as conceiving design ideas and representing them with, say, UML or DFDs as mathematical thinking as well.

    So yes, mathematical approach is a must in programming.

    Just my 0.02c of course.

    --
    4Z5TX
    1. Re:Ah there it goes again by TheVelvetFlamebait · · Score: 4, Funny

      Just my 0.02c of course.

      In a world where people contribute an ostentatious $0.02 to a discussion, you are contributing 0.02c. Your humility amazes me sir!

      That, or you're just incredibly stingy. ;-)

      --
      You know, there is a difference between trolling and pointing out the flaws in your reasoning. Just saying.
    2. Re:Ah there it goes again by smallfries · · Score: 2, Insightful

      but everything that requires exact abstract thinking and has the properties of consistency and a formal and defined "language" to represent ideas.

      So you have redefined "maths" as computer science : the study of formal languages and their computational properties....

      So yes, mathematical approach is a must in programming.

      ... and then you point out that programming requires your redefined maths, which is actually CS. So yes, programming does require CS.

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    3. Re:Ah there it goes again by francium+de+neobie · · Score: 2, Funny

      He's contributing 5 995 849.16 m/s, which is much faster than the max speed of your car, sir.

  4. Re:Not necessary by Joce640k · · Score: 4, Insightful

    OTOH if you can't understand stuff like big-O notation you'll never be a good programmer.

    --
    No sig today...
  5. They Help by ShakaUVM · · Score: 3, Insightful

    It really does help to have math. There have been times when a software solution became ten times easier because I recognized it from a college math class.

    Contrawise, when I work on software that uses math beyond my ability, I have trouble debugging it, and constantly have to rely on the math person I'm working with for help.

  6. more than just 2+2 by saiha · · Score: 3, Insightful

    I would hope that if you are in the computer programing world you understand that cranking out solutions to formulas is way more suited to computers than it is to humans.

    If you want to solve a bunch of math problems then boot up maple, matlab, or any number of programs.

    Doing a bunch of calculus or whatever is _not_ the reason that you want mathy people to be computer programmers. Analyzing and quantifying problems, applying appropriate algorithms, optimization, etc are all areas where someone who understands the math behind a problem can far outshine those who don't.

    To be honest though I think most software devs are into math anyway.

    1. Re:more than just 2+2 by moteyalpha · · Score: 4, Informative

      Absolutely. I do blender and if I didn't understand vector rotation and normals it would be virtually impossible to any good work. You can get the computer to do the heavy lifting, but you have to know what you are asking for. The advantage that exists now is that if anybody is weak on math skills, MIT and others have plenty of open course ware to cover the bases all the way to multi variable calculus.

  7. Math skills are becoming more important by TheKingAdrock · · Score: 5, Informative

    ...but it's not the kind of math you might be thinking about, like calculus, etc. Rather statistics, discrete math, combinatorics, etc. are becoming essential skills if you want to be better than average.

    1. Re:Math skills are becoming more important by smellotron · · Score: 2, Interesting

      All of those except combinatorics were *required* for my Bachelor's degree in CS.

      That's interesting, because I always considered combinatorics to be fundamental in my college program. I do find it very relevant when talking about software, because even having the ability to compare control-flow paths makes a difference. Code littered with poorly-organized conditionals makes my eyes melt, and it all boils down to counting.

    2. Re:Math skills are becoming more important by mr_mischief · · Score: 2, Informative

      Not many people do work with data sets that size. However, some people only consider their work "interesting" when they are on the cutting edge of their field. It's one of those words for something subjective that people regularly take for objective. It also happens to be central to the orignal question. If the poster of the question has a different set of interests than the author of the cited article, then he could easily find that there is work interesting to him which doesn't require math more advanced than basic high-school algebra (and often quite a bit less).

      If digging through old log files looking for certain flag strings is "interesting" to someone, then they don't need much math for that. If they want to keep simple statistics on those strings, that's a little more. If they want to chart the deviations of the proximity of two different strings across multiple files, they're going to need more. If they want to figure the trajectory of a rocket-propelled space vehicle as it enters and leaves the gravity well of a gas giant, then seventh-grade math just isn't going to get them started. Lots of people would agree that working at Los Alamos or the JPL on really tough problems is the more interesting type of programming. Some people would be shocked to find out that others actually enjoy writing CRUD applications, device drivers, and log analyzers.

      Hell, some people enjoy writing accounting applications, or even enjoy being accountants and using it! Accounting does involve quite a bit of math, BTW, and not always just arithmetic. A mathematician or a physicist would be hard-pressed to do proper financial planning and corporate auditing like a CPA can for clients, though. There's a lot of domain knowledge about best practices, laws, regulations, and government incentives that an accountant needs to know.

      Some math is necessary for all programmers. Higher math is necessary when it's domain knowledge. Lots of work with computers is in graphics, simulations, modelling, encryption, and other fields that absolutely need math for their very basis. Other work requires advanced math for the sheer scale of the problems, because at some point throwing more expensive hardware at a problem just won't scale it vertically.

      To get a good, fast horizontal scaling someone needs to understand how to make the code work in parallel by some means. The front-end programmer of a vastly parallel system might not need to know quite how the back-end works. The guy who develops the back-end sure needs to, though, and probably so does the guy who supports the front-end developer in using the back-end services. Many, and I think most, CS-types would consider the back-end the interesting part of a parallel system. That's the part that needs the advanced math -- the interesting part, just as the article states.

  8. Re:Not necessary by BadAnalogyGuy · · Score: 3, Insightful

    Why not? The pay is good. The hours are reasonable. The work is easy.

    There is a lot more to life than your job.

  9. Create value in your brain by Statecraftsman · · Score: 2, Insightful

    Math is necessary for programmers but also for life. That wasn't the best thing in TFA though. The most insightful nugget in this piece was that we should think strategically about what we choose to learn. One the one hand, a programmer can chase the buzz...Rails, Struts, and the Twitter API and get jobs with the cool kids. Far better is to learn general tools that will be around a long time. This is why I like free software and gnu/*nix. The community has built a core set of tools(scripting/database/web) that stands to be around for 20-50 years or more. Just something to think about as you build your programmer/sysadmin toolset (assuming programming/sysadmin work isn't just a temporary thing for you).

  10. Re:Not necessary by AuMatar · · Score: 4, Insightful

    You need to understand it, but how often do you actually analyze non-trivial algorithms (one that require more than counting the number of loops and multiplying by known algorithm times)? In a 10 year career I don't think I've ever done more than that. Not saying more math hurts, and its interesting in and of itself. Unless you're doing 3D graphics (which require trig and linear algebra), you rarely use more than basic algebra and some discrete math concepts. I honestly say I've never used calculus or differential equations professionally.

    --
    I still have more fans than freaks. WTF is wrong with you people?
  11. If you're asking... by vikstar · · Score: 2, Informative

    If you have to even ask that question, then you won't get a programming job that requires math skills. You'll be the bottom of the barrel in your programming group, and then a few of years later promoted as their manager because you can't do any of the technical stuff but are great friends with the boss, or you'll end up doing system support swapping out tape backups and fixing printer jams.

    --
    The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.
  12. Yes and no by poor_boi · · Score: 5, Insightful

    Asking if math-skills are necessary for a programmer is kind of like asking if people-skills are necessary in the field of law. Some lawyers find success by performing in the courtroom and for the camera, while others find success in their skills with research, interpretation and analysis.

    "Programming" is a massive category. Some programmers need incredible math skills to do their jobs. Some programmers convert thousands to hundreds with broken substring operations, then keep their jobs, and make good money doing it. So there's a spectrum.

    But if I had to hazard a guess, I'd guess that the majority of programming jobs out there don't require very much mathematical heavy lifting. And often times if you do run into something that could be tricky, it's already been solved by someone else, complete with copy and paste source code.

    Yet many programming jobs do require serious math skills, and probably (hopefully) always will.

    TBH I don't know if some of the best software engineers I've met are any good at math. They're good at interpreting API documentation, good at structuring code to meet the strengths of the language they're using. Good at project planning, time estimation, and risk analysis. Good at understanding how computer and network systems work and -- often more importantly -- how they fail. They understand how users interact with software, and what users expect and want.

    The truth is, software development has become as broad as life & human interest itself, and generalizations about the practice are becoming more and more meaningless.

  13. Maybe it's cart horse... by Joce640k · · Score: 4, Interesting

    Looking at whether math is necessary to be a good programmer could be like putting the cart before the horse. I think it's more likely that good programmers are usually good at math because that's they way their brain works.

    --
    No sig today...
  14. lamport on math and distributed systems by Paradigma11 · · Score: 2, Interesting

    here is an interesting video with leslie lamport ( http://en.wikipedia.org/wiki/Leslie_Lamport ) : http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Leslie-Lamport-Mathematical-Reasoning-and-Distributed-Systems/ "When you understand something, then you can find the math to express that understanding. The math doesn't provide the understanding." “The mathematics of computing; things like sets and functions and logic, are to computing what real numbers are to physics.”

    1. Re:lamport on math and distributed systems by epine · · Score: 4, Insightful

      Leslie Lamport's contributions should be more widely appreciated. He has the knack for reasoning very hard about apparently simple problems that aren't as simple as they first appear. This is a distinct mathematical talent from being able to solve tricky integrals. It's surprisingly hard to reason about computational processes in a completely convincing way. The effort does wonders for the correctness of my embedded code. Note that with the modular behaviour of integers, the normal rules of algebra don't always apply (this shows up most often dealing with pygmy integers).

      Long ago when I was a beginning C programmer I managed to implement a simple binary tree in a wonky way. My comparison operator was deterministic, but didn't form a full order. The tree seemed to work fine. I could add elements and test for membership, it was all golden. Then I tried deleting an element. This worked. But I noticed something funny about the tree afterwards. Since my comparison operator was not a full order, the tree rebalance operation following a deletion could orphan some elements so that they wouldn't be found.

      I showed this to a coworker who told me "What are you worried about? It mostly works doesn't it? Your tree insert and membership test passes doesn't it? We need to move onto another task." But I was stubborn and a voice inside me went "this can't be right". Element inserts and searches in that system were common (like #define in C) but deletions were fairly rare (like #undefine in C). That broken code could have been out in the field causing nightmares for a long time before we tracked the problem down. Half an hour of consternation later, I had figured out how I butchered the order operation in violation of the full order requirement. I had cases where A B && B C && C A. This is not good for a binary tree with deletion. The nasty part is that it limps along further than you expect.

      In that same job I had an improperly initialized pointer that scanned through a memory data structure comparing on a string field on some odd field size such as 23 bytes. (Sue me for my youthful indiscretion if you've ever had to label diskettes by compiler phase). Strangely, the pointer scanned several hundred k of memory not part of the table, then properly aligned with the table it was supposed to find, and returned the correct field. It seemed to work under testing, but I noticed the performance was a bit odd in some cases. This lead me to investigate and I found the unitialized pointer. Once again, if this code had been released, it was a ticking time bomb the first time some random values in low memory simulated a match with the search key.

      I learned a lot in that job about defensive programming. A couple of years later I came across one of Dijkstra's books and the spark jumped from his finger to mine. Bugs have been a rare event in my code ever since. Dijkstra taught me to think properly about all possible orders of statement execution where the program remains correct. The order you first write isn't necessarily the only one that works. The mental discipline is a lot like classifying all the components in your BBQ kit into formal symmetry groups before you begin assembly. It pisses me off immensely when I miss some obscure drill hole and conclude that two panels are entirely identical, only to discover much later they weren't (usually after I've pounded in those flimsy plastic wheels that resemble a hip joint with rickets).

      Try next time *before* assembling the BBQ to formally write down the symmetry group for every little flim flam and see if you can still F up the first assembly. I bet you can't.

      What it comes down to is that math is an attitude as much as a skill. I tell my GF from time to time that math is fundamentally the attitude that 100% of what you don't understand is smaller than a grain of rice. How many programs have I screwed up because of a big mathematical mistake? Can't think of any. Going way back, how many times have I screwed up

  15. Re:Maybe it's cart horse... by lgw · · Score: 5, Insightful

    Heck, perhaps my favorite college course was the one where we proved the equivalence of various math and programming problems. The more ways you learn to think about problems, the less details like the "language of choice" matters, and the more you can think in terms of "what's the right tool for this job".

    Plus, as Feynman noted, if you merely have a different toolbox than those around you, people wil think you're a genius, as you can often see immediate solutions to problems they've been struggling with for a long time (and the fact that the converse is true only comes up if you let it). Having a large toolbox has worked quite well in my career.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  16. Depends on what you mean by "programming" by headLITE · · Score: 2

    You don't need math skills for programming work.

    You do need them for theoretical computer science, and in turn, you need theoretical computer science to invent something new that you could program. Most programmers don't do theoretical work themselves, and most theoretical computer scientists don't finish their software ;-) It's a completely different type of job.

  17. Strong Math Skills often get dumbed down by DaScribbler · · Score: 3, Insightful

    A coder with great math skills can write some really slick algorithms. However, more often than not, despite how well their algorithms are documented, if they're working with a team of developers they are usually pushed to dumb down their code so as to accommodate the skills of everybody else on the team ('team' more accurately meaning 'project manager') to make it more 'readable'.

    1. Re:Strong Math Skills often get dumbed down by khallow · · Score: 2, Funny

      I think that's a bit too complex. You need to dumb it down a little.

      Thog no grok means code no work when you gone.

  18. Re:Not necessary by Ihlosi · · Score: 2, Insightful

    If you are a typical programmer, you'll be using libraries that already have the difficult math-y stuff worked out.

    If you don't have any clue about what these libraries actually do, then they're basically as useful as a typewriter to a monkey. You don't need to reinvent the wheel every time, but at least you need to have a clue about how and why a wheel works.

  19. No, but Logic is mandatory. by unity100 · · Score: 3, Interesting

    most of programming inevitably consists of creating logic constructs in algorithms. if this happens it has to be that, but also if that happens with that and it also has to be this and that and so on. they constitute the backbone of programming. anyone lacking understanding of logic would have a hard time. the rest, can easily remedied - we have innumerable libraries, classes, frameworks performing many complex mathematical operations. its better to have very strong logic, and make up for the rest with this approach, and efficient. furthermore, you can receive interdisciplinary help, hell, even help from internet in that regard, if you come up with some problem that has to be solved with a math equation. a mathematician can also help you with that. but the rest, the logic part, you gotta be sharp at that.

  20. Re:Not necessary by BadAnalogyGuy · · Score: 4, Insightful

    The documentation says what the libraries do.

    I assure you, reading skills are critical to programming. To just about any job, actually.

  21. Re:depends, becoming more important I think by Ihlosi · · Score: 5, Insightful

    This was of course just an example but it's true for a lot of stuff, back then you had to spend a lot more time optimizing your code as well, these days premature optimization is generally considered a bad thing (since in most cases it ends up being a waste of $500 worth of programmer time to squeeze out a performance gain that $50 in hardware would've have gotten you.

    If you're planning to sell a million units containing both hardware and software, then "wasting" $500 of programmer time to save even $0.01 in hardware per unit is a really sweet deal.

  22. Reminds me of a quote by Moraelin · · Score: 2, Interesting

    Reminds me of a quote by Gene Fowler, "Keep the company of bums and you will become a bum. But hang around .with rich people and you will end up by picking up the tab and dying broke".

    Especially given this kind of survival of the assholiest when it comes to who gets to be a CEO in the first place: Is Your Boss a Psychopath?

    Don't assume that these guys care about you just because you married their daughter. Not about that daughter in the first place. Or about anyone else than themselves, really. If they did, they wouldn't qualify as psychopaths in the first place.

    Though it might be a start if you just want to be their pet sycophant. But then again, if you wanted to be someone's sycophant and were any good at it, you wouldn't need that daughter to rise through the ranks. And you'd have probably become an MBA not a math nerd or a programming geek.

    --
    A polar bear is a cartesian bear after a coordinate transform.
  23. Re:code monkeys by tehcyder · · Score: 2, Insightful

    (Figures totally out of the air.)

    I think you need some statistics training :-)

    --
    To have a right to do a thing is not at all the same as to be right in doing it
  24. Two distinct disciplines by amn108 · · Score: 2, Interesting

    ...which often benefit from a fruitful relationship. That said, I would point out that in my experience programming and mathematics are two distinct disciplines, and neither requires the other. You really can be a professional programmer without knowing anything beyond the most basic arithmetics.

    Programming is application of pure logic, the latter isolated from the all but basic mathematical concepts. Mathematics is application of logic in a specific manner which springs from simple arithmetics and has evolved into own world, not in the one of the most important "worlds" we have.

    One important remark would be that programming is often APPLICATION of mathematics, which is one case where the two disciplines cannot, for a time being, be separated. In that case, one obviously needs a programmer who is also a good mathematician.

    Also, obviously, given two programmers with equal programming skills, pick one with the better math skills over the other, if no other qualities affect the choice. It is like picking any other job candidate - you pick one with more qualifications, even if these apply only remotely to the field of work the company does. And since mathematics is a close cousin here, the choice should be obvious.

  25. yes, you need math by AlgorithMan · · Score: 2, Insightful
    • Just look up, what the "relational" in "relational database" means... it stems from purest mathematical logics!
    • You need linear algebra and even up to full algebra (anisotropy) for 3d engines
    • artificial intelligence has lots to do with mathematical logic
    • most optimization problems have to do with graph theory - and logic
    • randomized algorithms: pure probability theory
    • string processing, regular expressions, compiler generation: lots of automata theory (which is closely related to graph theory)
    • deep, deep analysis for running time bounds (esp. for recursive programs)
    • lots and lots of logic for semantics
    • etc. etc. etc.

    without profound knowledge of math, you are a tinkerer. you program off the top of your head. To really, deeply understand what you are doing, you need math!

    --
    The MAFIAA is a bunch of mindless jerks who will be the first up against the wall when the revolution comes
    1. Re:yes, you need math by ascari · · Score: 5, Insightful

      Pizza analogy: You can't work in a pizzeria without profound knowledge of chemistry

      Car analogy: Automotive engineers are the best drivers, the rest are tinkerers

      General: Tool makers vs. tool users

      Just because most (all?) programming is based on mathematics it doesn't necessary follow that math is essential or even particularly important to the practice of programing. It could be argued that problem domain knowledge plays a similar role. For example, one could equally plausibly contend that without a profound knowledge of banking you shouldn't write banking software. In my experience hiring managers prefer domain knowledge over generalist skills such as math. Personality is another biggie.

      I suspect that the tone of this thread is reflecting the prevalent commodization of programming. We wish that smarts, maths skills etc. are important factors, so we can feel good about ourselves, feel smart, important whatever. In reality very few of us will ever again have jobs where math skills are truly important. Dumbing down? Maybe. Some might see it as a natural consequence of the fall of the "priesthood" that ruled computing decades ago.

  26. Re:Not necessary by Opportunist · · Score: 2, Insightful

    You need to understand it, but how often do you actually analyze non-trivial algorithms (one that require more than counting the number of loops and multiplying by known algorithm times)? In a 10 year career I don't think I've ever done more than that.

    Yes, but you at least know of big-O notation and what it means. You know that the "cost" of an algo can be measured and calculated. And that it's important.

    There are far too many "programmers" out there who don't even know that.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  27. great programmers vs great academics by Antiocheian · · Score: 2, Insightful

    people who are almost universally respected in our field as great programmers are also great mathematicians. I am talking people like Donald Knuth, Edsger W. Dijkstra, Noam Chomsky, Peter Norvig.

    I don't think these are great programmers. My respect for programmers goes to Phil Katz, Steve Gibson, the author of the Dark Avenger Mutation Engine and generally the people who consider their work to be an art form of elegance, minimalism and speed.

  28. math is no help? by l3v1 · · Score: 4, Insightful

    linear algebra is no help when building database driven websites

    Oh for [whatever]'s sake, who on this earth started spreading the "wisdom" that all apps are database-driven web applications that do nothing more than displaying user-input two-line texts with images and videos?

    I could list dozens of algorithms - even from my day-to-day use - that nobody on this earth would be able to correctly and efficiently implement without proper math skills. And even the term math is too broad, natural language-related stuff, image/video/vision content processing stuff, simulation stuff, overall machine learning stuff plus ai-related fields, control systems - and I could just go on forever - don't come without their associated - sometimes fairly deep - math topics.

    The social web will come and go, but apps and algorithms that do something even remotely useful, won't ever be accomplished by math-knowledge-lacking code monkeys.

    --
    I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
  29. bottom line by AlgorithMan · · Score: 2, Insightful

    the bottom line is: yes, you can use libraries (for this, you don't need much math), but to be a GREAT programmer, you need to be able to program things yourself (for this, you need math). If you can only piece together other peoples code (which you don't even remotely understand), then you are a tinkerer. It will be complete coincidence, when your code works reliably and fast.

    --
    The MAFIAA is a bunch of mindless jerks who will be the first up against the wall when the revolution comes
  30. Mathematics for social networking growth (Facebook by Gnumbers · · Score: 2, Informative

    Just yesterday I wrote a short article ( http://goo.gl/dko2 ) after reading about how Facebook are using Mathematics to help with Failure rates in their datastore clusters.

    There is a 24 page presentation by Avinash Lakshman and Prashant Malik, which describes (page 17 onwards), how the company are using Probability Theory to help them detect failure in a datastore.

    Probability Theory is just one area of Mathematics, and degree level Mathematics would usually include at least one or two modules in Probability.

    If I were an Operations Director or Development Team Leader at a large Social Networking company, I would certainly view University Level Mathematics as +1 for anyone applying to join the team.

    The short article is here and the clickable link in that article should take you directly to somewhere (slideshare, etc) where you can view the 24 page .pdf

  31. First decide what you want out of programming... by IMustBeNuts · · Score: 2, Interesting

    I've seen great maths/physics experts who were lousy programmers, and some self taught people who were brilliant... and naturally I've seen the opposite too. What you really need is a person with a skill set that is appropriate for the role that they are to fill. Myself, my math skills are basic at best, while my application of logic is quite solid - or so I've been told, and in my personal case, I work with Physics PHD's who understand the math way better than I do, but make the most elementary design mistakes if left to manage a project by themselves, this in spite of their having 6-10 years of programming "experience". My role largely involves writing APIs, and is very people-oriented, so I find that I don't need the same level of math that my colleagues need. Their role is to design algorithms, and yes, to dumb them down somewhat so that I and others in the team can make better use of such things so that our work integrates well with what our DSP engineers do. I wouldn't be suited for something as math oriented as game theory, whereas I think my colleagues would actually be better suited to such a role. I can however design and build relatively complex information systems, which tends to benefit more from a skill set where logic and people skills are more prominent. It really is a case of "It depends". If you're unsure and would like to keep your options wide open before you dive into the programming deep end, then yes, I'd suggest you delve into the maths a bit, and see where it leads you. If you already know where your career is going, you can always learn more as you go, pick up the skills you need along the way to make yourself more marketable. For my own roles, I've wished I studied more psychology (never thought I'd actually ever admit to that!!)... but that's just because of the nature of the type of products I've worked on.

  32. Physics Software Programming by TheLeopardsAreComing · · Score: 2, Insightful

    I write a lot of software for experimental physics applications, statistics is absolutely vital for data analysis software... Calc is essential for PID control methods as well. It really depends on what you want to do, but having higher level math skills will make you a better programmer in the long run.

  33. Orthogonal concepts by Livius · · Score: 3, Insightful

    There's no reason that "most programming work" and "truly interesting work" would have anything in common.

  34. What part of Maths ? by Nicolay77 · · Score: 5, Interesting

    Mathematics is a huge field with lots and lots of small ramifications.

    You may want someone who understand statistics for your SEO stuff.

    You may need someone who knows calculus for a physics simulation.

    You need someone who knows a lot of linear algebra if you want to write a search engine.

    You probably need someone who knows about concrete mathematics for almost all the rest.

    For everyone who thinks that they do not use maths when programming: what do you think regular expressions are?

    --
    We are Turing O-Machines. The Oracle is out there.
  35. Being a patent lawyer helps on Slashdot, but... by AtlantaSteve · · Score: 3, Insightful

    People are saying two things here, and thinking that they're mutually-exclusive. Some point to areas of commercial programming beyond basic CRUD operations, saying that math would be a big help there. Others point out that for standard CRUD and gluing together pre-written software libraries, math skill doesn't much matter either way.

    Hey, they're BOTH right. However, the trend is moving toward the latter type of programming job. Forget high-level math... I seldom use my COMPUTER SCIENCE skills on the job. I vividly remember participating in a code review session around 5 or 6 years ago. I started to point out why a particular function was inefficient, and wrote some O notation on the whiteboard. There were 8 Indian developers in the room, and they had no idea what O notation even was. There were three other Americans, and they had only vague memories of having seen it at one point back when they were in school.

    That was the day when I finally just "gave up". I now approach my professional life as the job that it is. I integrate Spring and Hibernate with your legacy system. I don't get too excited or worked up about it. I leave promptly at 5:00 each day. I'm well-paid for doing what feels like very little work. Most of all, I look for my intellectual stimulation outside of work (mostly on the clock... typical jobs let me spend half the day goofing off online). My point is that I have to disassociate modern programming from real intellectual pursuits, or else I'll get depressed over how trivial and boring this line of work is. If I DID know PhD levels of number theory, it would just be something else going to waste and I'd have to avoid being depressed about that too.

    Having a lot of math knowledge in most programming environments today would be like an experienced patent attorney posting on Slashdot. You'd be surrounded by people who LOVE to talk about your field, yet generally don't have a clue what they're talking about. They misstate basic ideas and rules constantly, and it irritates the hell out of you. However, they all THINK they're experts... and in fact know more about the field than you do.

    No thanks... I would pass.

  36. It depends what you want to be really... by pjr.cc · · Score: 2, Insightful

    Basic math (i.e. 1+1 = 2) is obviously an absolute requirement.

    Algebra too is mostly a requirement (though if you did programming first, you'd probably find algebra alot less difficult cause you'd dealt with representative values).

    But thats where it ends for almost 99% of programmers. Programming is really about shuffling bits of data around and so you can get by with only those two skills. However, the rest are very useful depending on the field.

    For example trig and calculus are infinitely handy in any kind of spatial programming, but knowing vectors and transformations are often essential if your getting into 3d coding (though u can get by without it, if your using a library).

    The rest are usually straight forward and dependant on you already having the math skills. I.e. if your going to be coding something that deals with statisics, that you obviously need to know statistics.

    Ultimately, any math you know is to your advantage, but not really essential unless you dealing as a coder in a pure math realm (i.e. trying to implement a math algorithm within code). There are indeed many things you could code that are based on math without having to understand the math behind it.

    For example using rand() is easy, is based on math and you can use it without understanding it. You can also learn to understand the difference between random number generators without understand the theory of their operation, and indeed understand what the difference between strong and pseudo random number generators really is - again, without needing to know the maths of their operation and be a very effective coder.

    Another example if neural nets - its easy to understand their operation in terms of a pure coding exercise if your using someone elses neural net library - their operation is quite simple. Writing the library would require a reasonable amount of math intelligence though.

    There are huge numbers of example where these things are fundamentally true, things you may build on that are based entirely within the math realm but understanding their mathematical operation is fairly irrelevant (but useful).

    What alot of people do think (and it annoys me no end) is that you should be able to reinvent the wheel constantly. This is a time waster. If your writing some program that uses a neural net, the only reason to know how to implement your own is if the several out there cant do exactly what you need. This is what most people do anyways, "gimme that library" and reuse peoples work - its the backbone of how we code and ultimately the world as we know it would be alot different if we didnt just use the library that does the thing we want rather then implementing our on constantly.

    But as i said, it depends on what you want to be as a coder. I would say having high-school maths in your head is going to cover 90% of coding jobs easily (i.e. 1+1=2 and algebra). I really dont know too many coders who need more then that myself.

  37. YOU ARE EXACTLY CORRECT, SIR by maillemaker · · Score: 4, Interesting

    >My personal largest problem, though, has to do with literacy. Though I'm quite skilled with language, excessive comma usage
    >notwithstanding, I find that when trying to read about advanced math or physics principles on Wikipedia for example, I'll see
    >a theorem written using symbols and functions that I know were covered in the math classes I had in high school but I can't
    >look at those same symbols and functions and turn them into words that accurately explain or describe the principle I'm reading.
    >Perhaps I'm alone in that situation, but attempting to read advanced theorems and math does give me insight into what text must
    >look like to illiterate people who still know their ABC's.

    I share your exact sentiment.

    I have been a definite non-traditional student. I started school in 1988 at Georgia Tech, and failed out after 2 years. Some 17 years later, I finished my BS in Computer Science.

    I have taken and retaken math classes many times. When I was at Georgia Tech I got a C in Calc I, and then in Calc II I got W, F, D, F, and finally passed with a B. Then I moved to another state and had to take Calc II yet again. A few years ago I started working on my Mechanical Engineering degree, which requires Calculus III, so I took Calc I and II again to brush up. I got a B in Calc I and a B in Calc II and got a D taking Calc III. I am currently re-taking Calc III.

    My problem is, I believe, that I have strung out my mathematical education over so long a period of time that I am not FLUENT IN THE LANGUAGE OF MATHEMATICS. It is, exactly as you state, a LITERACY PROBLEM. I firmly believe, as you seem to, that MATHEMATICS IS A LANGUAGE. Moreover, I believe, as you seem to also, that people who are fluent in mathematics actually "SEE" mathematical equations.

    For example. I believe many people when they look at x^2 + y^2 = r^2 instantly recognize the equation of a circle. Now I have finally gained that understanding, BY ROTE, of that fact also. But I believe that people who are mathematically literate see more than just the pattern recognition that that equation means circle. I think they see equations and actually see WHAT IS GOING ON. I never do. I have to sit down and plug in values of X and Y and see what comes out. It's very tedious.

    I think your last sentence was exactly dead-on. I liken the problem to handing an encyclopedia to a 5-year-old and asking them to read a passage. They will be focusing so hard on each word that they will not know what they have read at the end of a sentence. That is exactly how I feel trying to do Calculus. I am focusing so hard on the basic mathematics that I find it very difficult to put it all together to see the big picture.

    It is very much a literacy problem, and I find it confounding. The only thing for it, I'm afraid, is to do more and more and more maths until one gains the familiarity one has just as one does with reading. The problem is time. I just don't have the time, with a full-time job and a family, to do it.

    I haven't been able to help but think, over the years of taking higher-level math classes, that there must be a better way to learn this stuff. The science of Calculus is some 400 years old, some parts much older. Yet the way it is taught has not changed hardly at all. Now maybe there is no better way to learn it than doing it over and over until knowledge turns to understanding, but what keeps coming to me is that there must be a better way to VISUALIZE the abstract into something more concrete.

    Example. The other day in Calc III we were talking about minimums and maximums, and how they might occur on the surface or along the surfaces boundary. So I said out loud, "So, the surface can either be a volcano or a potato chip but either way there is a high or low spot somewhere on it." And half the class said aloud, "Aaaaaahhh!" - they got it because they were able to VISUALIZE the abstract concept as something concrete.

    There has got to be a better way to con

    --
    A work that expires before its copyright never enters the public domain and thus enjoys eternal copyright protection.
    1. Re:YOU ARE EXACTLY CORRECT, SIR by PerfectionLost · · Score: 2, Interesting

      Insight is the most sought after skill in life, and Mathematics is no exception. I remember taking math classes in college where the teacher would be explaining a proof, and then would make an almost epic leap of faith to the next step. The step would work, but I would have no inclination as to why you would do that. I always made a point of asking if that leap was intuition, in the hopes that I could identify where greatness occurs.

    2. Re:YOU ARE EXACTLY CORRECT, SIR by pnuema · · Score: 2, Interesting
      I have no doubt you are correct sir. By my elementary and secondary test scores, I should be a mathematician. I was doing college algebra in the sixth grade. However, I found in 11th and 12th grade (pre-calc and calc) that I just plain didn't understand the math anymore. I could do the equations, and I knew when to apply them, but I no longer had any understanding of why I was doing what I was doing. I never developed that relationship with math that the truly gifted people I knew developed. As a result, I got a D in Calc II in college, and never took another math class.

      By the way, I am also proof positive that you can have a good career in IT without much math. :) I may not be an uber-programmer, but somebody has to make the stuff those guys write work.

  38. What can I do without so much math knowledge? by FoolishOwl · · Score: 2, Interesting

    I went back to school, about a year and a half ago, with an original plan of taking some community college courses, then transferring to a four-year school and getting a computer science degree, and an overall plan of working as a system administrator. In general, I'd found most of my classes ranging from easy to effortless, but I found calculus incredibly difficult. Calculus took up 90% or more of my study time, and I was still doing poorly. I concluded that if a computer science degree required that much math, I just wouldn't be able to do it.

    My current plan is to finish up a certificate program in system administration, try to find work, and perhaps get a degree in technical writing later. My guess is that I'd be good enough at light-weight programming -- hooking up the pieces with Perl and so forth -- but I wouldn't be a first rate coder in any case.

    I did find it puzzling, though, that the programming courses I've taken were almost painfully easy, by contrast with the math courses. It also struck me that while there was a wide range of ages in the networking and programming courses I took, the students in the math courses were almost all 19 or 20.

  39. Re:Not necessary by TheRaven64 · · Score: 2, Funny

    You choose 'quicksort' because it says 'quick' on the label. Your data is mostly sorted already, so it should be really fast, right?

    --
    I am TheRaven on Soylent News
  40. Certain Math Knowledge and Skills Are Helpful by KnowlerLongcloak · · Score: 2, Interesting

    I learned Boolean Algebra for a CS degree. The application the University intended for its use was for designing hardware circuits.

    As a programmer, over the years I have had many cases where I had to write programs that did different things based on a list of inputs and their values. My knowledge of Boolean Algebra has helped me make the code simpler because I could reduce the input values to the lowest equivalent. My resulting code therefore has less conditionals (if..then..else and switch statements).

  41. Necessary or Not? by Mind+Socket · · Score: 2, Funny

    == true

    How did I do?