Discussion Locked

I Just Want to Program! Don't Make Me Learn Math!

0 helpful
473 replies
Closed to new repliesThis discussion is closed. It stays readable, but it takes no new replies.

http://www.oreillynet.com/onlamp/blog/2007/05/i_just_want_to_program_dont_ma.html

Now, I have just read this article on the Orielly web site. And I have to say, I disagree. And for several reasons.

As my post to the article states, in the business world Math is a requirement. Everything from knowing various accounting principles(its math) to being able to understand the equations of some statistical requirement(insurance). Continuing this further, when working for a workers compensation state agency. We calculated the amount we would pay on any medical procedures based on a percentage of Medicare with this figure being worked off the last years percentage if I remember correctly.

In my experience, if you could not understand various equations. You could not fulfill the requirements of the task. This does not take into account where a person may come out of school and go into various other programming backgrounds(science, graphical).

I don't understand how math should not be a requirement. A schools job is to broadly prepare you for as many possible work environment as possible. If they do not provide a math background to your education, they severely limit your possibilities in what backgrounds you may want to choose.

[i]Edited to add:[/i] If you read any of georges columns, you will notice he does statistics constantly on the various hardware/software that he tests. I don't know how reliant it is anymore, but I use to read application dumps when being on call at 3am. Not being able to convert hex to decimal and vice versa would have been an issue. I have also seen db admins use math to find the position of a record within a database when their was integrity problems. How can a Computer science major not have a math background>

Dan

473 replies

by absolutely

How much programming do you want to be able to do?

Thanks to the "astronomical" number of clock cycles, and resulting abstraction layers, there are some "development" environments that allow math un-enthusiasts to do about as much as "programmers" as they want to.

The opening post implies, and several of the comments after it imply more strongly, that "the problem" with the classes in which they struggle is the pedagogy. Those of you who have read some of my other posts can guess how much sympathy I have for that stance.

But I'm feeling grouchy, so I'm going to say it anyway. What a pathetic, transparent cop-out! If you're really worthy of the subject you claim you "want" to understand, you'll get over the pedagogy and figure out how to figure it out. If you can't learn the subject without changing the teacher, you aren't cut out for ______. It's that simple.

by deepsand

Well, I guess that depends on the school.

If they're just training people to use an IDE & prepackaged function libraries, then little to none. Of course, I don't call those with such limited skills "programmers," & I certainly won't trust their work unless someone with math skills verified the results of [u]any[/u] calculations performed by their works.

As for the real Comp. Sci. major, I don't see how he could even pass many of the required courses without a good handle on various math skills.

by danlm

Ok, I'll use insurance as an example. Oi, your job as a programmer is to take historical loss and premium information over a 20 year period(I've seen this requested), crunch the numbers to come up with the growth that has occurred in specific demographic area's(large cities versus rural), and to project the loss's for the next 10 years. This information will be used to calculate the amount of reserve that you wish to maintain. And if the loss's are high enough, wither you wish to continue offering coverage in specific area's. I mean, this is the type of information that is asked for ALL THE TIME. Hell, they may use this information to modify their rate teirs.

And thats only in my small area of expertise where mathematical formula's are a must. Hell, that's not even touching the medical arena of statistics. I work in a publishing company right now. They still are going to crunch numbers of the cost factor of the raw materials to create phone books along with the cost's for their artist's and sales to determine rates they will charge based on the population of a specific area.

What kind of programming do these people do????

Dan

by deepsand

I'm no stranger to the mathematics involved in the insurance industry; although it's been a while, and I'm no longer as quick at the task as I once was, I can still do the really esoteric stuff, like actuarial calculations.

I've seen "real" programmers choke when tasked with developing an application which included a requirement that net present values of life policies be calculated. This despite that fact that such calculations are not unique to such contracts, but have general application in a myriad financial contracts or transactions.

Hence my stipulation re. independent validation of a programmer's work.

Unfortunately, this situation has been further complicated by the position of systems analyst having been in great part replaced by the programmer/analyst. Duh. Talk about the blind leading the blind!

by wayne m.

The vast majority of programming involves data entry and state transitions. I am sure there are specific problem domains that require the implementation of mathematical equations, but even here it is rare that the equation will be derived by the programmer. Equations of any business significance will have typically been derived by others and validated through manual use. It is the role of the programmer, in this area, to be able to recognize the symbols and translate them into computer code.

In many ways, computers bypass the need for mathematics by allowing people to apply brute force approaches to determine an answer rather than deriving an equation to model the situation.

There is plenty of knowledge to be learned about computer programming. There is no need to envy mathematics and hope it will convey some sense of higher purpose on programming.

by paradoxtna

Who are you programming for and who do you expect to program for over the course of your career? You may be surprised by the hats you have to wear. Over my 30+ year career I moved people from section to section, from project to project as they were needed. Those who could adapt survived. Thos who couldn't didn't.

I have yet to terminate anyone for lack of core competence in their chosen discipline, but I have terminated more than a few for inability to work and communicate with their internal and external clients. Those without strong competencies in math, english, a smattering of other disciplines, and STRONG PEOPLE SKILLS were usually the ones I had to let go.

Sorry, no shortcuts to a successful career.

by tony hopkinson

as far as Im concerned that's advocating an invisible listBox control because of an inability to generate a basic list class.

That's a brute force approch as well.

I don't see any of the math 99.999% of us do as developers as difficult at all, most of it is application of a technique, an algorithm, should be able to manage that shouldn't we?

by deepsand

Without a sufficient understanding of the underlying mathematical concepts involved in a particular task, one cannot be assured of selecting either the correct, or best, formula(e) and/or data, let alone validate the results.

It's the sliderule vs the calculator mindset. With the former, one needed a thorough understanding of the problem in order, for example, to determine the numeric magnitude of the computed result; with a calculator, one can mis-key by orders of magnitude and be oblivious to the fact that the result is erroneous.

by ritu825825

Dan, you are absolutely correct. Because in each and every scenerio of the programming, mathematics is involved in some way or the other. However, a programmer may or may not be the perfect in maths. But his logics should be clear about what he/she is going to program.

Developing program is not just putting the ingredients to the software. This requires a lot of optimization in terms of execution time and memory management. For this you have to again follow some or the other rules and formulae or the algorithms which again contributes to the mathematics.

by azdunes1969

To those of you who believe that math is not an important factor of programming I would like you to reconsider your thinking. If you dig right down to the core of things you will realize that mathematics is the equivalent of what DNA is to humans. The problem with this argument is that ?programming? has been redefined over the years and today?s applications developers have been spoiled by having vast quantities of validated libraries handed to them on a silver platter. How can a triangle or any shape for that matter be drawn to the screen, be resized, or manipulated without knowing basic trigonometry? Many of today?s developers would say they would locate a library to handle this task but who develops the libraries? A programmer develops the library! CRC, MD5, compression, encryption, 3D engines, particle engines, graphics manipulation, physics engines are just a few examples that are heavily reliant on math and for you kids out there who are interested in game development? I hate to tell you this but you better start brushing up on math because AI is once again extremely math intensive.
I am not saying that an individual with basic knowledge of math cant develop a basic application however a computer science major must have a strong background in mathematics otherwise new technology is going to creep to a halt!

