I’m frequently the recipient of recruiter emails that are looking for C++ and Java programmers. And, while I know both of these languages very, very well, I tend to avoid offers that words things in terms of just programming languages.
Consider a help wanted sign that said: “Wanted English Writers”
In this context it’s more obvious what’s wrong: just because you write in a particular language doesn’t mean you’re a particularly good author. And, even if you are a master at words, you might be unable to convey complex ideas to the common man very well. And, even if you can communicate with technical precision, you might not be mentally engaging. And, even if you are able to keep a reader, you might not have an interesting topic to address the masses.
There’s a reason television shows have writers, there’s a reason comedians have joke writers, and there’s a reason why books that you really enjoy are done by a small circle of authors that resonate to your liking. Mastery of a written language doesn’t necessarily make you a writer.
And that’s the fallacy that many technical companies make: they assume that because you can write in C++ or Java, that you must be smart, and clearly smart means good. Right?
Problem is, learning a computer programming language isn’t all that difficult. Learning to program well, takes experience.
Consequently, when I perform an interview with someone for a position, I’m more interested in the problem solving skills and interpersonal communication than how well they know a particular language.
And when I say problem solving skills, I don’t mean the Microsoft “why are manhole covers round” brain teasers. No, I present real code and real problems that’s representative of how my team works together.
What I’ve found is that there are actually three types of candidates that make excellent programmers, regardless of language:
- Mathematicians – these are people who clearly have a solid grasp of data structures and algorithms.
- Philosophers – these are people who really, truly, and deeply grasp the intricate details of logic, notation, and language.
- Musicians – these are people who intuitively see patterns and are extremely creative.
Whenever I’ve hired from these three groups, and the person has solid communication skills, and the person had demonstrated a personal passion for software development, we’ve always had resounding success.
And the funny thing? Those talented people know other talented people.