Companies Look For Specialists But Keep Generalists Longer

If you know a lot about one single language, it may make it easier to get a job, but in the long run, language usage dies or loses its charms and you'll need to find something else. Knowing a bit about a lot of other languages helps in the long run, not to mention that may help you think of better solutions.

Even if you're in a shop that is mainly in one single language, that's no excuse to not check other languages. But, then again, learning languages that are just small changes on the current language would not help you either.

Alan Perlis, author of the ALGOL language, has one excellent phrase: "A language that doesn't affect the way you think about programming, is not worth knowing."

I still maintain one single rule for programming languages: The language I use at work must not be the same language I use outside it1. That simple rule made sure I was always learning something new.

Learning a new language can also help you understand things in some language you used before: Rust help me understand how generics works in Java; seeing how to do dependency injection in C++ help me understand how Spring does it in Java.

On top of that, because I was always learning something new, moving between projects was something that happened a lot. At one point, I was hired to work with Python, but the contract was taking too long to be signed, and my manager asked if I could help some other team with their iOS application. Because I did learn a bit about Objective-C, surely I could help. Later, another project in C show up and guess who also knew C?

1

... which led me into some sad times when I was working with Python.