Can a student that can't even handle freshman calculus possibly be a good programmer?
-
I failed calculus the first time I took it. It was a combination of my having too easy a time in high school that I did not have good study habits and a visiting professor who was so unintelligible that the college replaced him after a few weeks. Higher is needed by computer programmers when they are going to convert a client that uses higher math idea into code. In my close over 30 years of coding I've never needed to code anything beyond algebra and that was in cooperation with a math major/computer minor who did the math while I did everything else. The reality is, even though I took a number of higher level math courses in order to get my degree in computer science, I only remember on bit where I saw how to convert certain math functions into a code type would possibly come in handy. I'd still recommend higher level math for anyone working with graphics or engineering, but that's more to give you a sanity check when looking at the results of testing to ensure the libraries you are referencing are working correctly and you are correctly accessing them. For 99%+ of coders out there you won't need much beyond the math used by regular finance people. I honestly don't know what "maths" the quants use for the stock market, but it might be more exotic and in line with dot matrix theory or chi squares of the like.
Richard
-
A lot depends on the particular programming field the student is considering. When I was actively programming, I relied heavily on advanced maths, including calculus and beyond. But for most applications, a student only needs to be able to clearly define problems and formulate solutions. In most cases clear, logical thinking is more valuable than advanced math.
Will Rogers never met me.
-
They have to provide a wide range of topics since they have no clue to what kind of programming you're going to end up doing. I started college as a math major but ended up switching to electrical engineering my junior year. My first job out of college got me into embedded programming (1978, assembly language days). I still did some hardware engineering so math was needed for things like circuit analysis but on the computer side I didn't really need high level math. In the second half of my career I was learning/developing DSP algorithms and math was fairly important there. I really enjoyed DSP programming.
-
Considering that the large majority of people programming today don't deal with infinitesimals, differential equations, video/audio compression (or encryption), floating point matrix operations...all of it the stuff of simulators and videogames...it doesn't surprise me. Maybe you could get away with building a kernel and a compiler if you knew just algebra and had a hankering for Chomsky.
-
Even without the actual math, there's definitely common concepts that apply, so I would say if you have the mindset that can handle calculus, then you might find yourself having an easier time than someone who's never done any of it. YMMV and it depends on your career path.
-
Even without the actual math, there's definitely common concepts that apply, so I would say if you have the mindset that can handle calculus, then you might find yourself having an easier time than someone who's never done any of it. YMMV and it depends on your career path.
Greetings, When I started out, I was going to be an engineer (Civil or EE - wasn't sure). Took Fortran (yes that long ago) as my first programming language. 4th Semester Calculus was my downfall with 49% as my final grade. I then switch to MIS and finished my degree in that. Additional math courses were non-existent except for Statistics. I managed a 91% average in those 3 courses. The Calculus courses were interesting and I used them at one clients location. However as a rule, wasn't needed. Critical Thinking? yes! Logic? Yes! Calculus? Not really... Conceptualize multi-dimensional array? Yes! Slide Rule? Fun but not really needed... Math does help but Calculus doesn't seem to be necessary,
Cegarman document code? If it's not intuitive, you're in the wrong field :D Welcome to my Chaos and Confusion!
-
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"
-
Sure they can. Even back in my undergraduate days (82 - 86), my school had two different paths to becoming a "programmer" (using your word). The Computer Engineering degree was in the Engineering department and was identical to the Electrical Engineering degree for the first two years, so calculus physics and chemistry were requirements. The Computer Science degree was in the Arts and Sciences department, and only had some logic-type math class requirements, but no physics nor chemistry per se; they had a breadth requirement for some 100-level science class but they could pick which one. My roommate was a CS and I was a CpE. We both have had very successful careers in "programming." I've found the most important thing to being a success in programming is the ability to know how to solve problems. Know your problem domain, know what tools and languages are available and what support they give you, know the "usual" approach to solving a related problem, know when to throw out the usual approach, and most importantly, know that you don't know everything.
Be wary of strong drink. It can make you shoot at tax collectors - and miss. Lazarus Long, "Time Enough For Love" by Robert A. Heinlein
Exactly Plus the sheer enjoyment of the job. As a beginning, entry-level report programmer at a small local Savings & Loan, many days I left feeling as though I had not worked at all because I was having so much FUN writing (easy) code - AND being paid for it :laugh:
-
Greetings, When I started out, I was going to be an engineer (Civil or EE - wasn't sure). Took Fortran (yes that long ago) as my first programming language. 4th Semester Calculus was my downfall with 49% as my final grade. I then switch to MIS and finished my degree in that. Additional math courses were non-existent except for Statistics. I managed a 91% average in those 3 courses. The Calculus courses were interesting and I used them at one clients location. However as a rule, wasn't needed. Critical Thinking? yes! Logic? Yes! Calculus? Not really... Conceptualize multi-dimensional array? Yes! Slide Rule? Fun but not really needed... Math does help but Calculus doesn't seem to be necessary,
Cegarman document code? If it's not intuitive, you're in the wrong field :D Welcome to my Chaos and Confusion!
cegarman wrote:
Math does help but Calculus doesn't seem to be necessary,
Right. My main point was that if you have the mindset that can cope with Calculus, you might have an easier time coming up with new ideas than someone who hasn't been exposed to Calculus at all. That being said, I've been coding professionally for almost 30 years now, and in all that time I don't think I've ever written any math code that amount to anything more complex than calculating an average.
-
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.
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.
-
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;
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.
-
If someone is getting a Computer Science degree to be a computer scientist, then yes they should learn all the math as actual CS is heavily math based, with computer science essentially being a specialized area of mathematics. However, if someone is getting a CS degree to become a professional software developer, then for most CS jobs you wont need the math, as many of the replies have pointed out. The biggest issue I see is that somewhere along the way it was decided that to get a job as a developer, a degree in CS (or related field) became required, which is absurd. What is actually needed is more of a "trade school" for software developers that is accepted by the business community. Coding Boot Camps dont cut it as they are just too short, it should be a couple of years of study at least, but focused on software development, not computer science. Which wont happen - the corporate world has turned university studies into de facto trade schools and they're happy with it being that way. So, people who have no need for 3 years of higher math will continue to have to suffer through it, and we will continue to "weed out" people who would otherwise be fine developers for 80% of the programming jobs out there unnecessarily. Of course, there are many programming jobs that DO need that level of math, and those are the jobs that should be listing a CS degree as a requirement. Most jobs should not have that requirement though.
Gjeltema wrote:
Computer Science degree ... What is actually needed is more of a "trade school" for software developers that is accepted by the business community.
At least in my experience a CS degree by itself is useless as a measure of someone working as a developer. What often happens though is that while they are getting that degree they actually get a job through the school which allows them to get paid to program. That experience, not the degree, is what gives them the knowledge to get other jobs.
-
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.
-
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"
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
-
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
-
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 :-\
-
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.