100% agreed. Professional engineering is much more like lego assembly with components than it typically is like doing calculus. The only reference books I actually have are all stats and math ones, not programming ones, and they are plenty sufficient when I need them.
I think what the original author meant was that, when someone is good at math, not necessarily knowledgeable about a specific field in math, but has the brain to seek how and why of mathematical problems as well as knowing how to utilize the current tools and knowledge available to solve the math problem, or even to prove a formula is correct. It is similar idea in programming perspective where you have to think about how to efficiently and effectively design your code and algorithms to solve the business problem, or even just programming problems. Many of our current programming projects are just simply providing interface for data entry and validation. But to write much more complicated software, such as a database (oracle, sql server, ā¦), AI, ⦠etc, you will need to be able to formula your problem, develop steps and coming up with algorithms. Even a simple tetrix game ( we all know how to play that, but it takes a lot more to develop an engine to be able to support the game play) will take a lot of math-like thinking in programming way to do that.
You donāt really need to know math to write code, you just need to know how to apply it. My first love is 3d graphics programming. I have a 9th grade education, so the gap in the math education I have recieved and the math that is used in 3d programming is huge. So first I hunkered down and learned what a vector was, then I hopped my butt into the math channels on IRC and explained what I was trying to do, and can someone hook me up with a formula please?
Nothing to it. I think a monkey could write code. Logic is everything. I spend so much more time trying to figure out how to get my hands on something (like control āaā relative to control ābā) than I do trying to figure out how to solve my problem that itās not even funny.
Quaternion Rotation still gives me fits though.
Oops, I should have used the words test in reference to programs instead of prove but the idea is similar. To mathematically prove that even the most trivial software is always correct is a tall task. If there are just 32 if statements in your program then there are 2**32 possible different states that your program can be in based on a statement being either true or false.
Iāve come a computer science major and I detest math⦠none the less, I took a whole lot of it. Way, way more than I ever use (assuming I even remembered how to use it).
It all depends on what area of computing you do⦠for most, I suspect a strong understanding of advanced math is overkill but absolutely nessassary for a select few.
Jeff⦠You sound EXACTLY like those people in the TV show Numb3rs who complain that maths wonāt help us catch this killer.
no one has ever tried to localize⦠I had to stop reading right there. You should be teased about that one for a long time. Please tell Joel that you deserve to be the but of a joke on your podcast.
Theres 10 localized symbols for 3 on this page:
http://en.wikipedia.org/wiki/3_(number)
Ian on April 2, 2009 12:53 AM
Jeff PWNEDā¦

Do mathematicians believe in god?, i Know programmers doā¦

Iām curious if Jeff is ever embarrassed that he is always misinterpreting things and making terrible generalizations. I guess it gets all of us into an intriguing conversation, so itās not all bad.
Guys, give jeff a breakā¦whatever he writes on blog need not be 100 % accurate and correct all the timeā¦if he learns that something is wrong he will correct itā¦
after all he is also a human being and a fellow programmerā¦he also makes mistakes just like any one of usā¦
so go easy on himā¦
The real reason I feel the best programmers have a strong mathematical foundation is because such a base is required for understanding the real performance of your code. Itās difficult to optimize a method/function/routine/etc if you donāt possess the skills require to analyze the running time of said algorithm. Yes, most people can figure out that a for loop is O(n) but as soon as you start talking O(n ln n) lots of peopleās eyes crossā¦
Well⦠your post donāt follow from your title. It feels rather like something Are competent programmers more likely to be āmathematically inclinedā?.
If ability of logical thinking is seen as a part of mathematics I would definitely say that it helps.
Since I work on the web side of things (for a small e-commerce company) most of the actual math works is of the 1+1 variety⦠but lately some statistics have begun to creep in (which is interesting and somewhat fun).
(I also like to believe that I have a nice understanding of my native tongue (and an acceptable level of understanding of English).)
To the people who think itās always ok to learn the maths just in time: Letās compare this to physical skills.
Would you take anyone seriously if they said theyād learn to swim just before taking a job as a lifeguard? Or someone learning to sew when they get a job as a seamstress?
Some minor maths you can pick up on the spot, but many tasks require too big a chunk of maths to learn like that, and almost anyone who thinks they can do it is simply overestimating their own abilities. (Sure, our lifeguard friend can learn to swim in a week, but heāll be rubbish at it, and heās not going to save anyoneās life).
Learning math made me a lot better as a programmer.
Hell, once I was trying to figure out a physics problem in a commercial piece of software I was writing while in college, and realized the solution was actually held in the calculus lecture Iād attended the day before.
Donāt underestimate math at all.
WTF? What are you talking about? programming is not about programming, but about communication skills, so please stop wasting our time and write something usefull. How to control people?,How to humiliate your boss? - thats the kind of programming related articles we would all need to be better programmers.
@Gromā¦
For people asking about the right way to learn math. Have a read of http://www.maa.org/devlin/LockhartsLament.pdf
Really Excellent articleā¦
I now understand the beauty of mathā¦forget programmingā¦i love math nowā¦
i have wasted 13 years of my schooling in the mathā¦OMGā¦
one more thingā¦
MATHEMATICS IS ART AND SO SHOULD PROGRAMMING BEā¦
WE ARE DOING THE SAME TO SOFTWARE ENGINEERING AND COMPUTER SCIENCEā¦THAT WE DID TO MATHEMATICS IN SCHOOLā¦
WHAT A SHAME!!!
Thereās no point responding either way. This is just a traffic-building post. The smackdown approach indeed. Iām glad our academia shuns it.
Either youāre mathematically trained programmer, and from your experience you think that itād be nice for all programmers to have that training and youāve sure found it useful and youāve sure noticed other bad code that could be better if the guy didnāt try to reinvent matrix multiplication.
Or youāre not mathematically trained, and youāre defending yourself because you may not have needed the training (although it begs the question that without the knowledge, how can you know what youāve been missing)
I had a coworker once who had a masters in math from a prestigious school. He could code for sure, but nobody else could decipher his code. It was the classic massive method sort of thing (thousands of lines). It was as if he thrived on mastering large problems. He was creating problems (large puzzles) as he was solving them.
As has been said (http://blogoscoped.com/archive/2005-08-24-n14.html), good programmers are lazy and dumb.
from my experience during college:
people whose really good at math (by I mean really good, they really are like born to be a mathematician, not just someone whose diligent enough), they learn about how to code faster (much faster actually) than someone whose just have an average math skill.
I think itās because programming mostly are about abstract thinking and reasoning, something that a mathematicianās brain used to.