|
Alexander M. wrote:
No, they are not completly different.
Yes, but math and phys. even closer than engin. and phys.
Every or almost every phys. theory has roots from math.
So may be better to add in survey: "math/phys" and delete "engin/phys"
|
|
|
|
|
I think the best asset you can have as a programmer is having a background in some field at all. I have a background in graphical and musical arts and guess what I'm specialized in programming...
There is no one best background. Having worked with sales help you understand the needs of a sales-department etc. Nothing ever beats working in the fields you are targeting with your software (I'm a freelancer, that's what I do).
Math should never be underestimated, discrete and logic math are the foundations of most notations used for programming languages as well as documentation. If you want to really master programming, start reading if you haven't already.
Ever seen "[this|or this|or something like this]" in a manual?
Or maybe this "[this is optional,[this is also optional]]"?
Those are mathematical notations. Ever written any programs in Prolog?
But to be a little realistic, no other field than programming can ever make you a good programmer. Experience is everything.
www.digitaldistractions.se
|
|
|
|
|
I first started programming in high school. I had the option to take one course of my own choosing. I took a class computer science. The science here is a little bit excaggerated, since we didn't do any math, nor did we do development interesting enough to be called science, but it was computer science.
It was the first time I got in contact with developing software. I was facinated by it and started learning C++ as my first real language. We learned some dutch dialect of Java developed especially for high school kids.
After that, almost everything I learned in high school or college was something I already knew or just remotely interesting. A few courses in college though were new to me. These were classes like project management, System architecture and such. They were really interesting.
Too bad that they only teached basic stuff in college.
Behind every great black man...
... is the police. - Conspiracy brother
Blog[^]
|
|
|
|
|
The best software developers are those who have a good background in more than one area. You may be a math wizard but if you don't understand the customers problem domain, then you probably won't ask the right questions when you convert the specification into a design document.
A good programmer needs think to be able to think both logically and creatively as well as being able to research and understand the history of the code that has gone before.
Michael
CP Blog [^] Development Blog [^]
|
|
|
|
|
that should have been a multiple choice survey.
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
I think mathematics the best background for almost all survey list and
for progamming also of course.
|
|
|
|
|
I agree with you....yep...Mathematics is the Mother of Physics and Engineering.....
|
|
|
|
|
Yes. I remember I read some books about it - Morris Kline, Mathematics,
The Loss of Certainty. What will be programming without Mathematics - nothing. For example, database without RDB algebra...
|
|
|
|
|
Mathematics is a tool , Physics is the science and Engineering is the application field of science.
|
|
|
|
|
Granted my university had moved the Computer Science program to the School of Engineering from Liberal Arts while I was there, but wouldn't it be correct to say that computer science would be a fairly legitimate option in the survey's choice list. At least for those of us who were stuck going to college in the early 90's or before.
However, in all fairness, Discrete Structures or Discrete Mathematics played a very important role in my opinion. Even Differential Equations or Multi-Variable Calculus really made the Matrix theory much simpler to grasp in 3-D graphics.
Too many programmers in Delphi and VB just don't grasp base conversions binary, hex, and octal (they do decimal just fine =). I've fought with too many vendors who think they can just cut off any character above 0x127 because they don't understand or want to deal with character encodings. It's very pathetic that some people neglect their Discrete Mathematics classes or don't study it at all.
So even though I'd think "Computer Science" would have been the option most middle aged programmers would have liked to have seen in the choice list, I think the Mathematics portion of that degree (specifically the Discrete Structures portion like truth tables, base conversions, matrix theory, etc...) build a very important foundation to understanding it all. I say things like DWORD, unsigned int, two's complement, byte ordering, little endian, hexidecimal, flags, and XOR in a meeting, all I get are blank stares. Mind you, these are fellow programmers at various levels of their careers.
The best programmers in my opinion are those who can handle the math. One cannot even think of dealing with the win32 API directly, graphic transformations, serial or network communications, COM, character encoding, metric translation, cryptography, etc... without a thorough math background. Those without that background can obtain it as they need it on the job but this hurts productivity not to mention that it frustrates the other members of the team as those who are catching up, hold up progress or argue against things they frankly do not comprehend.
|
|
|
|
|
bob16972 wrote:
The best programmers in my opinion are those who can handle the math.
This is not true. Back in the early days, where you really had to look out not to use too much memory, where CPU time really mattered, math was one very important skill.
Nowdays computers are really fast. Math is not a mandatory skill anymore for the most jobs. The basic math like addition, substraction, devision, multiplying and boolean logic are enough in most cases. The only jobs where math really matters are graphics programmers, game programmers (getting less every day), device driver programmers, low level embedded system programmers, etc.. The mass of us programmers work on large applications of which code is kept as simple as possible. I bet most of us just implement simple utility classes and event handlers.
Behind every great black man...
... is the police. - Conspiracy brother
Blog[^]
|
|
|
|
|
but the poll was on BEST programmers. it is where knowledge of "abstract core" counts.
v.nrg
|
|
|
|
|
Well, I likely have much less mathematics skill than the developers I have mentored and lead...
Personally, I do not think that much of the math taught these days helps much. At least, not for me. I do not think that knowing how to FOIL a polynomial expression, for example, helps anyone become a better developer no more than how knowing calligraphy helps someone become a better author.
Now, that is not to say that ALL math is useless. While I flat-out SUCKED in things like Calculus, I did well in "Contemporary" mathematics, graph theory, relational algebra, finite mathematics. I have even found a use for some of the latter. But I never needed to do something like calculate something on a parabola, or find the derivative of something... (And I hope I never will, because that would mean that I was hired for the wrong job - we have graphing calculators designed specifically for stuff like that are are much less expensive than I am.)
IME, the people that have an extensive mathematical background are the ones that tend to value one. I tend to value my real-world experience over my education (and over education in general).
One last thing. Have any of you known any highly mathematics- and/or physics-educated people whose code "looks like" a mathematical formula on paper? It is kind of hard to describe, but I have been able to see code from two different people and correctly (and immediately) guess that they had higher math degrees.
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Tip for new SUV drivers: Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
True, but define BEST.
It's more something like: the right programmer for the right job.
A typical database programmer will suck at programming graphics and a typical graphics programmer will not do database programming very well. So which one is the better one here?
IMHO the better programmers nowdays are the team players. Development teams tend to grow large and the typical geek doesn't like this. The real wiz kids tend to isolate them from the rest and that's of absolutly no value in a large team. So how much does the math help the geek in question? Not much..
Behind every great black man...
... is the police. - Conspiracy brother
Blog[^]
|
|
|
|
|
Most (I did not say all) programming today is pushing data around from the database to the UI and back. You don't need maths for most (I did not say all) of that work.
We are neck deep in abstracted layers that take away any need for anything more than simple maths skills.
And when maths does count it is more the logical side of maths not binary, hex and octal conversion.
If you are doing low-level work then fine, show me your maths skills because yes you need them but for the majority of us the closest we get to low-level is checking the collation field in SQL Server.
regards,
Paul Watson
South Africa
PMW Photography
Gary Kirkham wrote:
The ability to destroy a planet is insignificant next to the power of the cliché...Star Trek had it in spades.
|
|
|
|
|
Paul Watson wrote:
Most (I did not say all) programming today is pushing data around from the database to the UI and back.
Ah, but the survey was asking about the best programmers, NOT the average Joe. The average programmer gets stuck with the mundane chores (like what you describe), while the best programmers are solving difficult tasks with difficult tools like math. They solve problems that even the vendors say is too difficult within the scope, requirements or time frames given. The best programmers can use tools but also create them when they are unavailable. They are the pioneers who do what has not been done before or at a minimum has not yet been published. The best programmers are the ones you turn to when your in a pickle and everyone else who writes simple "beaten path" code throws their hands up in frustration.
I'm not saying that they whip out their TI, HP, or Casio calculator and start calculating Taylors series or finding the area under curves. I specifically said "Discrete Math or Discrete Structures" and "Matrix" calculations. It's interesting to note that most of you who speak against math make no mention of "Discrete Mathematics". How do you comprehend what the HIWORD and LOWORD are and how they differ(or don't) from 16-bit to 32-bit libraries? How do you understand why your getting corrupt characters when trying to read a XML file encoded in UTF-16 with standard library functions when using a colleagues misguided code? Do you not need to understand how to calculate the specific bit you need set to change or read a flag? There are so many things I would not comprehend in programming if I didn't understand how the internals of the machine worked. Math and logic are not tools, they are truths that existed before man. Programming languages,libraries, and CPUs are tools to apply logic and math to solve a problem. Problem solving skills come from math. Saying math is unnecessary to be one of the "Best" programmers is absolute nonsense. What do you do when you need functionality that does not exist yet. Do you wait for Visual Studio 3004 to come out and provide it for you?
|
|
|
|
|
I just read your profile and noticed that one of your interests is in VB and math or discrete math is somewhat worthless in that environment so I stand corrected. (I forget that not everyone programs in C/C++ these days).
I'm not trying to be an ass. You are right and I stand corrected, but only in the VB context. In C/C++ I firmly stand by my statements.
(And I thought I'd never learn anything from these surveys)
|
|
|
|
|
Oh jeez, that was being an ass, bob16972. Trot out the "You do VB, tee hee" arguement like a beaten mule.
I know some C++ developers who couldn't calculate their way out of a paper bag. They are still bloody good programmers. I know some VB programmers who make my head hurt when they show me their matrixes and maths heavy applications.
A majority of applications have as much need for heavy maths as I do for a wonderbra.
regards,
Paul Watson
South Africa
PMW Photography
Gary Kirkham wrote:
The ability to destroy a planet is insignificant next to the power of the cliché...Star Trek had it in spades.
|
|
|
|
|
Reading your profile and your statement about layers of abstraction reminded me that there are higher level languages that isolate the programmer from the complexities of the inner workings of the machine that I considered Discrete Mathematics to be so important to understand.
I conceded your point about those abstractions eliminating the need for a background in Discrete Mathematics and I stated that I wasn't trying to be an ass but apparently you read something into my statement that I plainly intended to avoid.
Paul Watson wrote:
A majority of applications have as much need for heavy maths as I do for a wonderbra.
I guess you misunderstood my statements as I don't consider a majority of the applications out their to be written by the "best" programmers and I don't consider Discrete Mathematics to be "heavy math". I fell asleep in class quite a bit as it is somewhat mundane, BUT nonetheless extremely important to programmers who build the operating systems, libraries, COM classes, device drivers, compilers, computer languages, and API's that the rest of the programmers use.
My hats off to those who are forced to use it everyday as the rest of us simply dab into it from time to time and likely don't appreciate how central to programming it really is. No science would exist without mathematics and logic.
|
|
|
|
|
bob16972 wrote:
The best programmers in my opinion are those who can handle the math.
Yes, exactly.
|
|
|
|
|