|
Where I work there was some legacy code written by a developer who was a mathematician, nobody understood the code he had written and most had to be rewritten
|
|
|
|
|
I've had plenty of math, including differential equations,partial differential equations, 2 years of advanced graduate engineering math, etc.
When I look at some of the code I wrote a few years ago, I can conclusively report that math ability has little to do with most programming.
CQ de W5ALT
Walt Fair, Jr.PhD P. E.
Comport Computing
Specializing in Technical Engineering Software
|
|
|
|
|
The only time I (wrongly) thought I needed advanced math was when I had to write a bandwidth calculating application for our Video surveillance software
|
|
|
|
|
For certain types of programming, calculus is unnecessary. For scientific programming, engineering, and some types of business programming, it is essential. A well-rounded developer should know calculus, but one may still make a living writing software without it.
I have found that many developers (especially on the UI side) don't know the "tools of the trade". They are then surprised or disappointed when the only positions they get are low-level, or that they are fired when they can no longer put in 60- to 80-hour weeks.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
My math suuuuuucks, and yet I still totally agree. I don't find myself using it much for LOB applications, but what your typical dev doesn't realize is that those who can only do LOB and nothing else are slowly being replaced by tools like Salesforce, SaaS form generators, etc. And AI is only going to make that worse.
Now, does it have to be math expertise as that something extra? IMO nope (basics help though) but a good dev needs something to distinguish themselves. Even if that something is just people skills. This industry is too crowded now for the average, run of the mill coder to be treated like a god just because they know a thing or two about these newfangled computer thingies. Those days are gone.
To give an example, I've seen job postings for lawyers where they only wanted a programmer with legal experience. Just saying I can throw a textbox on a screen isn't enough for the better jobs.
Jeremy Falcon
|
|
|
|
|
I've read an article a couple of years ago, about a study in India. They tried to find a correlation between students results in maths and programming. They found none. Whether people were good or bad in math, it didn't make any difference for their programming.
However, they did find a strong correlation between language skills and programming.
|
|
|
|
|
I could see that as well. My point is while I don’t think math is the only way to gain an edge, it’s one of them.
It’s important to note btw that correlation doesn’t always equal causation. Maybe it does but it’s no guarantee. Also, we’d need clearly defined parameters as to what constitutes “good”, since that can be subjective, before treating g a study as the gold standard.
Anywho, the point being that devs need something more to be considered “good”. IMO maths can be a part of that or even something else... like reading comprehension.
Jeremy Falcon
|
|
|
|
|
Daniel Pfeffer wrote: For scientific programming, engineering, and some types of business programming, it is essential
But the vast percentage of the market does not fall into that.
I have never needed calculus.
Only time ever that I needed anything remotely advanced was when I needed to solve storing data for running Standard Deviation calculations without storing all of the preceding data.
Daniel Pfeffer wrote: I have found that many developers
I have found that many developers (period) don't know a lot of things. Myself I haven't programmed a UI in more than 20 years.
These days I recognize that humans and programmers are average. In some aspects they might be superior and in other ways they might be lacking.
Daniel Pfeffer wrote: They are then surprised or disappointed when the only positions they get are low-level
While the 'superior' ones think they are demonstrating their IQ by requiring interviewees to program odd ball programming questions which the interviewer found by doing a google search. The interviewers of course have no concept about how that objectively measures anything nor do they even know the principles on how one could determine what that objectively measures.
|
|
|
|
|
jschell wrote: when I needed to solve storing data for running Standard Deviation calculations without storing all of the preceding data.
That algorithm is mathematically equivalent to the algorithm of "calculate average, then use that to calculate standard deviation", but is numerically not equivalent. Roundoff errors can cause the variance to become negative, causing an error when calculating the standatd deviation.
There was another case where, instead of calculating the moving average of a sum by storing the last N values, they subtacted the oldest value from the running total and added the latest value. The idea was to save computation time. After a few months, the connection between the true moving average and the calculated moving average was purely coincidental.
These are two of the reasons why advanced courses are necessary, even when one is dealing with "simple" issues such as these.
Numbers are sharp things. If one doesn't treat them with respect, one will get hurt.
jschell wrote: humans and programmers are average. In some aspects they might be superior and in other ways they might be lacking.
True, as far as it goes. the average person in the street can certainly be taught a programming language. Producing commercial-quality software is another matter. This requires a certain amount of skill, most of which is not found in the general population.
jschell wrote: requiring interviewees to program odd ball programming questions which the interviewer found by doing a google search.
Agreed. Most of those questions have no purpose other than exercising the interviewer's ego.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Daniel Pfeffer wrote: That algorithm is mathematically equivalent to the algorithm of "calculate average, then use that to calculate standard deviation", but is numerically not equivalent. Roundoff errors can cause the variance to become negative, causing an error when calculating the standatd deviation.
Not sure what you are referring to.
My degree is in mathematics. I used a proof to rederive the summation series to intermittent summations. (I also coded it including storage.)
So yes I am sure that the algorithm that I used was doing the correct calculation.
Daniel Pfeffer wrote: The idea was to save computation time.
Ah. So just to be clear I did not 'use' an existing algorithm. I used mathematics to derive a different way to compute it and used a proof to demonstrate the equivalence.
Daniel Pfeffer wrote: These are two of the reasons why advanced courses are necessary, even when one is dealing with "simple" issues such as these.
Rather certain that none of the computer science classes that I took would have allowed me to solve the problem.
But as I pointed out that was one single time in a career that has spanned decades.
Daniel Pfeffer wrote: This requires a certain amount of skill,
It requires experience. But experience also is not a guarantee of success. And a college degree absolutely is not an indicator of success in doing that.
|
|
|
|
|
When I did my 4-year CS degree, we had to take Advanced Calculus and Linear Algebra in 2nd year. I found both very challenging, partly because the profs were awful, and never used either again. Largely a waste of time given the type of software I ended up doing for most of my career. What I found far more useful was a 3rd year course in Combinatorics and Graph Theory, perhaps my favorite, though close runners-up were Operating Systems and the Electronic Music course in the Faculty of Music, taught by one of the Composition profs. He was a Schenkerian and opened my eyes to how some of the traditional Harmony that I'd studied was either needlessly complicated, misleading, or outright wrong.
|
|
|
|
|
Either I'm a terrible programmer, or yes.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
"Alcohol and Calculus Don't Mix. Don't Drink and Derive."
|
|
|
|
|
Good one! Derive
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
When I was a CS major in the late 80s there was a ton of math including calc I and II. I barely made it through calc I...in fact I took it twice to improve my GPA. Soon after, I dropped out and spent 10 years doing shift work in a box plant.
From what I remember, the concept of arrays, especially multi-dimensional arrays, was what culled the herd more than anything else.
"Go forth into the source" - Neal Morse
"Hope is contagious"
|
|
|
|
|
Almost did me in too
Hadn't thought about it in 40+ years - reset timer to 40 MORE years
|
|
|
|
|
I have a grandson who won a robotcs championship with the code he wrote.
I'd say he must be a good programmer.
We'll see how he does in calculus when he gets tohigh school!
CQ de W5ALT
Walt Fair, Jr.PhD P. E.
Comport Computing
Specializing in Technical Engineering Software
|
|
|
|
|
Hmm. I received my B.S. in computer engineering in 1984. I earned 205 credit hours, 28 of which were math: Calculus I-IV, differential equations, and matrix algebra. While I've not used a great deal of the math I learned, the experience did help teach a valuable skill: representing real-world problems in abstract form so that they may be addressed in software and/or hardware. It also taught the idea that problems can have multiple solutions and the choice of method can have a profound effect on the outcome.
Software Zen: delete this;
|
|
|
|
|
I never studied hardcore maths, and I'm nowhere near an expert in it. But, I totally agree man. I think every programmer should at least learn the basics. If you can't least read an equation and translate it into code, then do better.
Jeremy Falcon
|
|
|
|
|
ditto gary
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
Gary R. Wheeler wrote: representing real-world problems in abstract form so that they may be addressed in software and/or hardware
Presumably you had already had word problems and algebra before you even got to the university. Seems like those should have taught you that.
|
|
|
|
|
Lol - I left school at 15, did not even finish high school, I have no idea what calculus would do or be used for and yet I had a highly successful career writing business solutions. You could not take that path today but in the 80s/90s it was possible.
Never underestimate the power of human stupidity -
RAH
I'm old. I know stuff - JSOP
|
|
|
|
|
I would say they cannot be good programmers.
Note that the question is not if a one can be a good programmer without knowing freshman calculus.
What is being asked (at least in my understanding) is if a person that lacks the mental ability to understand freshman calculus can be a good programmer.
|
|
|
|
|
Short answer: YES.
The long answer, (from the long article you linked to) is DUNNO. OK... that's not a long answer either. The real long answer, is: the article is really about whether including calculus in a Computer Science degree is:
a) a good idea
b) necessary
c) putting students off taking CS degrees.
(a) and (B) weren't really answered
and (c) was: yeah. it is putting people off CS
So my conclusions are:
- this question would have been more suitable to Quora than Code Project
- the article linked to, was very long and mainly pointless
- cats are better than dogs - just as relevant as all the other %$&*.
|
|
|
|
|
Quora is a horrible place to ask questions. I would say Reddit or Facebook. But otherwise, you're right.
|
|
|
|