tags:

views:

898

answers:

21

Is there any relation between affinity towards mathematics and affinity towards programming?

What is your case? Do you love mathematics? What about puzzles? Do all programmers love programming puzzles?

For you to be considered a GOOD programmer, is it essential that I love algorithms, mathematics, puzzles etc?

A: 

You have to love it or your day job will be boring. You can be good but you wouldn't enjoy it.

vava
+14  A: 

While it's not essential (there are bound to be counter-examples) I'd be surprised to find many good, passionate developers who actively dislike puzzles. Problem-solving is one of the cornerstones of software development.

As for whether that means a conscious love of mathematics - that's harder to say. I suspect most developers are likely to like the sort of "certainty" of mathematics - but that's not to say all developers like doing activities that they'd consider to be maths.

Jon Skeet
+1  A: 

Love for puzzles is definitely a plus, but for me i love all tasks that need thought about what tools i have, how i can best solve the task etc.

Though i don't like cooking, which is probably the exception to my rule :P

Not all programming is math (in a complicated sense), most is just logic (though that can turn into a complicated mess :P )

Ólafur Waage
lol @ "complicated mess"
andyk
A: 

in my case, it was my love for logic and math problems that turns me into a programmer.

don't know about whether that's unrelated with your programming skills, since I haven't see a great programmer who's not good at maths.

andyk
A: 

As a general statement, in my experience, people who think logically and analytically tend to be good programmers.

That being said, I am a programmer and have an affinity towards math. A lot of programming problems like graphic rendering, database querying (to an extent), and, in general, algorithm design are aided by knowledge of linear algebra, set theory, and other branches of math. However, there's a large set of real world problems which most of the time can best be solved without any formal mathematics, like UI design, forms, a lot of business logic, etc..

To be a GOOD programmer, well... you should be interested in new things. While you don't have to 'love' math, algorithms, and puzzles, you shouldn't be afraid of learning them.

mweiss
+2  A: 

I would have to agree with Jon Skeets points.

I'm not a huge fan of mathematics but I don't mind the odd maths puzzle now and then. I didn't do very good with maths at school only just passed, most of my teachers told me that I would never be able to get anywhere in life because I sucked at maths but I would have to disagree I belive I do the best that I can with the knowlage that I have and If I don't have to knowlage then I practice till it sinks in.

My brother is very good with maths, so any time I come across something I don't really understand I usally go to him with a "Bro how does all this work" and we spend an hour or so going through it untill I'm happy that I understand how it works. I have found this method of learning for me has been a lot more helpful then sitting in a class room trying to stuff my brain full of information and in turn I have begun to like maths a lot more then I did at school.

On the note about puzzles, I would have to say most programmers love a challange, isn't that what we joined this game for? To slove puzzles and challanges in todays computer world. I love doing puzzles when my brain is fried and I can't think of anything, but I don't go out hunting them down just for fun when I'm board :)

Nathan W
+5  A: 

Do programmers inherently love mathematics? I'm going to buck the trend here and say 'No' not all of them!

While personnally, I love mathematics, I know several excellent programmmers that have only basic maths skills and one or two even dislike pure maths. That's not to say they don't like problem solving, or getting the job done.

I believe programmers should have a good grounding in algorithms and theory; it's necessary to solve 'hard' problems. But then, how many progammers solve hard problems on a day-to-day basis?

Mitch Wheat
A: 

The term "programmer" encompasses a wide range of people. Some programmers get a thrill from writing machine code by hand, while others will use a drag-and-drop interface (or another sort of labour-saving system) as far as possible and write a bit of code when necessary. Some programmers like to solve "people" problems, other programmers like to solve "theoretical" problems.

Many of these programming "branches" involve mathematical skills, or indeed attract people who enjoy mathematical thinking (who similarly come in many forms!). But some branches don't require a lot of mathematical knowledge.

In my opinion, a "good programmer" should have a solid understanding of algorithms and a substantial level of mathematical knowledge. But a "good programmer" is not the same thing as a "programmer who is good at task XYZ".

For my own part, I love the way programming and mathematics are related to each other. I'm currently doing a major in mathematics, and I've made use of much of the maths I've learned recently in a programming context.

Artelius
A: 

I never liked mathematics too much when I was at high school. I lacked the correct mental schemas to handle it and trying to get to a point was very frustrating. Now, at the fifth year of University, I'm starting to appreciate it for its power and beauty, but I still don't like puzzles and other intelligence demonstration, since I think that they are a silly form of exhibitionism.

On the other side restricting this question to math imho is an error. The same question could be asked about other forms of art, and that's because programmers (at least the ones I know) inherently love beauty.

tunnuz
A: 