by danlm

I went to tech school way back in 1979 in Pittsburgh, and they required math course's be involved. I thought they were boring at the time, but they at least taught me the fundamentals of what is used on the job. If anything, I wish I had a better math background. I think it would have made so many things easier to understand.

As it is, at least with what little background I do have in math. I am able to. 1). Understand the requirements. and 2). As sandy said, independently verify my results.

Dan

by tony hopkinson

If there are formulae involved in the requirements, then how can you code something, if for instance if you can't do basic algebra.
I mean you don't have to be able to prove the equation, you should be able to manipulate it though.

It's domain based, branches of maths, matrices, geometry, trig, statistics, sets, groups, functional analysis etc. I've used all of these from time to time.

I always count myself lucky to working on something that easily translates to a proven mathematical formula, makes the job much easier.

by deepsand

one lacks the means to assuredly select either the proper formula or data.

For example, I am able to do such for certain calculations used by the insurance industry [b]only[/b] by virtue of my having a solid understanding of actuarial mathematics.

by mdhealy

Ack! Just about EVERY occupation above the level of driving taxis and cleaning toilets is becoming more quantitative every year, so innumeracy is more and more of a handicap for LIFE, not just for programming. My grad school advisor had a theory that a major reason why so many people go to law school is precisely because it's one of the few prestigious occupations one can enter without taking any math classes -- and since the political class is dominated by people with law degrees, one can see the consequences of innumeracy all around!

by daveo2000

Look at how many lawyers are now having to deal with computer issues and are hoplessly bamboozled by the slick techs that [i]know[/i] that the lawyer doesn't understand.

Oh, my! That code [i]must[/i] have been copied. Look: They both have "for i = 1 to 100" in them...

by tony hopkinson

I could code the application of the formulae, but someone would have to tell me what to do, ie I'd be translating.
Never been a big fan of that sort of development myself.

I mean if I said calculate out v = u + at
it's doesn't say crap about what v, u, a and t are, what units they should be in....

That's the applied side of the math though, given v, u and t, if I can't solve for a, that's a pure math issue.

Knowing how to add up and what to add up are different animals.

by deepsand

separate functions, performed by different people.

With the advent of the programmer/analyst, it frequently becomes a case of the blind leading the blind.

by tony hopkinson

But where I was performing the analyst role, I had the domain knowledge. There are always a few impementation wrinkles, but a stock control system is a stock control system. I've never worked in insurance though, so I would be stuffed without guidance.

The maths wouldn't phase me though. That would be an island of certainty in a sea of the unknown.

by wayne m.

Originally, programming was skill used by an expert in a problem domain as a tool to solve a problem. It was the misguided notion that programmers could be ignorant of the business area, that programmers could be handed an all inclusive list of requirements, and left alone in a corner that has caused the decline in the usefulness of software.

I have seen far too many problems with business analysts being the "communicators" and programmers hiding behind documents and e-mail. If programmers are going to do their job, they need to get out and see the users and the users' work environments on a first hand basis.

by apotheon

Obviously, you have to know some math to do effective programming. To be really good at it, it helps to have a lot of math -- specifically, algebraic math, since programming is basically just really fun algebra. Learning algebraic mathematics up through linear algebra would be excellent for a programming curriculum.

Calculus? Not so much. Calculus is a great way to make people who think algebraically (the perfect people to do programming) throw their hands up in disgust and pursue a career in politics or window-washing instead.

So, in some respects I sympathize with Chromatic and Why. I'm an algebraic thinker. I loathe calculus. In fact, calculus and its precursors in the geometric realm of mathematics are basically the main reason I don't have a degree in computer science today. The asinine tendency of universities to make a couple years' worth of calculus a prerequisite for linear algebra, despite the fact the two classes of mathematics are each largely orthogonal to the other, drove me away from computer science and into the arms of philosophy as a major.

. . . where I learned more of use to programming in a single symbolic logic course than I did in more than a year of stupid calculus-track math classes while working on a CompSci degree.

by dbenito

How exactly is programming "just really fun algebra"? Any decent curriculum for CompSci should include the various branches of maths usually called "discrete mathematics", but I fail to see how algebra fits into the picture, unless you're referring to basic high school algebra (which everybody, not just programmers, should be familiar with).

And what on earth do you mean by "people who think algebraically"? Do you think in terms of vector spaces? Are there people who think "differentially" or "integrally"? Or maybe they think "statistically" or "probabilistically"?

I happen to have studied both CompSci and Maths, and I have no problem with either algebra or analysis. Given that there's no such thing as "algebraic" thinking, I don't think it's impossible to be proficient in both (do you even know what "orthogonal" really means?). And if requring a bit of calculus means that students are exposed to some of the fundamentals of analysis, it certainly won't kill them.

And now, I'm afraid I'm going to offend some of you, but the truth is simple: if you can't handle the basic calculus they teach in American universities (in Europe it's the kind of thing they teach you as a junior in high school!), you're not really going to amount to much as a programmer. Either that, or you've had terrible math teachers throughout your life (which is also pretty likely).

Either way, you're probably better off with your philosophy major!

by apotheon

Clearly, you're so thoroughly indoctrinated by course descriptions and bland curricula that you cannot recognize the points of crossover between artificially specialized disciplines. I can only guess that you must not be an INTJ or INTP (Myers-Briggs types) -- a synthesist, in other words -- if you have so much trouble recognizing the common threads in algebraic (as opposed to, say, geometric) mathematics, symbolic logic, and programming, or if you are unaware that algebraic mathematics extends far beyond high school.

Particularly when working within the functional programming paradigm, programming takes on much of the structural character of algebraic expressions. If that's not helpful enough in wrapping your brain around the idea, try looking up the term "algebraic logic" in Wikipedia some time -- and consider, as you do so, the fact that the entire field of programming is predicated upon building abstraction layers over boolean markers. If that doesn't sound familiar in the context of computing, consider that boolean logic is directly translatable to ones and zeroes.

In fact, a case can be made for abstract algebraic logic as the very model of programming process.

"[i]Given that there's no such thing as 'algebraic' thinking, I don't think it's impossible to be proficient in both (do you even know what "orthogonal" really means?).[/i]"

1. That was "algebraic" used as an adjective, not as the title of some class in a university. Get over your damned self.

2. Yes, I know what "orthogonal" really means, both mathematically and in other contexts. That's why I used it instead of "tangential" -- because I know what it means, and that it's more appropriate to what I was saying than "tangential" would have been. Do you know what it means in the context in which I used it, or are you so locked into your narrow mindset that you cannot make the appropriate linguistic associations?

