First, let me note that even a factor of 4-5 for differences in programmer performance
is already substantially greater than almost any other human skill. If one choose a
sample of first year college students at the same university, one would be unlikely to
uncover a difference that large in short term memory span. The only skills in which
one sees that large a difference are highly learned ones, such as reading.
Second, I would argue that laboratory studies of programmer performance underestimate
the differences seen in the real world by one or two orders of magnitude. Consider
the following thought experiments.
[1] Take a first year programming student and the developer of Linux. Ask them both
to write a (simple) kernal for a portable operating system that supports symmetric
multiprocessors. Time them.
[2] Take the developer of Linux and a developer with 20 years experience in industrial
control programming. Ask them both to write a program to run an automobile body
welding machine. Time them.
For task 1, the student probably could not even start on the task directly but would
have to go out and learn operating systems, get some practical experience, etc. It
could easily take four or five years before the student could even start on the task.
Someone who has already developed an operating system could do it in a couple of
months, a difference of perhaps 30 to 1. If we wanted the student to achieve the same
quality of solution, then it might easily take three times as long.
For task 2, the developer of Linux would probably have to spend a year or so learning
about automobile body welding systems and the programming of PLCs. The industrial
control programmer could do the job in about two weeks, a difference of perhaps 25 to
1.
In addition to showing the time range, these cases illustrate the difficulty in the
real world of distinguishing between background/experience factors and "individual
differences."
Both of these cases also illustrate that substantial amounts of programming knowledge
is above the level of the individual programming language constructs.
Ruven Brooks
- Automatic footer for [EMAIL PROTECTED] ----------------------------------
To unsubscribe from this list, mail [EMAIL PROTECTED] unsubscribe discuss
To join the announcements list, mail [EMAIL PROTECTED] subscribe announce
To receive a help file, mail [EMAIL PROTECTED] help
This list is archived at http://www.mail-archive.com/discuss%40ppig.org/
If you have any problems or questions, please mail [EMAIL PROTECTED]