C expert criteria

Todd M. Hoff tmh at well.UUCP
Tue Jun 20 16:11:04 AEST 1989


Responses to responses about:
> What do you need to know to be an expert C programmer?

There must be some real answers to the question about what makes a
C expert. We all at least have implicit criteria.  In the Unix world
I saw a list categorizing 9 levels of Unix expertise. What the
different categories were escapes me now, but they went something like:
   1. Neophyte. can log onto the system and logout
   2. use ls -l and cd
   ......
   9. Wizard. Can use m4 in their sleep and knows all the options to ls.

Something anologous for C should be possible. After all, when we want to 
hire a senior level programmer we don't merely mean a programmer with 
X (assumed large) years of programming. We mean somebody who really knows 
their stuff. I'm after what they "know" not just inane witicisms. 

> ... if you have to ask, you aren't

I know this was said mostly in jest, but I think its very valuable to 
externalize programming "rites of passage." 

> Who cares?

This is certainly a valuable question and is right up there with 
the infamous "why?" question. It should always be asked but too often
"Who cares?" is used as an escape. Actually there's plenty of reasons 
to care:
      1. When hiring someone how do you know they are qualified?
         By asking questions, right? Which questions? This relates
         to my question.
      2. How do you as a programmer know you are getting better?
         Writing more code per millisecond? Fewer bugs? Or perhaps
         understanding the essence of the problem and writing the
         most elegant solution to that problem? What are the C
         building blocks that are elegant? Not just pointers,
         but higher levels of technique.
      3. When doing code reveiws, how do you judge the competence
         of the code with no definition of what "good" code is?

> ...Knowledge vs wisdom

First, since C is recursively defined, no database no matter how large could 
hold all valid 'C' constructs and idioms. That's why we have compilers.
Besides such a database would be merely a listing of facts. Whereas an 
expert system combines raw facts with inference rules. These rules are a form 
of canned wisdom. Not as ranging as human wisdom, but as several medical 
expert systems demonstrate, wisdom useful enough to save lives.

I don't think a semantics game battling knowledge vs wisdom definitions
is useful. The point of my question is clear.

> What groups would be appropriate?

This one of course. I'm asking about the essence of C programming. This
seems at least as valid as pointer addition.

Any more takers?

Todd



More information about the Comp.lang.c mailing list