Fog Creek Software
Discussion Board

Coding is Math?

"Anyone can write a shell script. Very few people can express mathematical concepts in code. "
-Comments from Slashdot
Interesting discussion topic?

Bummed by Math
Sunday, May 09, 2004

Coding is easy.  Very few people can express their code concepts with mathematics.

Sunday, May 09, 2004

Mathematical concepts like what?  Code itself is a mathematical concept.  Is a PDE more complex or harder to understand than a big computer program?  Not necessarily (nor is the 'core essence' necessarily more complex).

Sunday, May 09, 2004

I'd say if you /understand/ the mathematical concepts (whichever ones they mean) then expressing them in code is usually fairly trivial, you have the ideas and algorithms in your head and so you're just chasing home implementation details, data types, optimising stuff etc.

Sunday, May 09, 2004

I sort of agree with the quote. I think it was more valid when most of the coding done was in trying to solve mathematical problems.

I would extend it to argue that anone can code. Not everyone is able though to translate business problems/solutions into code.

Sunday, May 09, 2004

"Given more opinions to draw from, it is inevitable that every conceivable position will be covered.  Including all of the completely wrong ones."
                      -My Slashdot theory

Having sat through a class teaching BASH scripting, where many of the students couldn't handle even the "if" command, much less left-quotes, AND
Having sat through a class teaching 'numerical methods', i.e. algorithmic methods of solving math problems such as interpolation and such,

I can confidently say this: there are many people.  Some of them don't know the fundamental concepts of imperative computer languages, and thus can't even begin to understand BASH.  Some of them have no concept of mathematical concepts, and have skidded through life memorizing the formulas (formula is plural, if you're speaking in LATIN.  Or is that formulae?).  The point of this is: to solve a math-heavy problem such as 3D graphics, you're going to have to fully, completely understand matrices and vectors and whatever else.  To work with BASH scripting, you're going to have to perfectly understand what each basic command does, otherwise things will turn out wrong or will not work at all.  If you don't understand the system you're working with, how are you ever going to represent it in code?  If you don't understand the system of coding itself, how are you going to code anything?  So it's not a case of 'math=computers' at all.

If we want to leave this discussion with some common ground, let me try--I do agree that the ability to learn mathematical concepts is tied to learning computing and computing-ish related topics.  They're both abstract concepts, and so it naturally follows that the math nerds have common ground with the computer nerds--besides being huge anime fans, anyway--they all can easily task switch over to the other discipline.  All sorts of early computer scientists were mathematicians.

Sunday, May 09, 2004

It would be formulae.

This reminds me of dumb IQ questions such as

Math is to Coding as Sliderule is to ............

Simon Lucy
Monday, May 10, 2004

.... Alligators.

Monday, May 10, 2004

Should there not be a difference between being _mathematical_ and being a _mathematician_?

It is imperative for a coder to be mathematical but not necessarily be a mathematician.

Being mathematical entails

1) Recognising and accepting a-priory axioms.
2) Logical extrapolation of the axioms.
3) Comprehending notational representations of information.
4) Pattern recognition.

The above is of course not exhaustive, but I hope I made a point. <g>

Monday, May 10, 2004

>a-priory axioms

fundamental buildings blocks of monastaries?  :-)  Sorry, couldn't resist it.

Not Waving But Drowning
Monday, May 10, 2004

LOL! Apologies.

a-priory --> a-priori

Monday, May 10, 2004

I find this "math superiority complex" amusing in software developers. It's not terribly surprising that you see this type of stuff more frequently at SlashDot where the general population is quite narrow-minded and highly opiniated.

Many people have suggested that unless you are math wizard then you have no business developing software. Someone here even suggested that a person should have advanced degrees in mathematics before even thinking of developing software.

What a load of crap.

Many software developers are in the business of solving business problems, not mathematical ones. I know that this is a tough concept for the math nerds to appreciate, but there really are problems in the world that aren't purely math problems requiring "advanced" mathematical skills to solve.

Like everything else is in life, it all depends on the context. Unfortunately, the narrow minded types simply cannot grasp this simple idea. Some development requires high levels of math, such as 3D work. Others, require much less.

I've built a good business over the years solving business problems for my clients with technology. Rarely have I ever come across a problem that I needed heavy math skills to solve.

Yes, math is important to understand and many basic CS concepts are rooted in math. Math teaches us to think and solve problems, so I'm not suggesting it's unnecessary. Just that's it not the "End all and be all" of all software development.

Monday, May 10, 2004

Programming is about manipulating variables, boolean algebra, Turing machines, finite state machines, regular grammars, and context-free grammars... all of which are math.  You just might not know that it was math if you didn't know anything about the theory of automata and computation.

Monday, May 10, 2004

*  Recent Topics

*  Fog Creek Home