Some technicians never grow up . . .

In defense of beginners

by Conrad Weisert, September, 2017
© 2017 Information Disciplines, Inc., Chicago

Has he really had seven years' experience, or has he just had one year's experience seven times?

—Inquiry about a "senior" programmer who continues to apply crude or ineffective techniques

We've been troubled by Peter Denning's essay in the July Communications of the ACM: "The Profession of IT—the Beginner's Creed". Professor Denning urged us to be tolerant of the lack of competence and expertise among people who have little experience. His article includes a full-column sidebar headed "'The Beginner's Creed", which begins and ends with the humble line:

I am a beginner

The details in the body of the creed cite symptoms of being ignorant and inexperienced, concluding with hope of some day becoming "competent, perhaps even proficient or expert in this game".

Well, that's comforting and it may well apply to advanced graduate-level students in a prestigious university. But it fails to explain the continuing deluge of atrocious programs produced by highly experienced programmers. Several years ago I noted examples of that phenomenon, and we continue to see new ones at a depressing rate.

Of course we should be tolerant and forgiving of blunders made by neophytes, but experience shows that clear thinking is an innate skill, not an acquired one. Even rank beginners ought to sense that something is wrong when they find themselves coding highly repetitive or unclear code. If they choose an inefficient algorithm because they're unaware of a better one, that's easily corrected by substituting the appropriate module, provided that the mistake was properly localized.

Choosing the wrong algorithm is a forgivable mistake for a beginner. On the other hand repeating an error or clumsy technique in a dozen places in a large program is an indication that the programmer, whether beginner or highly experienced, should consider another occupation.

Return to programming articles
IDI home page

Last modified September 20, 2017