What is it?
For a language which matured in the late 1980s - the 1999 ISO/Ansi standard has not been widely adopted - C is holding its own against newer and more glamorous languages. It came fourth in the most recent SSP/Computer Weekly survey of skills in demand, neatly swapping places with Java, which dropped from fourth in the first quarter of 2001 to eighth, the position occupied by C last year.
C is so deeply embedded in the infrastructure of computing that it is hard to see how it could be phased out.
Where did it originate?
C was developed at AT&T's research labs in the 1970s by Dennis Ritchie, building on an earlier language called B. Ritchie was a co-developer of Unix, and C has remained closely associated with Unix ever since.
What is it for?
Systems software, networking, embedded systems.
What makes it special?
It is hardware and operating system independent, meaning programs written for one platform should run on any other. Though a high-level language, it has low-level characteristics - you can fiddle with bits and bytes to create an application that uses machine resources more efficiently.
How difficult is it to master?
Not to be lightly undertaken. To get from a C Primer to advanced C will take you 12 days of classroom training, spread over six months, with spells of concentrated hands-on experience in between.
Where is it used?
C use overall is declining, although it plays a key role in so much system software that it will be with us for years yet. It is still very important in embedded programming and some of the best paid work for C programmers is in mobile comms development.
What does it run on?
Most commonly with Unix, but also across a wide variety of platforms from PCs to mainframes (IBM offers C/390 and C/400, for example).
Few people know that
The International Obfuscated C Code Contest (www.ioccc.org/index.html), challenges entrants "to write the most obscure/ obfuscated C program; to show the importance of programming style, in an ironic way; to illustrate some of the subtleties of the C language; and to provide a safe forum for poor C code."
What's coming up?
The ISO/Ansi standard for C crept out in December 1999. However, one C/C++ developers' journal concludes that support for C99 is "practically non-existent".
Ritchie says he was satisfied with the 89/90 Ansi standard; C99 is "much bulkier", and while the standards committee spent much of its time resisting feature suggestions, he wishes they had "resisted harder". C99 is "no longer compatible" with C++. That is, it won't be, when and if the major commercial implementations wake up to the new standard.
Training and user groups
You could take the classroom route - most large training organisations offer courses in C - or use free Internet-based tutorials. Try: www-h.eng.cam.ac.uk/help/tpl/languages/C++.html cplus.about.com cplus-zone.com cprogramming.com/tutorial cplusplus.com/doc/tutorial
For a broader understanding, read The C Programming Language, by Brian W Kernighan and Dennis Ritchie (also known as K&R).
See also the UK-based Association of C and C++ Users, ( www.accu.org/) and the C/C++ Users Group, which provides low-cost shareware and freeware C/C++ source code, and publishes the C/C++ Users Journal.
Rates of pay
Salaries start at £25,000 and go up to about £35,000 for most C programming jobs. Programmers with more embedded and mobile experience can easily achieve higher rates.