I'm not really a maths fan, I was never great at it (I did the 2nd highest maths in high school but didn't exactly excel with it).

I'm also not a hugh puzzle fan. I only like puzzles in which you can write an algorithm once and solve every time. This is why I don't really like Soduku, sure you can write an algorithm, but a lot of it is brute-force (or from the examples I've seen).

But I'm considered a good developer where I work. I've received positive feedback on my blog and just released a code generator for the Umbraco CMS so I consider myself good at what I do.

Slace
A: 

I believe that programming (and CS in general) requires a different kind of thinking than general-purpose mathematics; they overlap, but not terribly much.

The most fundamental concepts of CS are algorithms and data structures, which are dynamic. The most fundamental concept of mathematics is the proof, which is static.

Case in point: at university, I started out studying math, with CS as secondary subject. I struggled greatly to get passing grades in math, whereas in CS I wrote straight A's. So I switched to CS as main subject and never looked back.

Then, in my final examination for math (then as secondary subject), which was for group theory, the professor asked which part of the course I'd found most interesting. I'd answered that it was the part where we'd learned an algorithm for enumerating cosets, because as a CS student, algorithms were easy to understand for me. He laughed and said that most math student found that part the most difficult.

Michael Borgwardt
A: 

I depends what you mean by a "good programmer". The most productive programmer I know doesn't have any interest in puzzles and maths.

He can churn out good code with few bugs far, far quicker than I can. He can also do it for more hours a week than I can.

However he doesn't ever come up with any new techniques or ways of doing things. When I am busy working on the architectural plumbing he will be busy filling in the grunt work needed around it.

When shown a new technique or pattern he will quickly learn it and use, it is isn't that he isn't bright.

As far as I'm concerned he is a very good programmer and a hugely valuable member of a team, but I suspect under the SO way of thinking he wouldn't be considered a good programmer.

andynormancx
A: 

I can only answer from a personal point of view. In my case programming led me to revisit and discover a new appreciation for mathematics. Programming gave me a framework within which to "visualize" and better grasp some mathematical areas that would otherwise seem irrelevant.

+1  A: 

Imho, every good programmer does. However, they may not necessarily know. I once met a person who just loved reverse engineering algorithms but he failed his math exams in school and he hated them too. I still think he loves math without knowing it, though...

Reza Jelveh
A: 

I suspect that the answer is this: both mathematics and programming are types of puzzle-solving, and people who are good at solving puzzles do well at either or both.

"The chicken is merely the egg's way of making another egg" (Samuel Butler)

Brent.Longborough
A: 

Love it! Didn't always feel this way though. I think if we were to make a broad generalization, there are two different purposes for writing an application - (a) information management or (b) number crunching!

I do research into image processing algorithms and research, and so there's a lot of number crunching! And so of course, maths comes in handy a lot. However, it really does depend on what your application is, I don't think you need to know that much maths for programming in general.

Ray Hidayat
+1  A: 

I'm terrible with numbers. I have to slow down and think carefully when it comes to calculating percentages in code or something like that. While I do like solving problems, and have an interest in how things work (physics), I hate crunching numbers, and I'm simply not good with equations and similar.

That said, I'm pretty good with programing and problem with numbers never got in the way; actually, would argue that math and programming are much much less related than, say, psychology and programming or sociology and programming.

You do need some math skills, but only rudimentary, except if you're dealing with 3D (usually in gaming), making specific scientific programs, or work in Google.

Regarding puzzles, I do like puzzles, but not number-related puzzles. For example, I like Scrabble and chess, but I've never solved a Sudoku.

Domchi
+5  A: 
Zach Scrivena
Hmm...I'd disagree. I think things are more black/white in physics than in much of computer science. I'd put CS somewhere around bio. EE would go very near physics.
Beska
Computer Science is just applied Mathematics.
Brock Woolf
A: 

Its hard to generalize. But love for mathematics is a major reason I chose programming. IMO strong math background certainly narrows the learning curve. Being able to see think in abstract terms is a big plus if you have a math background.

But most important of all is enjoy and love what you do.

Eranga
A: 

Maths is often viewed as just being the "school curriculum", but I believe that all programming is inherently mathematical. How often did I look at a maths discipline, and just told myself "Hey, but that's what I do when I program!".

We might not necessarily do, or even like, linear algebra, trigonometry or geometry, but just thinking about type might bring you to set theory, and trying to understand a garbage collector cannot be done without an understanding (which might be very informal) of graph theory.

So, programmers who say they dislike maths (but enjoy programming) just don't know that they just really like another facet of maths!

small_duck
A: 

I am a programmer but I don't love so much math :P

Giancarlo