Almost every software engineer claims to be a Polyglot nowadays: Someone who develops in multiple languages.
Companies are very sensibly keen to hire polyglots, but I feel they’re missing out on the thing that makes real polyglots effective. They ask for a certain length of experience in multiple languages — usually a very specific list that they are already working with — whereas I think the strength of a true polyglot is their ability to pick up new languages quickly, on-demand. It’s about how those people will recommend and handle the next language the company decides to adopt, without requiring them to hire yet more developers who already know the latest language du jour. But of-course, it’s hard to pick out true polyglots at interview, so companies hire for current skill set instead.
A real polyglot knows what they don’t know, can maturely assess their level of experience in a new language and plans their approach to filling in those gaps in their knowledge, as fast as possible. For instance, knowing that you need to be aware of how concurrency, threading (and more specifically thread safety) work in a new language means you’ll seek out that knowledge before hitting your first race condition or sync / visibility issue. A naive developer would blunder on until issues arise and, let’s face it, this particular class of problem often arises first in production. I know from over 15 years writing in Java that getting concurrency wrong can kill projects, and so I’m acutely aware that claiming to be a polyglot means being aware of where such pitfalls may lie in other languages and, more specifically, knowing whether or not you’ve got a grip on that.
The same goes for static / dynamic typing, compilation versus interpretation (and hybrids in between), how to implement common design patterns, how to hide data, how to implement immutability, etc. The list of these broad topics isn’t that long, but knowing what you do / don’t know about each is the mark of a polyglot.
A real polyglot knows that their strength is their ability to pick up a new language, one that they haven’t been asked to learn yet, not in the current set that they already know. Hopefully employers will catch up with this concept, and we won’t see so many “2 years of Scala” requirements in job specs. Let’s hire today’s polyglots, not yesterday’s 🙂