"[i]if you can't handle the basic calculus they teach in American universities (in Europe it's the kind of thing they teach you as a junior in high school!), you're not really going to amount to much as a programmer.[/i]"

What I said has nothing to do with being able to "handle" calculus, and everything to do with finding it tedious, annoying, and about 98% unrelated to programming.

"[i]Either that, or you've have terrible math teachers throughout your life (which is also pretty likely).[/i]"

Actually, the best teacher I've ever had was a math teacher in college -- and formerly an opera singer with the Bulgarian National Opera and Ballet. That doesn't change the fact that I find using the fine art of mathematical guesstimation (calculus) to make a passable estimate of the area under a ballistic curve entirely outside my realm of interest and generally irrelevant to programming.

If I wanted to learn calculus in relation to computers, I'd have pursued an engineering degree.

Oh, yeah -- and your attitude sucks. Don't take it out on me when you feel your feathers ruffled by someone daring to suggest that the subject on which you've spent so many years isn't at the core of every important human endeavor. Separate your ego from your areas of study long enough to actually grasp what I'm saying, rather than playing dumb with regard to the points I'm making.

by absolutely

The concept of 'variable' is what allows a single program to handle [b]varying[/b] input. That concept is defined in mathematics within 'algebra'.

I also concur on calculus as prerequisite for linear algebra; having passed both, there is a lot of potential to be realized from linear algebra, which does not depend logically, in any way, on the concept of an 'infinitesimal', nor any of its logical derivatives.

Kudos for using the word 'orthogonal' at a higher level of abstraction than in the mathematics departments!

by dbenito

What is taught as elementary algebra in schools (which is what you are referring to when you talk about variables) has very little to do with algebra in the mathematical sense.

The concept of a variable is, in fact, much more a part of analysis (calculus) as it is of abstract algebra (linear or otherwise), and is not the same in programming as it is in mathematics.

The techniques for manipulating equations are applicable in most branches of mathematics so, again, "algebra" is a misnomer.

Finally, given that the person who used "orthogonal" was actually thinking of "tangential" (which is the opposite of orthogonal), I wouldn't go around congratulating him/her.

by charliespencer

I was about to post, "You at least need algebra" when I read appy's post. If you can't understand algebra, how are you going to use a variable?

by absolutely

to say the same thing. I received a long reply that addressed things I didn't say in the first place. Hmmm.

by plinehan

As others have said maths is important in business. But only what many call 'basic' math - not the fancy stuff like Analysis/Calculus - but Logic and Algebra - well you cannot program without them.
However, it was stated by Edgar (?) Dijkstra [a Dutchman ] a long time ago that 'fluency in your native language is essential to a programmer'. And I cant help but wonder how you could understand and communicate on a problem, let alone solve it, without that fluency.
In my own experience I have worked with PhD in Ancient Greek - no math - who have been excellant programmers

by tony hopkinson

by a set of axioms. It has syntax, semantics and rules.

The problems come when we use the same symbols in the different systems and end up with some bastardised mix of the two.

1 + 1 = 1

for instance.

by deepsand

in Residue Class Modulus 1!

And, I defy anyone without a sufficient understanding of mathematics to grok that.

by rmcnaught

Too right, but you're talking about algebra, trig, geometry, calculus, etc as if they're some kind of rocket science. They're not!

You should try working in an engineering environment using fuzzy logic, genetic algorithms, solving non-linear simultaneous equations, blah, blah...

I'm amazed by the lack of supposedly qualified programmers who can do this type of job.

MathMan

by four-eyes_z

...If you're gunning for a computer science or computer engineering course. From a practical standpoint (and a bit of hindsight thrown in), CS students never really know what kind of job they'll land after graduation, though they may have their sights set on getting a job in some tech company. Some are luckier than others (get a job directly related to their chosen field), some not so lucky at all. But that's life and another subject altogether...

But going back to the topic at hand, I personally believe schools offering computer science as a course should make Math (Algebra, Calculus, Accounting, Logic, etc.) a requirement to produce a well-rounded computer professional. After all, one never really knows in what business area he/she will end up working in, so it really pays to be ready for anything especially if you are a newly-grad just starting to look for your first IT-related job.

--It's better to be armed with the necessary knowledge and tools before you wade into the battlefield that is life...

by dbenito

While it is a pity that most programmers don't have a grasp of those concepts, I don't think it's particularly surprising either, because 99% of them won't ever need them. What most people need on a day-to-day basis is a knowledge of object-oriented design and a little Java or C# so they can build large systems out of premade components.

However, if you haven't been exposed to more complex programming problems (I love minimizaton/optimization ones!), when you encounter relatively simple ones you probably won't be prepared to come up with an efficient solution.

To me, what's eve more amazing is how a lot of programmers have very little knowledge about data structures, algorithm design, graphs, state machines, and a host of other essential tools. Learning a programming language is simply not enough...

by cyberdad2

I agree on your basic premise about math and its essential character. However, after reading over your article, and noting entirely too many grammatical errors, perhaps you should spend some time honing or re-honing these skills as well. It seems to me that grammar is every bit as essential to a writer as math. And your editor might like to attend a refresher course on possessives, plurals and punctuation as well.

by david.wilson

The article, while stating a valuable point, is an indicator of other failings in school degrees. English teaches syntax, for one thing, and anyone who programs knows this can be important. If you can learn to code, keeping all the punctuation and symbols straight, you can learn to write.

DNW

by mikeholli

