C Hierarchy
©
/ Mario Konrad
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 User
if(a==b)
c = 1;
else
c = 0;
- uses pointers, but only in place of arrays
- loves writing code on VMS
Expert
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
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
- writes libraries that his fellow workmates use
- 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