Steve McConnell writes entertainingly (in After the Gold Rush: Creating a True Profession of Software Engineering (1999)) that, in order to be an "expert" at anything, one must learn about 50,000 items — fundamental quanta of information about a field, important results worth remembering. That usually takes ~10 years of study, apprenticeship, work experience, and research. In some subjects, however, the topic itself isn't stable enough for bits of knowledge to last 10 years ... so in a sense, there can't be any true "experts". Video game programmers who focused on coding for the Atari VCS probably don't have a lot of currently-relevent expertise, for instance (though the smarter ones may have learned some lessons about efficient use of limited resources).

But moving from engineering to computer science, does the same rule apply? A common adage says, "Any field with 'science' in its name, isn't one!" This is usually quoted as a slur on political science, social science, etc. Does the proverb apply to the theory of computation? Donald Knuth suggests (in his essay "Computer Science and Mathematics", American Scientist 61 (1973), reprinted in Mathematics: People, Problems, Results Vol. III (1984)):

One of my mathematician friends told me he would be willing to recognize computer science as a worthwhile field of study as soon as it contains 1,000 deep theorems. This criterion should obviously be changed to include algorithms as well as theorems — say, 500 deep theorems and 500 deep algorithms. But even so, it is clear that computer science today doesn't measure up to such a test, if 'deep' means that a brilliant person would need many months to discover the theorem or the algorithm. Computer science is still too young for this; I can claim youth as a handicap. We still don't know the best way to describe algorithms, to understand them or prove them correct, to invent them, or to analyze their behavior, although considerable progress is being made on all these fronts. The potential for '1,000 deep results' is there, but only perhaps 50 have been discovered so far.

How much has changed during the three decades since that was written? Is CS up to 100 "deep results" now? (Who's counting?) A cynical thought: perhaps if the field moves out of the manaical money-making mode that it has been in during the 1990s, progress will be faster....

(see also TenThousandHours)

Monday, February 19, 2001 at 18:12:38 (EST) = 2001-02-19

TopicProgramming - TopicScience

(correlates: FirstYearWorstYear, ToeTheLine, NameThatTune, ...)