Think again! I got my degree WAY back in the days of Cobol, Fortran, C (Not C++ or C#) We didn't have ANY kind of object oriented program what so ever. WE built program with Math, more math, and just for fun we added EVEN more MATH! I'm talking programming with 10s of thousands of lines of code. It took on average at least a team of 20 programmers to (example) get Lotus 123 out the door. The minimum time it took to write, debug, and test any commerical program was anywhere from 9 to 28 months depending on it's complexity. I remember when Windows was first introduced (I'm talking about the original version, not 3.1 or 95 none of that fun stuff) WE finally had a single interface to test our programs. Ahhhhhhh, Math still bring back fond memories.

by Former member

Seniors in high school should take the Activity Vectory Analysis (AVA), and then choose their major according to the results.

Our students, business community, government, and nation as a whole would be moving towards optimizing it's human resources.

by tfaulk26

Being a good programmer means having good analytical/logical skills. Mathematics is a fundamental science, which helps uncover and develop them. Of course, it has many conventions/axioms to memorize, but so does any science.
We have so many high school graduates, who cannot compute 9x8 without calculator, that it makes the quality of our general ed a national problem. On the other hand, we have too many programmers, who just move data from point A to point B and have no idea about the "big picture". That's why so many websites are poorly designed and/or unreliable.
ENOUGH SAID...

by wayne m.

I do not follow the logic of your argument. What does even memorization of the times table (I happen to know many programmers who could not compute 0x1E x 0x21 without a calculator) have to do with web site layout? The ability to do market research, understand a problem domain, and translate that into an operation program is independent of mathematics.

by dbenito

There's really not much to follow. The OP claims that certain analytical skills are needed in order to program competently, and that studying mathematics develops those skills. Most decent CompSci curricula include courses on various aspects of discrete mathematics, which are directly applicable to almost all kinds of programming.

Of course, most programming nowadays is limited to plugging components into each other, so there's not much place for applying analytical skills unless you're the one writing the basic components - eventually someone has to write algorithms that actually do things, as opposed to just writing plumbing and UI code.

by uwe.packer

Some people are unable to work out the positioning of screen elements using screen resolution. How about working out a total on an e-commerce site? I bet this poster is a mouse click fanatic who is able to handle web design software that generates the code but needs assistance if the software does not do what he wants.

by wrlang

I agree that everyone should know how to +-*/ so they don?t get ripped off at the checkout counter. I also agree that fewer people are coming away from HS with those skills.

But you can forget algebra and calculus, and here?s why.

Math is a tool.

After reading a few of the posts, my ?opinion? is that in the old days users expected programmers to know as much or more about their daily activities as they did.

Programmers were much more math oriented because the older programming languages and computers required programmers to know more math and the users were less educated.

By knowing higher math you could get the results in fewer lines of code and fewer CPU cycles and fewer hours on an old IBM 370-158 with half a MIP and half a meg of RAM. Those days are gone as hardware is now cheaper than labor. And, users gleefully wait up to a minute for a web app response with pretty pictures and icons while complaining incessantly about a green screen that doesn?t have sub second response time. Go figure.

I?ve seen programmers explain the calculations needed to give a user a desired analysis. Essentially, the programmer was doing the users job for them. I?ve seen programmers get blamed for the results after bending over backwards to help the user understand their job. The user needs to take responsibility for understanding what they want and the calculations that go behind it.

While I kind of enjoyed the rules and rigors of higher math, the last place I used it was checking my kids homework. It?s good to know what it can do so you can go back to it if you have to, but very few people really need it in their daily lives.

I agree that math is important, higher math should not be a requirement of a programming job unless that programming job is meant to program in higher math.

I saved my higher math books, so if I ever feel I need a new tool for a tough problem, I?ll crack them open and find something I can use.

As far as ignorance of a new generation goes ? 120 years ago you were an idiot if you couldn?t saddle and ride a horse. How many of us are brainiacs by those standards? Times change.

by jindicator

Isn't algebra the 2x+5 = 15 stuff (x = 5)? If that is so, then I used that about 5-10 minutes ago, and I am not even what most would consider a programmer. I am a systems admin. I was working on a report with those types of formulas. If a programmer doesn't understand algebra, then they are pretty useless.

Calculus, on the other hand is a whole different story. I haven't really used that in a while except to explain to people how they can find the volume of an object if they have the area. I was never very good at geometry, but since I took Calc I-IV (which at the time, most colleges did not have a Calc IV), I understand geometry much better.

One thing that should definitely be on the course schedule for all programmers is user interface design - maybe it is now, but when I was studying CS it was mostly an afterthought.

by danlm

I still communicate with users in application development. I would have power users sit down with pen and paper at my last job, and show me mathematically why the results I gave them were incorrect. This was workers compensation insurance. But, I had to be able to understand(and read her writing) the mathematics she presented me. Because, that is fully what she expected as a user.

My position against the original article is from a purely business environment, which does require a knowledge of at least algebra in the design and debugging of the applications. And a deeper understanding of mathematics when debugging abnormal terminations that provided hex dumps.

Example of where this is still relevant. Windows grey box of gag and spew usually provides a memory address of where the error occurred. For the application developer or production support person, if they are worth their salt. Will be able to take that and find in the actual code where the error occurred. What the variables were at the time and what was in those variables.

Where do students of Comp Sci expect to work? What career path are they following? web pages? Business? How can they not have a math background for business. OS development? Need I even expand. Scientific? Again, need I expand. If they want to make good money, in a business environment that is going through the roof(science, medical, graphics, security, networking). Then they need as much math as possible. And if the school did not teach this to everyone, then they would be short changing these students.

I don't have the background, and my career is lacking because of it. I'm respected for my knowledge and work ethic both where I work and with individuals I communicate this knowledge to. But, I could be much further ahead if I had a better math background. I'd be able to contribute to the open source community in various security daemon area's which really does interest me. Networking intrests me to a great extent to. Again, to efficiently write a daemon for either of those two area's. A good level of math, how the computer works, is required. What do I want being associated to my name? bloatware that provides a result, but requires a huge investment to operate. Or efficient and fast applications that provide results that I can manually verify for you if you ever ask. I want the second.

Dan

by dr_zinj

Harsh as that may sound, it's absolutely true.

Logic, boolean algebra, trigonometry, differential and integral calculus, etc. are all necessary tools for programmers. You may not use them on a daily basis; but if you're really working in the field, you're going to eventually need them.

In one manner of speaking, I had excrable math teachers in high school. Cs, Ds and Fs were a result of either personality clashes and poor teaching ability on the part of the adults, and a juvenile dislike of being there on my part.

On the other hand, they must have done something right, because when I went back to start college 3 years later, I had enough background to easily ace my courses up to calculus.

Yes, calculus was a bear. But I was able to recognize it's value enough to go back and retake the courses, even though I'd passed them the first time, because I needed to really understand it, and not just know about it.

When I see someone with a BA in Computer Information Systems, I see someone who knows how to use a computer, and may know about business applications, but probably doesn't have the complete skill set to be more than a mediocre programmer. If I see someone with a BS on the other hand, I see someone with the mathematical ability needed.
Programmers have to be able to understand mathmatical formula, select and apply them appropriately to problems, and translate them into working code. If you don't know a formula for something even exists, you're not going to be as effective as someone who both knows the formula, and how to use it.

What it comes down to is the more you know, the more valuable you are, and the more deserving you are of the job. Which is what it all comes down to in the end. You want to be a programmer, learn the math; you can't learn the math, go be a bagger for Walmart.

by daveo2000

We may actually have a use for the programmers that don't have very good math skills. Remember, there are always jobs that nobody wants to do because they are menial and not interesting.

We need people to review legacy code to see if certain functions or stored procedures have been called. We need people to see if certain variable names have been accessed in executable code.

These jobs do not require any particular math skill and can be done by any underqualified programmer that knows how to do exactly what s/he is told.

We also don't have to pay them very much and won't feel as bad when we have to lay them off during budget cuts.

In my last interview for a development management position, I was asked about the order of certain functions and sort routines. Then I had to justify why I would use an Order N function in one case, an order N-log-N in another case and why the Exponential one was the best choice in others.

If you want to work in the really neat, cutting edge jobs where you need programming as one of your skills, you don't want a bunch of other people trying to get the same job. If there are more "programmers" out there that don't have the math skills, there will be less competition.

If this guy want to be known only as "a programmer" then so be it. I prefer to be known as an analyst, a developer, a project manager, a development lead, and a few other titles. "Programmer" is just one skill in my kit and would often be rendered useless without the math skill along with it.

by c.shane.bumpurs

It think people who decry the need for math in programming are probably underestimating their own math skills. I think they've trivialized the math they do in their work because they've done it so much it just seems obvious to them. For those without the math knowledge it would be difficult to say the least. Don't underestimate what you know.

by iteration84

I don't know if you saw it around here or not, but I kind of had an experience like that during my first programming class. But the difference was, I hadn't been sufficiently prepared in the math before I took the class (my first ever programming class, Python, a few years ago). It gave me a hard, hard time at first, but after a couple of months, things just seemed to start to click into place, logic began to present itself more & more plainly. Now, like you said, its gotten to the point now where most of the time I don't even really notice most of the math I'm doing, unless it's really in-depth. Normally though, its the same old song & dance, since right now it's just homework assignments and exams. But I'll second that; it's all too easy to underestimate how much you may actually know about what you're working on.

by dbenito

Yes, the fact that he proved me right and further displayed his ignorance about mathematics *and* programming was indeed scathing. Ouch!

by daveo2000

why you feel you are right? And try to do so while maintaining some modesty. Your earlier comments were arrogant. It is easier for us to learn from somebody that can lift himself up without putting those around him down.

by alxnsc9

Let us be more strict. May be you want just to code not to program. It may be OK and it will have some positive consequences. Examples given:
- you will avoid most troubles possible as you will not have to work on any complex projects;
- you will code using no formal logic, no math descriptions and formulae, so no one could be able to find any bugs;
- you will not evaluate anything quantitatively by your code (time, speed, price, salaries included) so there will be no mistakes at all;
- you will never have negative evaluations of your code and coding abilities.
Perfect! They say God did it that way...

by daveo2000

Many years ago I heard an engineering student say "Why do I have to take composition? I will have a secretary to write my reports!" I have little doubt about his rude awakening.

Yes, you can probably get a job coding if you have little or no math skills. You can also get a job at McDonalds or an assembly line or as anyone that will always work for the people that make the decisions.

Remember when you used to hope for the day when you could move out of your parents' house so you could make your own decisions? Without a broad background including math skills you will be moving back in with "your parents" except now it will be everyone at your job telling you what to do and how to do it.

Not my idea of fun.

by iteration84

Point beautifully made. If only it was this easy to get through to every single student there is.. That was a great analogy. "The French Fry cook of the coding world."

by hmmmmm!

noted you said..

As my post to the article states, in the business world Math is a requirement.

Math is deserately needed for a responsible daily life.. beyond "business". That was proven by all those that got hooked on the "ARMS, ZEOR down" home loans. It is enforced by survey's that prove most college grads.. to say nothing of HS students/grads CANNOT understand that interest rates or compute them for their own credit cards. Worse yet al to many cannot even do the most simple of math or even compute percentages.
I helped out one guy whom was worried a tree in his yard "could fall and hit home". Simply told him to find a spot where angle from there to top of tree 45 degrees and then measure distance from their to base of tree, will get real close to tree height. He was amazed as such "really heavy duty math stuff". He is a info manager.. and is "math illiterate" and admits it.
Even read where some states now want to drop math for some as "not needed if not going on to school (college). Most forget that to compete at world level, we must be educated and to cherry pick what "basics are needed" is to assume "this is only job I will ever have".. We cannot as a nation shrug of a well rounded and grounded education.. and scary. fully 1/3 drop out of HS each year.. The usa cannot remain a world power and maintain our standard of living and leading via dumbed won citizenry.. A good basis in math, history sciences and more is required.. or we fail.. even if some consider such things as "a bore and why do I need it"... better yet why do you not need it..

by hmmmmm!

noted you said..

As my post to the article states, in the business world Math is a requirement.

Math is desperately needed for a responsible daily life.. beyond "business". That was proven by all those that got hooked on the "ARMS, ZERO down" home loans. It is enforced by surveys that prove most college grads.. to say nothing of HS students/grads CANNOT understand that interest rates or compute them for their own credit cards. Worse yet al to many cannot even do the most simple of math or even compute percentages.
I helped out one guy whom was worried a tree in his yard "could fall and hit home". Simply told him to find a spot where angle from there to top of tree 45 degrees and then measure distance from their to base of tree, will get real close to tree height. He was amazed as such "really heavy duty math stuff". He is a info manager.. and is "math illiterate" and admits it.
Even read where some states now want to drop math for some as "not needed if not going on to school (college). Most forget that to compete at world level, we must be educated and to cherry pick what "basics are needed" is to assume "this is only job I will ever have".. We cannot as a nation shrug of a well rounded and grounded education.. and scary. fully 1/3 drop out of HS each year.. The usa cannot remain a world power and maintain our standard of living and leading via dumbed won citizenry.. A good basis in math, history sciences and more is required.. or we fail.. even if some consider such things as "a bore and why do I need it"... better yet why do you not need it..

by daveo2000

(That, and the occasional loss of a job.)

When we move the developers away from the customer (whether a different floor, building, state or country) they get farther removed from what the code is supposed to do. RAD becomes impossible and QA takes days instead of hours. We find ourselves having code tested by one group in one time zone, then submitting the errors to developers in another time zone. The result is that one small fix that takes 2 minutes of a programmer's time takes a full 24 hours to get back to him as working or still faulty.

by iteration84

I think they both go hand in hand. I remember the very first programming class I ever had. I walked in there with very little math experience to fall back on, and that class nearly killed me. I still managed a B for the semester in that class, but needless to say, the next semester I started taking the math courses I needed and it made my programming stuff a hell of a lot easier to learn... not to mention the CCNA courses.. my GOD it helped with the CCNA courses. So there you go, I completely agree with the Edit, and I second it: How can a computer science major NOT have a math background?

by hmmmmm!

I guess we can just ask all ...would you want your bank and money and ins and such ALL run by programmers and IT that had no real in-depth math.. and could not compute if code they cut was working as advertised.. worse yet what if you could no do the math yourself..
Validation for math is that daily we hear and read of "statistics" that are there to influence, from Gov to business.. to our daily lives happenings... and if you do not know math????

by dbenito

1) Well, well, well, this has to be the first time I've seen anyone mention MBTI in a computing forum. I hope you covered that in your philosophy studies when they explained the difference between a science and a pseudoscience (MBTI falling under the latter category).

