IT managers rarely know what to ask when a programmer is led into their office during a job interview. Here’s one that can separate the true subject matter experts from the tyros.
Here’s a lesson I just learned.
The nature of those comments is another thing, though. I knew that these articles would attract attention from fans who believed their favorite language is sacrosanct and appropriate for every possible use. However, I also expected that we’d get plenty of thoughtful comments from experienced developers who’d say, “I disagree with your third point in particular… but here’s what I think are the appropriate and inappropriate use of the language.” The collection of reader could give everyone far more depth than any one individual author’s article. Instead, most of the comments attack the authors but offer no alternatives. (One exception is a thread on theserverside asking the community to compare Java’s strengths and weaknesses. It’s still largely about language than business applications, but that’s copacetic.)
I’ve been a software development participant and groupie for most of my life. I’ve worked with or examined dozens of programming languages. I’ve liked some, found others impossible to think in. But I never imagined that any of them was the One Right Answer. So the lack of deliberate thought was a small shock to me… until I reminded myself that the world is populated by far more novices than it is experts. I’ve spent most of my time, in recent years, with subject matter experts. They don’t always agree, but they can argue their viewpoint and respect other’s opinions. Low-level people, however, don’t have the data to back up their opinions, so all they can do is criticize those who appear to poke at their favorite (which is usually the same as “the only one I know”).
There’s a little “life lesson” in this that managers can put to pragmatic use. Let’s say yours is a C# shop. The next time that a developer is interviewing for a job in your department, ask, “In your experience, what are C#’s strengths and weaknesses? What’s it best at, and worst at?” It’ll be an instant litmus test for whether a developer is actually experienced or has a single year of experience repeated multiple times. Anyone who can think in a language can evaluate it dispassionately. Anyone who has used more than a few languages will have an opinion. You and your development staff might not agree with that opinion, but what’s important is that the applicant has one.
It almost doesn’t matter what the developer’s answer is, as long as there’s something on the “… and here’s what I don’t like about it” side. On the other hand, someone who insists that C# is great for everything immediately shows that’s he’s just a beginner, no matter what “senior” tag he puts on his résumé.