[comp.lang.c] Classifications of C programmer

evil@arcturus.UUCP (Wade Guthrie) (02/01/89)

On the lighter side. . .

I have seen the requirements for the capabilities of UNIX people (like
guru, user, wizard, etc.) and I got thinking about what similar ones
might be for C people.  I came up with the following:

NAME		DESCRIPTION AND FEATURES

novice		- puts "#include <stdio.h>" in his code, but is
		  not sure why
		- has heard of pointers, but has never seen one

user		- uses the following macros:
			#define	BEGIN	{
			#define	END	;}
		- has had a bad experience with pointers
		- knows the difference between ' and "

knowledgeable	- uses:
user			if(a==b)
				c = 1;
			else
				c = 0;
		- uses pointers, but only in place of arrays
		- loves writing code on VMS

expert		- uses:
			c = (a==b) ? 1 : 0;
		- uses pointers comfortably
		- are jazzed when they find a compiler bug because they
		  found it
		- has figured out what && and || are for
		- refuses to write C code on VMS

hacker		- uses:
			c = a==b;
		- writes code which use pointers to functions
		- writes macros instead of simple functions
		- uses bitwise operators because they are like assembler
		- writes simple code with "cat >" and compiles it
		  with "!cc".
		- uses argv and argc

guru		- avoids bitwise operators due to portability
		- are annoyed with compiler bugs
		- writes code portable enough to port from VMS but
		  doesn't relish the thought
		- can answer most C questions after a little thought

wizard		- writes compilers with "cat >" (and they work!)
		- reads device driver source with breakfast
		- can tell what question you are about to ask, and answer it
		- is on a first-name basis with Dennis, Bill, and Ken

Oh well, on the the more serious stuff. . .


Wade Guthrie
evil@arcturus.UUCP
Rockwell International
Anaheim, CA

(Rockwell doesn't necessarily believe / stand by what I'm saying; how could
they when *I* don't even know what I'm talking about???)