I am well aware of the superficial similarities between writing down equations on paper and writing programs in Miranda or Haskell, but I was trying to point out that programming has nothing to do with the kind of algebraic manipulation they teach you in high school (I doubt you studied abstract algebra in college). How you manage to conclude that I also meant that symbolic logic was not related to programming is beyond me (and probably beyond you too, since you made it up).

Once more, in case I didn't make it clear: just because certain functional languages use brackets and function names does not mean the functional programming paradigm is modelled after algebra.

2) Do you even know what abstract algebraic logic is?

3) You clearly don't know what orthogonal means, if you confuse it with tangential.

4) If you think calculus is "mathematical guesstimation", you obviously weren't taught calculus all that well. Ever since Newton first used it, calculus has come along way - analysis is a very rigorous branch of mathematics.

5) Truth be told, I haven't studied analysis/calculus since my first year as an undergraduate, so I'm not particularly interested in defending its use. All I was saying was that your argument seemed to be based on your distaste for calculus (which you have confirmed, to the point of displaying your complete ignorance about it), rather than on its soundness as a basis for computational reasoning. Not only that, but half of your comments (again, the whole "algebraic" thinking) made no sense.

It looks like psychobabble has a new sibling. Shall we call it algebabble?

by daveo2000

It has been a while since I studied calculus but I remember the phrase "as x approaches 0" or similar. This seemed to be referring to working out a solution by using successively smaller deltas whilst approaching an ultimate point where everything actually falls apart. I thought this was estimating the value because you can't actually measure the solution using that point.

