To the world at large, computers are scary machines that are impossible to understand, and programmers are the mysterious geniuses who know how to manipulate them even if they are never able to fix yours for whatever reason.
Anyone who has worked with the machines knows that programmers aren't just one undifferentiated group, but a club with a wide variety of subspecies. From those who will go to any length to avoid documentation to those who deploy code like duct tape, refuse to use libraries, or can't help but rewrite their apps in the latest experimental programming language, programmers are a colorful lot -- particularly in their perspectives and habits -- though collectively comrades in code.
[ Find out which 11 programming trends are on the rise, verse yourself in the 12 programming mistakes to avoid, and test your programming smarts with our programming IQ test: Round 1 and Round 2. | Keep up on key application development insights with the Fatal Exception blog and Developer World newsletter. ]
Here we've compiled the 13 classic programming personality types you're likely to find in almost any IT or development shop. Together, they keep the machines feature-rich, despite steadfast differences in their approaches to programming.
They offer plenty of rationalizations, some of which may even sound reasonable. Comments take longer to read than good code, they might say. Or they will claim that Lisp or Java or whatever is self-documenting by the very nature of its structure. Or that the search capabilities of modern IDEs can parse the code itself. After all, human-written text requires artificial intelligence to discover its semantic meaning, whereas good code is immediately understandable to the parser. Whatever the reason, shirking documentation sounds perfectly good to them because they read and write programming languages with more ease than they do English.
The Underdocumenter will go to any length to avoid being shackled by management's foolish requirement to write text about that function. The droll ones will create functions like queryDatabase, then add a comment that says, "Queries database."
The cleverest Underdocumenters will even write their own code to save them the trouble of writing English. I know someone who hooked up a version of Eliza to Emacs so that he could add Eliza-grade comments to his code with the push of a button. No one noticed, he said, because even his manager had written scripts to count the words in the comments of the developers he managed. Eliza always had him near the top of the documentation pecking order in his department.
Relationship status: Living with the same person for 15 years without getting married because they don't want to fill out the forms
Household chore: Rewiring the house without labeling the breakers
Role model: Guy who hid the Ark of the Covenant before "Raiders of the Lost Ark"
Pet: "Around here somewhere."
Favorite programming construct: Lambda
Drink: Anything with an "XXX" on the bottle