February 06, 2012, 2:18 PM — 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.
Programming personality type No. 1: The Underdocumenter
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."