by dbenito

The use of smaller and smaller deltas is only meant to be used to gain an intuitive understanding of why calculus works. In modern mathematics, the whole framework of calculus is built on the solid concept of limits, avoiding the need to divide by zero, and also avoiding the conceptual hurdle of the fact that if the input of a function isn't changing, the value of the function won't change either (and what you're trying to do in differential calculus is to measure the change of a function with respect to its input); in other words, you really need the deltas. By making the deltas as small as we want, we can obtain a result as accurate as we want, but we can never make them zero, or the whole thing does indeed fall apart (mostly because it makes no sense).

This isn't really the place to explain why the use of limits makes calculus theoretically sound - you'll need to study first year mathematical analysis to understand why. If you can't, then I thoroughly recommend the book "Zero: The Biography Of A Dangerous Idea" by Charles Seife, which provides a very good overview of a number of concepts in mathematics related to both zero and infinity (including the infinitesimals used in calculus, and how they involved into limits).

by absolutely

My understanding of the 'infinitesimal' matches yours, and I understood Chad's use of the word 'guesstimate' to refer specifically to the limit of x as x approaches zero.

I find little ben's quarrel disingenuous.

by absolutely

Myers-Briggs tests are well-known metrics of well-known personality traits, regardless of anybody's opinion of psychology as a branch of science. I happen to concur with your opinion that psychology is not a valid scientific discipline, but a liberal arts subject, but Chad's point does not rely on the authority of the psychological profession, nor is it countered by impeachment of that profession.

by dbenito

Myers-Briggs tests are based on the work of a mother and daughter with no qualifications other than having read Jung's "Psychological Types", which wasn't exactly the product of careful scientific study. What is he going to do next? Start quoting Freud?

Chad's comment makes as much sense as if he had been trying to guess my astrological sign...

by tony hopkinson

Certainly not in the UK, they can barely add up.

Personally I think it's in the courses to make the teachers look clever, when we assume they understand it.

Never used it in 30 years of coding, lot's of other math, calculus not once, unless you want to count the gradient of a slope which can be calculated by far easier means.

We might use equations derived by calculus, I can't think of anything but a teaching program ever needing to code how differentiation or integration is done.
Indeed, my spotty memory suggests that you can't guarantee to be able to differentiate and that integrating was basically a look up table.

Profit = Turnover - Deductions;

Doesn't have to have an x in it to be algebra.

by dbenito

If you took mathematics for your A Levels, you definitely studied both differential and integral calculus. (I took my math GCSE a year early, so the following year I took math AS Level and studied differential calculus, which made A Levels that much easier.)

If you go back and read my message, you'll see that I do not once claim that calculus is useful for programmers; what I do say is that, if teaching calculus means you are taught at least an introductory course in analysis (so you study the concept of functions), it's not all that bad.

by tony hopkinson

until an OU course as part of a BSc .

I think you are being hard on Apotheon.

Calculus is based on the continuous number line and infinity, both mathematical abstracts than cannot be implemented digitially.
The one thing I always bear in mind in that calculus is an approximation.
What does the volume of a sphere is 4/3 pir cubed mean.
Never mind pi is irrational, how accurate your measurement of r and the fact that space is not flat.
Limit's are a mathemetical dodge of the infinities that are implicit in counting.

It's an effective model of reality, it can be proven within the axioms of mathematics, but it is an estimation.

by absolutely

Tangential: a line which contacts a curve at exactly one point, with slope equal to the slope of the curve at that point, is tangential to that curve.

Orthogonal: perpendicular, with more rigorous definition required in more than 3 dimensions. I don't have time to explain the multi-dimensional definition to you right now.

These definitions are different, but they are not "opposite".

by dbenito

I don't need you to explain the n-dimensional equivalent of perpendicularity to me, thank you very much.

I don't have time to explain the concept in 3 or more dimensions right now, so I'll have to keep it simple. Given a point on a curve, a tangent and a normal (orthogonal) are perpendicular. In 2 dimensions, that is as opposite as two lines can be...

by absolutely

Two tangents to the same curve can be opposite. A tangent to a curve [b]cannot[/b] be opposite to the normal to that curve, in two dimensions!

Observe: call tangent one 't1' and tangent two 't2'. Now. let the slope of t1 = x. The slope of t2 may satisfy the definition of a tangent by having either of two values: x, or -x. If t2 = -x, then t2 is 'opposite' or 'antiparallel' to t1. The angle of separation of two antiparallel lines is 180 degress. The angle of separation of two orthogonal lines is 90 degrees.

'Orthogonal' was the correct word for the context in which apotheon used it because the branches of mathematics he named are not opposite one another, but they do have limited intersection, which was the crux of the now excessively debated statement in which he used the term 'orthogonal' so creatively.

Sheesh!

by daveo2000

You were being put down.

You are behaving arrogantly and, although you may well have a valid point, you have blown the chance of getting a warm welcome. I will concede that your ego does not appear to need or even want a warm welcome but that is beside the point.

It is entirely possible that you may simply want to point out something that you feel is important. It is entirely possible that English is not your first language and you never took the time to learn tact in the use of English.

While these things are possible, they don't change the fact that you are communicating in English to a group of English speaking computer professionals who are trying to help up and coming computer professionals not to screw up their professional lives. And in the process of this communication you have shown self to be a fairly unsufferable, arrogant, snobbish math bigot.

Is this the image you want to be known by?

by dbenito

I'm sorry, but I was responding to comments which I felt were unfounded and rather arrogant (and I've explained why in another post), and showed symptoms of coming from someone who, while probably knowledgeable in a number of other fields, did not know much about mathematics or programming and was making misleading comments about both fields. I find it hard to see how dissing calculus (without any basis in fact) can possibly help up-and-coming computer professionals.

For what it's worth, over the years I've tutored a number of kinds who had problems with high school math, and I've invariably come across exactly the same kind of attitude I've seen here, which is probably why I'm rather sensitive to the type of unfounded criticism of calculus to which I originally responded. But I'm certainly not going to apologize for writing what I wrote.

