8 ms·
Why should you hire a polyglot programmer?
- mello151 13y agoA lot of great points. I've worked with a lot of people that know one language well but are almost willfully ignorant to others... even when the skills are needed on the current projects. I've gotten to where when I interview applicants I worry less if they know the answer to esoteric questions about rarely used features of certain languages and spend more time on architecture, testing/debugging and deployments. It's amazing how many people interview with 15 years of Java but no experience with Continuous Integration and testing techniques beyond JUnit.
- AdrianRossouw 13y ago> but are almost willfully ignorant to others... sounds like every backend person forced to do javascript, ever. Well, until node happened.
- kushti 13y agoI think, "programmer" is always polyglot while "coder" could knows only one language.
- collyw 13y agoWhat's "developer" then? "Software engineer"? I think these terms can be used interchangeably.
- joesmo 13y ago"The person with the second CV could be a better developer on a C# project than your language expert, despite having little or no C# experience." No. What you're essentially stating is more experience is detrimental. That someone with a few months experience who is writing her first application in a particular language / stack will perform better than a veteran. Knowing the basics is important, but having experience not only with the language but with the libraries, apis, build tools, frameworks etc. is what separates a good programmer from a decent one. Both programmers in this case have the basics but the experienced person has a lot more than the basics. I'm not against hiring a polyglot, even one with no experience in the language/stack that will be used. Hiring a polyglot does not make up for experience and knowledge, however.
- jasonwocky 13y ago"What you're essentially stating is more experience is detrimental." It's not so simple. Not all experience is equal. Some folks have 10 years of experience developing software. Others have one year of experience, repeated 10 times.
- collyw 13y agoYes, if people have at least learned a second language you can tell they are one step up from the 1 year repeated ten times.
- edwinnathaniel 13y agoThey are exactly at the same level of proficiency. Writing a loop in a different dialect does not make you one step better. You're still walking albeit with different rythm. In the end, they are essentially performing the 11th time.
- collyw 13y agoI went from Java to Perl (back when Java was all the rage). That really opened my eyes. Perl is dynamic, and you can program functional / imperative. You could do so much more with it in way less lines. You learn to use hashes / maps / dictionaries (instead of arrays being the obvious way to do things) because hashes are encouraged by the language. Also, while Perl's standard OOP, is a bit of a hack on top of the language, it helped me really understand what was going on, unlike Java, where a lot of these things are like a black box. Maybe I should have emphasized learning a second language with a different / multiple paradigms. (Saying that when I later moved to a job using Visual Basic 6, I didn't feel like I learned much).
- edwinnathaniel 13y agoMy experience was the other way around Java => Perl, not liking it. I suppose people have different taste buds. While there are (small) values that one can get out of Java => Perl, being dynamic and functional, your experience seems seasonal (hashes, maps, etc). I felt that these days if one wants to learn algorithms and data structure, Java Collection libraries and Guava seem to be the defining standard. I don't disagree if one is learning Erlang to write scalable message queue coming from Rails. But I definitely disagree if one is learning another programming language and ended up coding the basic web-app, which seems to be the case these days.
- potash 13y agoOfftopic: It's funny that an article about polyglottism has a grammatical error in the title and a misspelling in the first sentence.
- tomasien 13y agoAll I want right now is a polyglot programmer - tommy@knoxpayments.com - remote fine, solving a problem that is killing businesses
- pavel_pt 13y agoOne should hire people who care, and who continuously broaden their own horizons. When it comes to developers, these inevitably happen to also be polyglot programmers in my experience.
- edwinnathaniel 13y agoFirst sentence is correct. Second sentence, the jury is still out. Plenty polygots fail short in writing high quality idiomatic code due to focus in breadth not depth. Writing web apps backed by db in Python, Java, and Ruby are considered as breadth repeated 3 times.
- deleted 13y ago[deleted]
- crazygringo 13y agoWith languages like Python, PHP, JavaScript, Java, or C#, sure -- they're fundamentally very simple languages with a handful of gotchas to learn, they're easy and fairly interchangeable, and your overall programming skill is what really matters. But there are other technologies or "languages" which, paradoxically, many developers think are trivial to learn, like CSS and SQL, but in which years of experience matter far more than any kind of natural programming aptitude. CSS and SQL are heavily implementation-specific, with edge cases upon edge cases upon edge cases that often wind sucking up the majority of your time. If you want complex queries that are still performed efficiently, or complex layouts that don't take weeks to get working properly in all the different browsers, no astronomical IQ or general programming aptitude is ever going to win against years of experience.
- sitkack 13y agoIn this case polyglot seems to mean, "has experienced a lot, traveled the world and is primed for stuff." One can get that and still only have Java or Python or C++ on their resume. We don't litter our CVs with all the stuff we dabble in. Exposure and priming matters, but most of these labels, using github as resume all seem like shortcuts to actually interviewing and talking to people. There are no shortcuts, building teams is difficult and shit is always way more complex than we make it out to be.
- lelf 13y ago> 2 years of Ruby, 1 year of Python and 2 years of Java She is anybody but a polyglot programmer. So this thing the author writing about is common misconception. Yeah, if know some mainstream(ish) languages and can do some common tasks you will unlikely have problems doing some common tasks in another ruby-java-python. Now go write me something rock solid in Erlang. Or (oh boy you better forget your java) Haskell.
- atmosx 13y agoNot to mention that to many rubyists, pythonistas or Javaneze 1 and 2 years of experience, is like saying that you just learned the language. I use ruby ~ 3 years, not professional but more than 5 hours per week and I can say that I don't consider myself a pro or advanced in any way. There are huge parts of the language that eludes me, even in things/frameworks/situations that I have successfully used/implemented.
- n1ghtmare_ 13y agoAgreeing with the comments here and the post - I'd like to add that having experience with many different languages also shows that the dev has a drive to learn, and that's a + in my book.
- edwinnathaniel 13y agoHow do you know that the dev has a drive to learn? Maybe the dev jump to the bandwaggon of coolness? Does the dev who prefer to go deep in a specific tech have no desire to learn just because the dev does not look like learning on the surface?
- collyw 13y agoWhen I was working on a visual basic app, the (single language) developers hadn't even heard of a regular expression. Never met a moderatley experienced Perl developer that didn't know what a regular expression was.
- n1ghtmare_ 13y agoI see your point, however for me It's a pretty safe bet that a dev having experience in multiple languages has a drive to learn. Jumping the bandwagon is not necessary always a bad thing (it could be of course), sometimes it's a sign of curiosity and experimentation.
- edwinnathaniel 13y agoI don't disagree with curiosity and experimentation. But it's a very slippery slope with short attention span as well which seems to be the case nowadays (look at various Rails plugins, majority of NPMs, and 10001 Python web framework out there). When it comes to programming, attention to details matters.
- n1ghtmare_ 13y agoYeah, I absolutely agree!
- JamesBaxter 13y agoI'm new to this game but I think there's a lot more to programming than "programming". I'd love to be a polyglot but I spend so much time learning the differences between App Store "guidelines"/tools, IDEs, application life cycles and the minimum required to use/design for different OSes. That I don't have time to fully grasp each language I use. Does it get easier or do new technologies always have differ just enough to require new learning, for them to be useful?
- tokipin 13y agoYou should aim to learn languages that are different. The point of learning very different languages is that you can start generalizing in ways that make mastery of future languages easier. For example, Python has something called "list comprehensions". These might be interesting to a new programmer, but if you've used a functional programming language before, you have already used something more general (list comprehensions are essentially a syntatic sugar for a couple basic FP functions). Same with many other things like iterators/generators, which are a special case of coroutines. Etc. So if you're familiar with functional programming, you can instantly understand Python's list comprehensions, whereas someone learning Python as one of their first languages might have trouble with them or might not be aware of the various constructs they can get away with. So you really should seek out languages that are very different. As a point of comparison, I wouldn't consider Python, Ruby, Lua, Javascript to be very different from each other. You should try harder than that. But it does pay off and it does get easier as a result.
- benaston 13y agoThis is, after all, how Thoughtworks make their money - they insert polyglot (read graduates/juniors with a smattering of experience in different languages) into projects and bill for experienced professionals (the "seasoned" developers in this article). This article conflates "varied experience" with "good developer" and "seasoned developer" with "bad developer". In the real world, this is not the case. So whilst I agree with the premise that varied experience contributes to being a good developer and that polyglotism is very healthy and a positive sign, I disagree with the broad conclusions implied by this article.