Olga Khazan writes in The Atlantic that learning to program involves a lot of Googling, logic, and trial-and-error—but almost nothing beyond fourth-grade arithmetic.
Victoria Fine explains how she taught herself how to code despite hating math. Her secret? Lots and lots of Googling. "Like any good Google query, a successful answer depended on asking the right question. “How do I make a website red” was not nearly as successful a question as “CSS color values HEX red” combined with “CSS background color.” I spent a lot of time learning to Google like a pro. I carefully learned the vocabulary of HTML so I knew what I was talking about when I asked the Internet for answers."
According to Khazan while it’s true that some types of code look a little like equations, you don’t really have to solve them, just know where they go and what they do. "In most cases you can see that the hard maths (the physical and geometry) is either done by a computer or has been done by someone else. While the calculations do happen and are essential to the successful running of the program, the programmer does not need to know how they are done."
Khazan says that in order to figure out what your program should say, you’re going to need some basic logic skills and you’ll need to be skilled at copying and pasting things from online repositories and tweaking them slightly. "But humanities majors, fresh off writing reams of term papers, are probably more talented at that than math majors are."
(Score: 2, Interesting) by gawdonblue on Thursday September 03 2015, @09:46AM
I don't think that you can generalise that you need advanced maths to program. You would definitely need it in certain situations, but in 27 years of paid programming I've needed it maybe twice.
I've done mostly banking software and I've needed to understand some advanced accounting principles but the mathematics behind is usually fairly basic. When there have been interesting formulas it's been knowing how to convert the symbols to code that's been important, not understanding how to derive the formula in the first place.
I do like maths and I enjoy a mathematical challenge, but it happens all too rarely in my work.
(Score: -1, Redundant) by Anonymous Coward on Thursday September 03 2015, @10:08AM
Every program is maths. Every programmer needs maths to code.
It’s not because you have never needed to use quaternions or Fourier’s transforms that you don’t do maths when you program.
SQL requests are algebra for ****’s sake!
(Score: 2) by The Mighty Buzzard on Thursday September 03 2015, @11:03AM
Boolean algebra is more logic than math.
My rights don't end where your fear begins.
(Score: 0) by Anonymous Coward on Thursday September 03 2015, @12:12PM
Logic is mathematics, unless you're speaking about philosophy, but I've never encountered any programming problem that required me to use philosophy (and frankly, I've got no idea what such a programming problem might look like).
(Score: 2) by linuxrocks123 on Thursday September 03 2015, @01:07PM
MP3 decoder
http://www.youtube.com/watch?v=K5G1FmU-ldg [youtube.com]
(Score: 3, Insightful) by Dunbal on Thursday September 03 2015, @01:08PM
You don't need math. You need to understand basic algebra. You need to understand how computers actually work and how your language actually works so that you know what you're doing. And you need to have the kind of mind that breaks things down into little steps. Unless you're writing a very specific application, in almost every case a "best approximation" is better than the actual mathematical formula - which you can always find in a textbook or online anyway.
The use of variables and algebra is not "math" just like putting a band aid on someone does not make you a doctor. Unless you wish to be shot by some insane advanced mathematician you should avoid statements like that!
(Score: 0) by Anonymous Coward on Thursday September 03 2015, @03:24PM
Algebra is not mathematics?
Do Americans call it "math" because they only know just one?
(It's always mathematics or maths in the UK.)
Just about everything is mathematics, but the substance of the article is correct, none of it is advance mathematics. I'm sure most of use have seen plenty of examples of programmers with surprisingly poor literacy or numercy but somehow still being programmers.
The "rediculous" [sic] spelling mistakes I see all the time I'm amazed some people are ever able to compile or debug their software.
(Score: 0) by Anonymous Coward on Thursday September 03 2015, @05:12PM
Algebra is not mathematics?
Yes, the OP was saying it isnt a difficult one.
Do Americans call it "math" because they only know just one?
(It's always mathematics or maths in the UK.)
Wow, really? Americans don't pluralize it because we see it as one overarching subject. Do you call your literature classes Literatures, haha does that mean you only know one, haha. What about your History class, do you call it Histories?
The "rediculous" [sic] spelling mistakes I see all the time I'm amazed some people are ever able to compile or debug their software.
Ahh you're so smart huh, sorry to have questioned you and your grammars and codes skillz.
(Score: 2) by frojack on Thursday September 03 2015, @04:05PM
You need to understand how computers actually work and how your language actually works so that you know what you're doing.
Not really.
You need to know the basics of computers, and the basic idea how your language works.
Most programmers have no real clue about how a computer actually works (is there any one person on the face of the earth that understands all about how a computer actually works?) and most programmers don't actually know just what goes into a simple addition of two numbers!
No, you are mistaken. I've always had this sig.
(Score: 3, Interesting) by DeathMonkey on Thursday September 03 2015, @05:46PM
Just because it doesn't contain a big scary formula doesn't make it not math.
In fact, if you can parse that (unwieldy) sentence you just did math! [wikipedia.org]
(Score: 1) by Ethanol-fueled on Thursday September 03 2015, @09:43PM
Do coders who are also good at math even do their own math anymore?
I thought nowadays they just offloaded their work to MATLAB or automagically exported [mathworks.com] their MATLAB algos to C/C++ libraries if they had to go that route.
(Score: 1, Funny) by Anonymous Coward on Thursday September 03 2015, @11:41AM
As soon as jquery publishes a math lib every programmer can have a beautiful mind.
(Score: 2) by martyb on Thursday September 03 2015, @12:35PM
Mathematics is a very broad field which does include numerical calculation. But it is far more than just that! Boolean algebra. Set theory. Algebra. I regularly use all of these when I am programming.
At its simplest, an algorithm is a mapping of inputs to outputs. Or, more specifically, a mapping of a domain to a range. Let's look at a simple program to calculate an average for a user's grades for a semester. Input is a string of blank-delimited grades. Output is the average. Simple and straightforward, right? This example is in AWK.
Let's test it with a couple of samples of test data:
Looks good... ship it!
But, it fails.
There is no input checking. It returns a non-integer in many cases. Non-numeric 'grades' are treated as having a value of zero. Worse still, the program crashes on a null-input with a divide-by-zero error.
I would argue that one needs to know what the entire domain of possible inputs is and needs to be able to accurately parse that into non-intersecting subdomains that cover the entire of the input domain. Further, one then needs to be able, for each of those subdomains, perform the correct processing and generate the correct results.
These are not difficult concepts. I learned set theory in 5th grade, algebra in 7th, and Boolean algebra as part of a programming course in 8th grade. But, I have had a successful career in software test and quality assurance because these simple concepts constantly fail to be fully implemented by developers!
An aside. For those who know this already, it's no big deal. But until I learned these, conditional expressions were just a miasma of quirky symbolisms. Sadly, it seems, there are many professional programmers who are unaware of these!
The Boolean operator 'AND ' is just multiplication on the domain of {0, 1}:
Further, Boolean 'OR' is just addition on the same domain, where one defines 1 + 1 to have the value 1:
Combine this with the rules of associativity, distribution, and commutation and even the most convoluted conditional expression can be evaluated. =)
Wit is intellect, dancing.
(Score: 0) by Anonymous Coward on Thursday September 03 2015, @02:04PM
tl;dr - Error checking and exception handling takes up a lot more time and code than the basic task at hand. This requires the programmer to understand the requirements rather than just the math, but some parts of the programmer's skill-set for checking/handling these issues can be compared to basic math learned in grade school.
(Score: 4, Insightful) by tfried on Thursday September 03 2015, @10:08AM
Well, true, you don't really need much mathematical knowledge in order to become a decent programmer. But the "way of thinking" is pretty much the same for both things, in my opinion. How do I get from representation A to representation B, how can I make this look like that, how can I find out it this is the same kind of thing as that, etc.
So, yes, theoretically you can be bad at math and good at programming, but it still seems a rather unlikely combination...
(Score: 2) by WizardFusion on Thursday September 03 2015, @10:23AM
The word you are looking for is Algebra. I was OK at Maths (yes, it has a S at the end) in school/collage, but great with algebra.
I believe this is what helps give a good foundation with coding.
(Score: 3, Funny) by Justin Case on Thursday September 03 2015, @10:45AM
How many maths did you study?
(Score: 1, Funny) by Anonymous Coward on Thursday September 03 2015, @11:42AM
How many maths did you study?
Alls of thems.
(Score: -1, Flamebait) by Anonymous Coward on Thursday September 03 2015, @12:15PM
So you think algebra is not mathematics?
Or are you under the delusion that maths is what you learn in the maths class at school?
(Score: 1, Informative) by Anonymous Coward on Thursday September 03 2015, @12:59PM
I was OK at Maths (yes, it has a S at the end) in school/collage,
No, it doesn't. Also "college" has no "a" in it.
(Score: 2, Funny) by Anonymous Coward on Thursday September 03 2015, @02:05PM
Also "college" has no "a" in it.
Unless it is a collage of maths.
(Score: 2) by aristarchus on Thursday September 03 2015, @09:00PM
I was OK at Maths (yes, it has a S at the end) in school/collage,
Ah, but did you attend one school, or possibly many collages (with an s at the end, inexplicably!)?
Maybe we could say you attended a collage of colleges, perhaps?
But in any case, the Greek word μάθημα does not refer to any specific area of study, it includes all.
"Believe it or not, your opinion on this topic is really not necessary,"
(Score: 2) by gidds on Sunday September 06 2015, @10:44AM
You know that, and I know that — but those poor benighted colonials in the Americas don't know any better, and for some reason won't accept the truth from us. I find it's usually safer just to humour them.
[sig redacted]
(Score: 2) by The Mighty Buzzard on Thursday September 03 2015, @11:08AM
Not as unlikely as you'd think. I'd be willing to bet at least a third of the good code monkeys out there would have a hell of a time doing anything beyond highschool math longhand anymore. If you don't use something, you eventually lose it.
My rights don't end where your fear begins.
(Score: 0) by Anonymous Coward on Thursday September 03 2015, @11:50AM
More likely, these people never truly understood it in the first place and just memorized some formulas, since that's all schools really require of you.
(Score: 2) by frojack on Thursday September 03 2015, @03:44PM
So, yes, theoretically you can be bad at math and good at programming, but it still seems a rather unlikely combination...
Not really. Maybe in your field, but not in most.
Look, most computing is bean counting, and moving shit from an input to an output. Sure, game development, graphics, and such are special cases. But the vast majority of computing systems simply move stuff around, print or display existing stuff, accept input of new stuff, store it someplace, find it again when requested, etc.
The math seldom extends to anything more complex than computing an average. You are far more likely to find time/date computations than the computation of a standard deviation, let alone the first derivative of something.
No, you are mistaken. I've always had this sig.
(Score: 0) by Anonymous Coward on Friday September 04 2015, @09:16AM
And you think that date/time computations are not maths?
(Score: 2) by frojack on Friday September 04 2015, @06:50PM
And you think that date/time computations are not maths?
NO, never said that, I merely pointed out that for many common computing tasks, date computations are
about as complex as the math gets.
- Was the insurance policy valid at the time of the crash.
- If born in November 1983, what date will someone be retirement eligible?
- What day of the week was a specific date?
These things occur all the time in normal accounting, but virtually never in graphics or games.
But none of them are particularly complex, and some languages have routines to handle these.
No, you are mistaken. I've always had this sig.
(Score: 5, Insightful) by Nerdfest on Thursday September 03 2015, @10:20AM
Very bad examples used. HTML and CSS is programming now? Flash was also mentioned in TFA I guess, so that's a bit better, but HTML and CSS is learning how to format a document, really. I'm not saying it's simple, but it's not programming.
(Score: -1, Offtopic) by Anonymous Coward on Thursday September 03 2015, @02:35PM
Typesetting is a profession.
(Score: 3, Insightful) by quacking duck on Thursday September 03 2015, @02:45PM
The submission title uses the word code, but the summary uses both coding and programming. To my mind they are similar but distinct, the way geek and nerd are sometimes used synonymously by the public but have distinctions within the more knowledgable community.
HTML is not programming, but it *is* coding. Literally applying code to make enclosed text look and behave differently than regular text. This means that people who used the old DOS-era, pre-WYSIWYG word processors were in a sense "coding", but that was purely formatting code; there was no code to turn text into a link, for example.
Programming requires at least some logical branching like if/else conditions, and for that you need to at least be using Javascript.
(Score: 2) by mhajicek on Friday September 04 2015, @03:03AM
Try Fanuc Macro B.
(Score: 2) by joshuajon on Thursday September 03 2015, @03:57PM
Animation coding can most definitely involve algebra, geometry, and even a basic understanding of calculus. Flash ActionScript comes to mind. Want to make a circle transform into an ellipse, and then an octagon? Try doing that without maths.
(Score: 0) by Anonymous Coward on Thursday September 03 2015, @10:38AM
Another idiot who doesn't know better. Just because a programmer has not needed maths does not mean its not important.
If you program professionally, you will need mathematics a lot more than memorizing syntax. If not, a huge amount of satisfying programming work will be beyond your reach forever.
And by the way, "Html designing" is not "Programming". The words are completely different. One starts with an "H", the other starts with a "P". They are different in meaning too.
(Score: 5, Insightful) by Justin Case on Thursday September 03 2015, @10:43AM
I would agree that a programmer does not even need to know how to multiply; the programmer merely needs to understand the effect of multiplication and therefore when to use it.
However...
> I spent a lot of time learning to Google like a pro.
> you’ll need to be skilled at copying and pasting
I do my best to avoid hiring these people, and if they sneak in somehow, I look for opportunities to move them along.
How do they think those answers got into Google in the first place? Where did their copy-pasta come from?
I'll give you a clue: a programmer figured it out. If you can't figure things out, step back from the keyboard. Or in your case, probably mouse. Loser.
(Score: 1, Insightful) by Anonymous Coward on Thursday September 03 2015, @11:42AM
I transitioned myself from the world of RTFM to the "I have a prob, I search online for the solution".
But that makes sense only if you have a sufficient background to discriminate among solutions. Else your cobbled up project that does not require any math is likely to crumble when it enters the real world, with concurrent access to data, scaling, upgrading, performance issues.
(Score: 4, Insightful) by BasilBrush on Thursday September 03 2015, @11:59AM
It depends what you are doing. If you're programming something low level, like embedded software direct to the metal, or a creating a fundamental library, then you can do it all out of your head, with perhaps the occasional reference of a manual, a spec or a datasheet. But if you are creating a complete application, then you are dealing with more libraries than you can know - libraries for GUI, graphics, networking, data, io, analytics, video, analytics, logging, security, compression, etc. etc. All of which will have defects, depending on version, and depending on which OS version they are running on.
When facing something which looks like a defect in someone else's code, trying to het a library to do something unusual, or simply trying to get a library up and running with a deadline looming, the wise programmer spends 10 minutes googling, and often finding a solution on stack-overflow, rather than spending half a day trying to work the problem out all by himself.
Give me the programmer than knows when to consult stackoverflow any day, rather than the one who's too proud to seek out other people's experience.
Hurrah! Quoting works now!
(Score: 3, Insightful) by Anonymous Coward on Thursday September 03 2015, @12:02PM
Seeking out other people's experience is fine, but not mindlessly copying and pasting other people's code.
(Score: 2) by urza9814 on Friday September 04 2015, @01:22PM
I do this a lot actually. But it's never directly copying and pasting someone else's code. If you do that the damn thing won't even compile most likely. You're gonna get five lines from them that need to fit into your thousand line file, so what are the odds that they're using the exact same variable names, the exact behavior you need, the exact error checking, etc? Basically zero. Of course you have to understand how it works, or you can't copy/paste at all!
On the other hand, Google is replacing reference docs. So I'll go to Google to see if the language has a built-in function to do what I need before I go write my own. And maybe I find that it doesn't -- but here's a function someone else wrote to do what I need. Assuming it's halfway decent code, what kind of idiot *wouldn't* take advantage of that? I wouldn't be a programmer if I wasn't lazy -- the whole point is making the computer work so I don't have to :)
Also, there's really zero difference between constantly Googling code and using any halfway modern IDE. They all do autocompletion and tooltip function definitions and all that. Personally I don't particularly like IDEs, so I use Notepad and a ton of DuckDuckGo/Google/Yahoo -- I find that more efficient than fighting an editor that thinks it knows what I want better than I do...but of course, YMMV.
(Score: 2) by frojack on Thursday September 03 2015, @03:37PM
Give me the programmer than knows when to consult stackoverflow any day, rather than the one who's too proud to seek out other people's experience.
True, Stack is great for the odd little things you don't quite find documented clearly, or are non-typical things. Seldom useful for core problems.
(My last use involved converting an established blocking socket to non-blocking for the duration of a connect, and then converting it back again once the connect completes.)
Still, hardly your average use case, and nothing to do with mathematics.
No, you are mistaken. I've always had this sig.
(Score: 0) by Anonymous Coward on Thursday September 03 2015, @01:14PM
The mathematician also doesn't need to know how to multiply; he needs to know the properties of multiplication. And so does the programmer; even more so, as the programmer must know when the properties of multiplication on a computer differ from the properties of mathematical multiplication.
(Score: 1, Informative) by Anonymous Coward on Thursday September 03 2015, @01:46PM
Maybe but take something like this https://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithms [wikipedia.org]
I just googled that up. I knew it existed because I have been using it for a different thing I am working on. But there are at least 4 different sorts on there that were invented after I got my CS degree. Which of those is the best one? Without a basics of what big O means you might just pick the one with nlogn across the board. But that may not fit your data model, or how data comes into your system. Maybe just a simple bubble sort may suit you better just because of all the baggage that goes along with the other sorts. The assumption is that comparison is the costly operation. What if moving data is?
But do I memorize all the different sorts? Hell no. I have a basic idea of what they are and google up the details.
To put it in every day usage I used to memorize everyone's phone number. Now I do not bother. I make my phone do it. If my phone breaks? I have it written down on a notepad. If I can not get either well guess I am not making a call. Which I can not do because well my phone is broken...
(Score: 3, Insightful) by Hyperturtle on Thursday September 03 2015, @11:56PM
I would like to say the same thing about networking and security.
The people that can copy and paste their way into a job will find themselves in jobs suited only for those that can copy and paste. Nothing wrong with pumping gas, but I don't call those folks mechanics. I won't call someone a network engineer or a security engineer because they could be relied upon to never remember how to do anything except to find someone else who has. I *can* rely on the person pumping my gas at a full service station to at least do the job he is paid to do.
I cannot properly articulate how there are people out there, VP of Engineering at Captain Stupid Consultants for example, who sees NO problem in promising they can do a job, and then going to the client and phoning up Cisco for help, because they don't yet have an internet connection to search from to get the rest of the configuration. And it's OK because no client wants you to open the book on how to do it in front of them. Uh hello? Shouldn't you know how to do this in front of the customer without needing the book?
I have received statements of work, and have been asked to work on projects, where the documentation I was provided about the client network -- was listed as having been written by some guy at another company, because the consulting firm shamelessly lifted the document and used it as their own, and couldn't even be bothered to check the properties tab or look for watermarks. I've even contacted these folks, it's happened enough. Half of the time the documents were written at a company that both the author and one of the consultants had both worked at in the past. They think its funny. The other half of the time it was from a document posted online, and the guy had no idea people had re-purposed the document as a template at a for-profit organization. They usually do not find it to be funny--far from it.
As a consultant myself, I implore you to never accept only a PDF of documentation, and never accept only a printed copy. Network/Microsoft partners seem to like to give only three-ring binders of documentation, or PDFs. My experiences have been that it is the rare Microsoft partner that will give you a word document of your official documentation, no matter what the content.
Demand an editable document because you are paying for the documentation, and you deserve to be able to mark it up however you please and use it going forward. Then check the properties--do the needful and make sure that you are getting what you paid for written by the people you paid or will pay. You might find that like in the example above, you've found a resource that is very skilled in claiming to know a lot of things that they can reliably lift from somewhere else. If you are paying them to document your network, make sure they just didn't print a bunch of PC icons with IP addresses and then paste it into some template they found. Places charge a lot of money to give you stuff that you, who may not understand networks, think looks good but is not helpful nor accurate. And how are you to know unless you already have a good understanding of your network?
I once did packet captures on a network connection where a developer was blaming the network for his issues. (Everyone blames the network. I have no one to blame...) Ok, so what do we see. Gee EXAMPLE@EXAMPLE.COM is repeatedly being emailed and connection attempts to 10.0.0.x is being frequently made. I wonder if someone copied code they found and don't understand why it doesn't work because they found code they assume works?
Oh people sure argue with you about how they wrote it themselves until you send them the link to the site they lifted it from because you searched for what you saw in the capture and were able to find the website with example code. I can search google, too, you know.
The unfortunate thing is that one has to constantly be on guard for this behavior -- the charlatans I have seen most are either the copy and paste people, the paper cert who thought they could learn after they got on the job (or had no idea it was really that hard despite years of claimed experience) or a confidence man, the guy who confidently claims to be able to do anything yet seems to do nothing, and at best turns in crummy work that a friend of his did or a small outsourcing outfit in another country managed to bang out the night before after results were demanded from him.
Note that I haven't mentioned any women. It's not that I haven't worked with any -- I just haven't encountered any yet in IT that have actively tried to mislead me or rip me or the customer off.
(Score: 1) by loic on Thursday September 03 2015, @10:48AM
A computer, well, computes, sure you have to understand what you functionally want it to do for you, but god forbids, you do not have to understand the maths involved in most cases. The most blatant example is that generally, when a developer needs to apply a well known math formula, he just downloads a reliable and well tested library which does it perfectly.
You use the actually maths only when you need crazier performance than what all the known libraries already provide you with. And even in that case, low level optimization is not even maths.
So let's not mix up data scientists with regular coders.
(Score: 0) by Anonymous Coward on Friday September 04 2015, @09:23AM
You seem to equate mathematics with computation and formulas for functions. But mathematics is much more than that.
(Score: 5, Insightful) by morpheus on Thursday September 03 2015, @11:08AM
The two articles cited in the TFA display an amazing combination of arrogance and disrespect for professional programmers mixed in with a feeling of self-importance. Without having a clear idea of what either of the fields (mathematics and `coding') involves, both authors declare that one does not need one to succeed in the other. As a number of people pointed out, writing HTML and CSS (even Flash) is not very representative of what programmers do. I hear the same tale from engineers often: `I have never solved a differential equation in my life and I am an engineer ...'. True enough but the other side of this coin is that most of what those engineers do does not require an engineering degree either. Lets face it: most so called white collar jobs require very little education to perform and not much in the way of experience, either.
Mathematics (do not call it math, please) has become a scary word but it is an easy and straightforward subject at the undergraduate level as taught to most non-majors. The outright rejection of it as some esoteric knowledge devoid of any practical significance simply shows basic lack of culture and curiosity. The push in articles like these is to claim that one does not need any education or knowledge to do pretty much anything, all it takes is `lack of fear', `self-respect', and `determination'. If your goal is to make a website red, or fill out an OSHA report, this may be true but there are people out there who do difficult things that really matter and they deserve our respect. Those who would like to become one of those people also deserve to know that one is best served by ignoring the trash journalism and the mob opinions it promotes. Mathematics and programming are both very challenging when done at the right level and this is part of what makes them so attractive for some.
(Score: 1, Informative) by Anonymous Coward on Thursday September 03 2015, @11:55AM
Mathematics (do not call it math, please) has become a scary word but it is an easy and straightforward subject at the undergraduate level as taught to most non-majors.
The way most schools teach it makes it seem "easy" because what they teach is not truly mathematics, but rote memorization. Understanding things is clearly overrated, as the 'Google pro' in the article proves. But go to a top school and these losers would most likely be weeded out almost immediately.
(Score: 2) by fritsd on Friday September 04 2015, @02:26PM
I think you're completely correct.
I remember an anecdote from a maths student, decades ago, so maybe I remember it wrong.
Can you still do the long division [wikipedia.org] that you learned in primary school? Then read on & shiver..
He told me, that in the first month of the first year of undergraduate Mathematics study, their most important "stumbling block" lecture was something called "Introduction to Mathematics".
They had a lecture about long division, with examples.
The homework was, to *prove formally* why the algorithm always worked and terminated (for natural numbers, with a remainder, etc.).
Those students who couldn't do that by next week, were informed that they'd better switch studies to something easier, because they didn't "have what it takes" to continue their Mathematics study.
I would find that a very difficult homework assignment.
(Score: 3, Insightful) by J_Darnley on Thursday September 03 2015, @11:47AM
Come on! You don't even have to know what a number is for that. <body style="background: red"></body>
If you're not using basic arithmetic somewhere you're not really programming.
Why are people so fucking afraid of "math" and why do they boast about be so goddamn awful at it. Do people boast that they only speak one language? Do people boast that they can't read? Do people boast that they can't write?
"you’ll need to be skilled at copying and pasting things from online repositories" I hope this person also explains what a copyright license is.
(Score: 4, Interesting) by Phoenix666 on Thursday September 03 2015, @01:36PM
Because math instruction itself is so fucking awful. I didn't receive primary school instruction in other countries, only in America, so I can only speak to that. Even 35 years ago it was terribly rote, boring, and pointless. As a consequence I never really "got" math, in the sense that people in this discussion mean it. I soldiered on because I needed it in college coursework in economics, statistics, and social science, and occasionally in my career in tech, but it has been a keenly felt deficiency all my life; and it makes me sad because there are often moments when I feel I could have been brilliant in math, because I am really good at logic and abstract thought, but never can break through to "get" it because it's too late.
Now I'm seeing what's passing for math education in America now with my children, and I am truly alarmed. They get tested on proper use of math vocabulary, and how many math words they can use in a sentence. That's right, no math. They've turned math into English class. In other words the understanding of math in America is headed in an incredibly bad direction incredibly quickly, and the longer that continues the more difficult it becomes to turn around.
Against that reality, how can anyone be surprised that math phobia exists and is getting worse?
Washington DC delenda est.
(Score: 3, Funny) by Thexalon on Thursday September 03 2015, @03:22PM
The basic problem is that it is currently completely socially acceptable to be mathematically ignorant. As in, people are not socially penalized for not being able to figure out change in their heads for a $13.50 purchase from a $20 bill, much less have the slightest clue how to measure fuel efficiency given the change in odometer and the volume of gasoline purchased since the last fill-up. And forget any understanding of compound interest! Heck, the % symbol also thoroughly confuses a lot of people.
And to make things worse, primary school teachers are often among those who don't really understand math! I lucked out - my absolutely wonderful second grade teacher did really understand and enjoy teaching math - but lots of teachers in the primary grades see math as a series of facts to be memorized rather than a set of concepts and processes that enable you to solve real-world problems. For example, I was carefully taught to memorize that 7x7=49, but not taught why that was so, much less that (7x6) + 7 = 7x7.
The thing is, that mathematical ignorance is really really profitable to the financial companies that do have the mathematical understanding of what's going on. Remember how I said nobody understood compound interest? That is handy if you're trying to get people to be happy about paying 26% on a credit card.
The inverse of "I told you so" is "Nobody could have predicted"
(Score: 0) by Anonymous Coward on Thursday September 03 2015, @04:23PM
but lots of teachers in the primary grades
The problem is much larger. Even lots of college and university teachers feel the same way.
(Score: 2) by Thexalon on Friday September 04 2015, @01:01PM
I agree that some university folks teaching humanities feel the same way, but I consider it more of a problem that kids are getting math taught wrong and badly from the moment they first enter school, because that scares them away from it before they can even start to learn it properly.
The inverse of "I told you so" is "Nobody could have predicted"
(Score: 1) by BeaverCleaver on Thursday September 03 2015, @06:52PM
As usual, Maddox has an opinion on this:
http://thebestpageintheuniverse.net/c.cgi?u=math [thebestpageintheuniverse.net]
(Score: 3, Insightful) by bradley13 on Thursday September 03 2015, @11:53AM
Of course, real programmers never write boolean logic statements (e.g., in a IF), where they need to understand the commutativity, associativity and distributivity of the operators. Nor would real programmers ever write SQL queries, where you have similar properties for the relational operators. Nope, don't need to know any math for that.
I have never seen any programmers wonder why their computed integer values are incorrect, when they exceed 231-1. Nor wonder why they get strange rounding errors when trying to calculate currency amounts using floats. Nope, never happens.
Matrix transformations come up a lot in path-finding. Geometry comes up in games, or any program that needs to do some sort of physics. Working with large amounts of data, you had better understand computational complexity.
Sure, none of that is higher mathematics, but programmers use math like this constantly.
Everyone is somebody else's weirdo.
(Score: 0) by Anonymous Coward on Thursday September 03 2015, @11:58AM
That depends. Are you going to be some copy-pasting loser web 'programmer', or a programmer who actually understands what they're doing? Lots of people are apparently content being the former.
(Score: 1, Insightful) by Anonymous Coward on Thursday September 03 2015, @02:56PM
I do not think that word means what you think it means. Somehow formal education keeps doing Computer Scientists a disservice in equivocating math and logic. Math is one language of logic. Programming is another. Syllogism is yet another. You need to be impressively, shockingly good at logic to even have a chance at being a decent programmer. The same skill is necessary in mathematics, but that does not mean that programming is math. The only time programming is math is when a pure mathematician from 1850 could understand it without help. For all other instances, it is applied logic. And that is a much more powerful personal trait than "being good at math".
(Score: 0) by Anonymous Coward on Friday September 04 2015, @02:51PM
You may think whatever you wish, but mathematics is really the megathing that contains (formal) logic as a subfield, not the other way around. Moreover, while you need a language to express mathematics, mathematics itself is not a language in any traditional sense(*). Whether Gauss could understand some subfield of that "without help" is just as relevant as whether Hippocrates would be fluent with modern medicine.
Where you are right, though, is that programming involves hell of a lot more than math. Abstract mathematics couldn't care less how you name your variables but your cow-orker does.
*) You could describe it as a some sort of divine language of universe but that pretty much underlines the point.
(Score: 4, Insightful) by inertnet on Thursday September 03 2015, @12:11PM
To code you need an organized, analytical mind that can analyze a problem, cut it into smaller parts if needed, and then come up with solutions.
(Score: 1, Informative) by Anonymous Coward on Thursday September 03 2015, @02:07PM
To code you need an organized, analytical mind that can analyze a problem, cut it into smaller parts if needed, and then come up with solutions.
The same can be said about disposing of a body.
(Score: 2) by meisterister on Thursday September 03 2015, @10:24PM
Your point being?
(pushes suspicious bag under desk)
(May or may not have been) Posted from my K6-2, Athlon XP, or Pentium I/II/III.
(Score: 3, Insightful) by Rich on Thursday September 03 2015, @12:47PM
Don't complain about such people in the field. This attitude keeps us nerds well supplied with jobs. Eventually, the phone rings and some desperate project manager asks whether we are available, because "it just stops working once a week.". True, we don't get the more satisfying job to lay down a solid architecture from the start, but it pays the bills :)
The googling thing is just "the missing manual". I find that if I have to cater to Mac legacy stuff, I pull out my dead-tree Inside Mac I-VI, look it up, and find what I need. These books were very, very good; that style probably reached it's peak quality around the "New IM" series. With new stuff, the documentation has gone so far downhill (either by lacking, or by impractically wide scattering) that one becomes more or less dependent on stackoverflow. For the how-to-use snippet, and often, as important, for considerations that used to be in "Note: ..." or "Caution: ..." boxes in the books and that must be taken care of for a stable software.
As for hard math, it's really only needed once every couple of years, unless you do computational geometry, scientific stuff, or advanced algorithms. Much of todays internet-related work consists of stupid data shuffling (of which I somewhat think that if you have to do it, the architecture is wrong). What's important is a full understanding of the whole vertical application stack, from user actions to bits (that may or may not include math). If that understanding is lacking, eventually nerd work is generated. $ker-ching$
(Score: 3, Insightful) by subs on Thursday September 03 2015, @12:55PM
You *do* need to know math write good code in most areas. The problem is, what you were told is "math" is just a tiny little subset of it (arithmetic). Geometry is math too. Set theory is math. Abstract algebra is math. Graph theory is math. Yes, even logic is math.
I hate this idiocratic millenial attitude that you can suck at theory and still perform well. Get your heads out of your asses and study.
(Score: 0) by Anonymous Coward on Thursday September 03 2015, @03:02PM
Logic is not a subset of math. Math is a subset of logic. Anyone that takes the time to know what logic is understands that priority problem.
(Score: 2) by melikamp on Thursday September 03 2015, @03:55PM
(Score: 2) by subs on Thursday September 03 2015, @05:34PM
which is what [...] gp must have alluded to
I was, AC was probably just being a dense little philosophy major pretending his/her field is still relevant.
(Score: 0) by Anonymous Coward on Thursday September 03 2015, @08:13PM
Syllogisms are not a subset of math. You can tell because no one in any math department has ever taught a class concerning it.
(Score: 1) by khallow on Thursday September 03 2015, @04:02PM
Logic is not a subset of math. Math is a subset of logic.
Math is a unique field where there are several different subsets of math which happen to contain all of math as subsets in turn. Logic is far from unique here. We also have category theory, theory of computation, measure/integration theory, discrete math, and number theory as further examples of this phenomenon.
(Score: 2) by subs on Thursday September 03 2015, @05:32PM
Math is a subset of logic.
Nice idea, except that Kurt Gödel proved [wikipedia.org] you wrong almost a century ago.
(Score: 0) by Anonymous Coward on Thursday September 03 2015, @08:17PM
Gödel's incompleteness theorem does not mean what you think it means.
Math is dependent on logic. Logic is not dependent on math. For math to work it must be logical. Logic works without any use of math, it is merely a convenient medium. Anything else is ego-stroking.
(Score: 2) by melikamp on Thursday September 03 2015, @10:51PM
IMHO subs does understand the incompleteness just fine. And you gotta tell us which logic you are talking about: the nebulous philosophical concept or the formal mathematical one. The former one is not needed by math at all, and the latter one, like I said above, has produced a very limited impact so far.
Going back to what subs said, Gödel's result did crush the last remaining hope of deriving interesting mathematical facts from logical principles alone. Incompleteness basically says that even when equipped with an infinite (but recursively enumerable) set of axioms, a first order system is incapable of settling some questions about natural number arithmetic, let alone anything more fancy. I would even step back and say that talking about recursion already presupposes a lot of math, so all you really can do as a 100% pure logician is come up with statements like "for all x and for all y, either x < y or it is not the case that x < y". Sure, that's math too, but not nearly all of it ;)
(Score: 2) by subs on Friday September 04 2015, @01:00AM
Thank you for capturing my thoughts exactly and let me say I admire your willingness to engage with obviously dense AC.
(Score: 1) by guizzy on Thursday September 03 2015, @01:51PM
It all depends on what you code of course. The programmer making in-house software for an enterprise for payroll or to organize an employee list probably doesn't need much. I expect people writing code that has to be highly optimised like device drivers, computer graphics engines, database software to be pretty good at maths. So would be the people in encryption and AI...
(Score: 2) by maxwell demon on Friday September 04 2015, @07:01PM
If he has, for example, no clue about strict weak orders, chances are high that sooner or later he'll have a sort go awfully wrong because his supplied less-than function doesn't fulfil the requirements of a strict weak order.
He may not know the term "strict weak order", but names are just aids for communication, not what mathematics really is about. He better should know the concept, though.
The Tao of math: The numbers you can count are not the real numbers.
(Score: 2) by cafebabe on Monday September 14 2015, @08:25AM
A friend writes payroll software and it is incredibly fiddly because much of the complexity concerns boundary conditions around date handling. For example, whether someone retires before or on a birthday (or not). And this differs by age, sex, country and role.
1702845791×2
(Score: 2) by fritsd on Thursday September 03 2015, @02:14PM
Some of my oldest computer science studybooks say "Faculty of Mathematics".
Do you want to know why?
Because, in that time, Informatics/Computer science wasn't yet important enough to re-name the faculty to "Faculty of Mathematics and Informatics" :-)
I vaguely remember some prospectus saying: "if you want to study informatics in Nijmegen: begin your first year studying mathematics, and then by next year you can switch over to the new Informatics curriculum"
(How many of you know how insanely hard the first year of mathematics study is? And I say this as a chemist)
So now when I read that "you don't need to know math to become a programmer" I think "that may be true, but you won't ever understand how much better some programmers are than you"
It's a bit like solid state chemistry without group theory, or microbiology without exponential functions, or quantum chemistry without differential equations. Too shallow to be of real use for problems that somebody else in the world *hasn't* already solved and published.
(Score: 2) by zugedneb on Thursday September 03 2015, @02:31PM
a lot of people think about themselves as programmers, but they are not.
they are configurors.
they configure packages an libraries of things to work.
Java is not programming in most cases, it is configuring.
thus:
programming =! configuring
old saying: "a troll is a window into the soul of humanity" + also: https://en.wikipedia.org/wiki/Operation_Ajax
(Score: 2) by tibman on Thursday September 03 2015, @04:02PM
That appears to be an assignment operation of the opposite of configuring. It reads like this: programming equals not configuring. Which would overwrite any value programming had because not configuring encompasses a lot of activities. I think you were wanting programming != configuring which is a comparison operation and not an assignment. Of course, you may have been writing in a weird language too.
SN won't survive on lurkers alone. Write comments.
(Score: 2) by zugedneb on Thursday September 03 2015, @04:09PM
actually, I have so much stuff on my desk for the moment, that I have some problems reaching the keyboard, but thanks, bro... but, yeah, I know.
anyways, do you agree or not? that is the question.
old saying: "a troll is a window into the soul of humanity" + also: https://en.wikipedia.org/wiki/Operation_Ajax
(Score: 2) by tibman on Thursday September 03 2015, @04:54PM
Haha, yes, i agree for the most part : ) There seems to be some threshhold where configuring/coding becomes programming.
SN won't survive on lurkers alone. Write comments.
(Score: 2) by meisterister on Thursday September 03 2015, @10:36PM
If you want this to be that broad, then why not say that programming in assembly language is also configuring? All you're doing is putting together a set of numbers (ie. configuration parameters) to make the hardware act a certain, predefined way.
(May or may not have been) Posted from my K6-2, Athlon XP, or Pentium I/II/III.
(Score: 2) by zugedneb on Friday September 04 2015, @03:29AM
I helped a dude with a small school project, to make a calculator.
He knew some algebra and .net, and should have used the string functions and gui functions to make a calculator in dotnet.
But I wanted to torment him, so I tricked him in to making a calculator with the gui buttons and display, but in the C way, implemented as a state machine with error handling...
to my delight, he was tormented by that :D
old saying: "a troll is a window into the soul of humanity" + also: https://en.wikipedia.org/wiki/Operation_Ajax
(Score: 0) by Anonymous Coward on Friday September 04 2015, @04:13AM
I would say programming is to configuring as is developing a circuit to soldering together a kit. Both are required to get the end result, and often doing the latter first is what gets people into doing the first.
I wouldn't use the term configuror, just programmer (techincian), and the developer is an engineer.
(Score: 2) by srobert on Thursday September 03 2015, @03:00PM
Here's a question for the Brits and others who say "maths". When we say "math", does it just somehow sound wrong to you? It is merely a colloquial difference and shouldn't matter, yet "maths" sounds wrong to me.
(Score: 0) by Anonymous Coward on Thursday September 03 2015, @03:35PM
It sounds like you only know one tiny part of mathematics.
That and it sounds too much like the existing word: mat, i.e. door mat.
There are some Americanisms that sound okay and hey kid, we use them more and more. Others sound as infantile and childish as SMS TXT Spk or whatever the children are speaking now probably sounds to you.
(Score: 2) by cafebabe on Monday September 14 2015, @08:28AM
Statistics -> stats.
Mathematics -> maths.
Simples.
1702845791×2
(Score: 3, Informative) by kurenai.tsubasa on Thursday September 03 2015, @03:27PM
The Slate article is simply jaw dropping. This is a new low in the media siege against tech and an insult to women programmers everywhere.
Ms. Fine, you should be ashamed of yourself.
Feminism is dead. Math is hard. Everyone can code.
(Score: 2) by Subsentient on Thursday September 03 2015, @07:38PM
I can't remember how to do addition on paper, and I do a lot of work in C. The Epoch Init System [universe2.us] for example.
“Man is not a rational animal; he is a rationalizing animal.” ― Robert A. Heinlein
(Score: 0) by Anonymous Coward on Friday September 04 2015, @09:39AM
Don't think that just because the school subject was called "mathematics" that you actually learned mathematics there. Memorizing and following an algorithm is not mathematics; otherwise computers would be excellent at mathematics.
(Score: 0) by Anonymous Coward on Friday September 04 2015, @08:28PM
Hey numbnuts, doing addition on paper is exactly memorizing and following an algorithm.
(Score: 2, Informative) by brocksampson on Friday September 04 2015, @04:58AM
I am a physical scientist and an experimentalist and I end up doing quite a bit of coding to interpret data and to see how those data comport with theory. That programming involves transforming huge matrices and sets of numbers where small mistakes with precision, sign, type, etc. can ruin months of work. But I am absolutely terrible at math(s), so I rely on theorists (who in turn rely on real programmers) to write libraries and such that I can then apply to complex experimental problems. But they are not programmers either and do not write shiny UIs with help balloons (or documentation), which means that I end up doing a substantial amount of coding and scripting to generate fancy plots from my data. The beauty of modern computing is that I can know exactly how a series of experiments led to a particular plot and at the same time a theorist can know exactly what my data must have looked like to get their equations to make said plot. That back and forth is essentially how scientists talk to each other in interdisciplinary fields where no one can be an expert at everything. My expertise is complex experiments that are incomprehensible to theorists whose expertise is mathematics that are incomprehensible to me. Yet we often meet, intellectually, over a piping hot git repository of Fortran. (Of course, none of are stupid, either; we all deeply understand the scientific questions at hand, just in different ways.)