By the way, it is entirely possible that I am actually a native English speaker who is well aware of how to write tactfully, but chose not to.

by absolutely

[i]By the way, it is entirely possible that I am actually a native English speaker who is well aware of how to write tactfully, but chose not to.[/i]

I can relate.

by wayne m.

I thoroughly agree on communications skills and I have seen how a lack in this area limits the effectiveness of the programmer and the quality of his work. I have also observed, however, that higher mathematics skills (anything beyond basic arithmetic) do not contribute to general industry programming.

The most common mathematical concept in programming is equivalence; we are constantly comparing values. The necessary understanding of this concept for programmers, however, occurs when learning basic addition and subtraction.

The next most common concept is incrementing or the counting of integers.

Next we might find operations such as counting the rows in a table or summing the values in a column.

Less frequently, a programmer may have an arithmetic computation. Do not confuse applying values to an equation with algebra where we learn the ways to manipulate equations.

In more specialized applications, complex equations are used. These equations may be difficult or even impossible to solve mathematically, so the computer is used to find an answer by repeatedly plugging in values (Monte Carlo simulations, etc.).

I respect mathematics and I respect computer programming, however, beyond a few very specialized applications, computer programmers do not require any mathematical skills beyond basic arithmetic.

by dbenito

I disagree. While a number of routine coding tasks require no more knowledge of mathematics than a 10 year old has, programming is more than just writing lines of code.

I think a lot of people are confusing writing code that does mathematical calculations with the need to use mathematical reasoning in order to write effective code of any kind. When they make you study logic, graph theory, set theory and other topics in discrete maths, the intention is to shape the way you think about programming problems and how to construct solutions.

Nowadays this is probably not as obvious as it used to be, since current fads center on different approaches to modelling complex systems of pre-built components. But if you ever have to do something a bit more complicated than RAD (say, invent an algorithm), those mathematical tools become invaluable. And even if you do not, the kind of analytical thinking fostered by such mathematical instruction will probably make you a better coder.

by dbenito

I'm sorry, but this was a case in which the poster needed to be put down, because his argument was entirely fallacious (as well as partly unintelligible) and extremely arrogant. Arguments are not made stronger by using big sounding words, particularly if those words are used incorrectly.

While I don't necessarily disagree with the conclusion (learning calculus won't make you a better programmer, although learning some of the foundations of analysis might), I was peeved by the logic: I hate calculus, they taught calculus in CompSci, studying calculus made me change majors, therefore calculus must be removed from the CompSci syllabus unless we want all the students to drop out.

As certain people are wont to do when their arguments are hazy, they try to make them sound grandiloquent, as though that will add weight to their logic. Mentioning "algebraic thinking" (which the poster still hasn't been able to explain) and "orthogonality" (when the poster actually meant "tangentiality", in the sense of barely touching) was the last straw (actually, the last straw was probably the whole Myers-Briggs psychobabble).

Going back to the original issue, I do think that mathematics are one of the essential tools of a programmer. Programming is not the same as writing code - you can learn to write code in Java or C++, but that doesn't mean you're a competent programmer, in the sense that the code you write isn't necessarily the most efficient or elegant way to solve the problem you're tackling. A solid knowledge of logic, set theory, graph theory, algorithmics, etc. are essential prerequisites for proper reasoning about programming.

Throwing in elementary algebra (and by this I mean the rules to manipulate mathematical symbols) simply shows a lack of insight. The concept of a variable in an equation bears only a superficial resemblance to that of a variable in a programming language; a much better parallel might be drawn between the concept of functions in both areas (which is why I brought up mathematical analysis).

by daveo2000

You blew it on the first sentence. Your charter was to make your point without putting anyone else down.

You are speaking about Chad as the person who "needed" putting down. Chad is a person who regularly contributes here at TR and in a great many other places. He offers some unique insights into issues that get discussed here and does so in a helpful manner, at least in the first post. If somebody attacks him he will come back, often with witty and/or scathing remarks.

His posts are usually informative and occasionally opinionated. I don't always agree with them but he presents them intelligently.

I don't know if you intend it but your posts come across as elitest. What is particularly interesting is that you seem to have adopted a Monty Python-esque method of replying to my question. Your first paragraph was insulting. Your second paragraph was informative. Your third paragraph was insulting. And so on, alternating. Was this intentional?

I can see that you have a point you want to make and that it differs from Chad's (apotheon's). Can you try to make that point without being so vulgar about it?

by uwe.packer

While teaching programming at a technical education institution I constantly see students who have no understanding of even the basic mathematical operations like working out a percentage. Yet they wish to do things likes games programming. This just does not work. Unfortunately education has gone very soft in recent times and considers attendance alone to deserve a pass mark. I wish people would bring the real world back into education and tell a student in no uncertain terms when they stuff up. Unfortunately this is no longer happening.

by iteration84

I honestly cannot agree more. The whole time while I was in regular school, prior to college, whenever it would get to math class, my teachers would simply pass out calculators, go back to their desks, kick their feet up and fall asleep. I saw a problem with it then, and I certainly see major problems with it now. Because of that, I was kind of behind in math for a little while. Thankfully, I was taking that programming class, and I had the drive to want to learn that. So, I learned the math that accompanied it, and I'm much better off. Then, even further, some of the students don't even care enough about their own futures to *want* to learn this stuff, so they go and sit in the student lounge and play Pool or Ping Pong all day. Thinking about it makes me half angry... but it also makes me half sad, because it really makes you think ahead and wonder, "Wow... where are some of these people going to be in 10 or 15 years?" Also, you're very right on on the issue of attendance. At our school (on any semester except the summer semester, summer semester is shorter), a student is allowed to miss up to 6 full days of each of his or her classes. To me, thats pretty excessive. The only way we should be excused from our classes if we're sick, or have a previous appointment with a doctor, or if there's been a true family emergency.

"While teaching programming at a technical education institution I constantly see students who have no understanding of even the basic mathematical operations like working out a percentage. Yet they wish to do things likes games programming. This just does not work."

I see that type of thing constantly with my fellow students. It just doesn't make sense to me; there's a huge gap in logic right there. Even the percentage sign is the Modulus operator in most programming languages, and I'll bet most of your run-of-the-mill programming students like the ones you describe would not be able to tell you that. That's one of the most commonly used operators in programming, period. How do most of my peers manage to skip all this logic that is sitting right out in front of them saying, simply put, "Hey, if you don't learn this, then the next part won't make any sense!" I simply don't understand how some of my peers can just...completely disregard steps 1 and 2 and hop directly onto step 10 or step 20. It's like they think they can just take a huge shortcut; but in the technology fields like programming, there are, simply put, absolutely no shortcuts.

by deepsand

Not being aware of how your school systems are run, that may or mat not be the case there. However, here in the U.S. schoolds are [u]not[/u] government agencies, but private and public schools controlled by their owners and local constituencies respectively.

In either case, it is frequently the case that students are taught in both a manner & of certain matters such as are dictated by the "customers." In other words, schools are a business, and deliver what the customers desire.

by iteration84

Basically, what you're saying is if the population of "City X" is in the low IQ range, then that will be the range of education they will recieve? That really sounds like a crappy deal to me, but at the same time it makes sense. My sympathies go out to the higher IQ students in the lower IQ towns/cities who get screwed out of better education when this kind of thing happens.

by dbenito

To be perfectly honest, my original intention was not put Chad down (I have nothing against him personally and cannot comment on his character), but to point out the blatant holes in his reasoning. Since his post was extremely opinionated and somewhat pompous, I also felt the need to call him on that. Now, if he chooses to respond with an even more offensive message (I can't call it witty or scathing because it wasn't, if only because he simply went on to demonstrate that he didn't really know what he was talking about after all), then I'm not going to pull any punches.

As I said before, I'm not questioning Chad's expertise in a number of different fields, but it's pretty clear that he is not particularly well versed in the topics we are discussing here. Just because a person can make insightful comments about one subject does not mean that his opinions on a host of others are worthy of consideration; it makes about as much sense as me considering myself entitled to criticizing the syllabus of an art history course. To quote Dirty Harry: "a man's gotta know his limitations."

As to the point I originally wanted to make, I think my previous messages made it clear enough.

by deepsand

It is the rare individual who can master both. Whether by virtue of innate inclination, education, experience or resources, very few specialists ever become good generalists.

By being generalists, analysts stand between the programmer and the use, serving, as it were, as an intrepreter for the two.

by marshmallow59

Perhaps in a "pure" programming-only sense you don't ALWAYS need math, but I don't see how you can't get by without an understanding. Frankly calculus is not a difficult subject (I'm referring to entry-level university calculus here, but we also cover calculus in high school here in Canada, not sure about the US), and even if you don't use it directly, the benefits in discovering how to solve a problem can be very useful.

I find that math is a more "pure" logic than programming - I guess thats why I used math to figure out programming, not vice versa.

And to top it off, I don't see the perceived arrogance that you all are seeing. I find it arrogant to suggest in the first place you don't need math (whether calculus or otherwise) to get by in the programming world. Talk about not understanding other people's perspectives here.

by absolutely

[i]Perhaps in a "pure" programming-only sense you don't ALWAYS need math, but I don't see how you can't get by without an understanding.[/i]

I don't know either. I apply principles I learned in math all the time, including logic principles that I only ever saw in school in math classes, but which, I understand from hearsay and subsequent reading, are taught in philosophy classes. So even when I'm not using mathematics, my programming ability relies largely on what I have learned in math classes.

[i]Frankly calculus is not a difficult subject (I'm referring to entry-level university calculus here, but we also cover calculus in high school here in Canada, not sure about the US), and even if you don't use it directly, the benefits in discovering how to solve a problem can be very useful.[/i]

Calculus is optional in most US high schools, but I took it and enjoyed it.

[i]And to top it off, I don't see the perceived arrogance that you all are seeing. I find it arrogant to suggest in the first place you don't need math (whether calculus or otherwise) to get by in the programming world. Talk about not understanding other people's perspectives here.[/i]

I think you misplaced your post. If you think I suggested, in the first or any other place that I don't need math as a programmer, please point me to the text that led you to that impression, so I can explain more clearly any statement I intended to make, or which I did not make, but which you thought was implied.

Thanks,

by daveo2000

I believe apotheon said he didn't like calculus. I'm too lazy right now to find the exact post.

I think Marshmallow confuzzeled the two names.

by absolutely

If you read what he and I actually wrote, you'll see that he dislikes calculus and claims it does not apply (much? at all? you would have to ask him to know which) to the programming he does; I like calculus, but I cannot think of a reason for a programmer to want to know calculus other than to be a scientific programmer, which is a small subset of programmers.

by dbenito

If a curve at some point has a slope of x, how can a line with a slope of -x be a tangent to that curve at that same point? It contradicts the very definition of a tangent (unless you're talking about tangents to a curve at different points, but then we're talking about something entirely different). If you want further proof, draw a line with a slope of 1 and a line with a slope of -1, and you'll see they intersect (and at right angles, actually).

(Your assertion would be almost correct if you were talking about vectors instead of lines, and directions instead of slopes.)

Where exactly do you get your definitions of "opposite", "antiparallel" and "angle of separation"?

Going back to the use of "orthogonal": what do you mean by "limited intersection"? And how can two branches of mathematics be "opposite"?

by dbenito

Er... the limit of x as x approaches zero would be zero. Now, the limit of the value of an expression involving x as x approaches zero is another thing...

by tony hopkinson

1 + 1 = 10 :p

It's the confusion of using the same symbols to mean different things that trips us up time after time.

Not just in various branches on maths either, witness above discussion Tangenital vs Orthogonal.
:(

by dbenito

1) Mathematics can and does exist independently of its use to model "reality" (unfortunately, this is really not the place to discuss the merits of mathematical realism). Furthermore, the fact that something cannot be implemented digitally does not mean it is not part of "reality".

2) Calculus is NOT an approximation. Its application to real world problems may result in approximate models, if only because the world is apparently discrete and our measurements are also approximate.

3) I imagine you bring up pi's irrationality in relation to its infinite decimal expansion - the fact that we cannot perform calculations with infinite accuracy does not mean that exact results do not exist, only that we cannot always obtain them.

4) Space is nearly flat in our vecinity, which is why Euclidean geometry works well as an approximation to the geometry of the space we inhabit. If, however, you want further accuracy, you can always use non-Euclidean geometry.

5) Limits are not a way of dodging infinity - they are actually a way of embracing the infinitely small and the infinitely large, and they have a solid theoretical foundation.

6) Obviously, the only completely accurate model of reality is reality itself (but then it's not much of a model, is it?). However, that doesn't at all mean that mathematics (or even just calculus) is an estimate; it means that models, by their very nature, are approximate.

by dbenito

Well, it appears as though you don't know what "antiparallel" means, so we're even. Oh wait, you also don't know what "tangent" means :-)

by daveo2000

Wonderfully put.

I had been thinking about awareness of sine waves as useful in thinking of things like selecting the tape channel number in 3 tape sorts: The old trick of making a switch / oscilator with "s = 3 - s" where "s" starts out as 1 or 2.

Sure, anyone who had been told about that would probably remember the trick, but not the reason for it.

I had forgotten the lessons learned from using a sliderule; and they are significant! Not just magnitude (as you point out), but an understanding of precision as well. I have seen too many times when people (especially in financial areas) will try to get numbers beyond 7 digits of precision when several of the values in the equation are "floats".

Remembering that you really can't go beyond 3 digits with a sliderule drives that home every day, even without remembering that the sliderule is why I remember it! :)