Ever watch a cooking reality show?
What always surprises me about those shows is how ill-prepared the chefs are. Usually it’s because they are too focused on one type of cuisine. Maybe it’s Cajun, Italian, or classic French. Leaving their comfort zone for some of them is challenging… not only that many suffer from one great Achilles-heel – a lack of ability to make desserts. It’s not that they don’t have the technical know-how, it’s because they don’t prepare themselves – maybe avoiding desserts, because they don’t like making them, or are perplexed by the thought of baking.
Programmers are very similar to chefs. We both use algorithms/recipes, and tools to build them. Many programmers suffer from similar issues to chefs. They know how to code in one family of languages – C, or maybe Java, Objective-C? But their programming knowledge suffers from a lack of breadth. Do they know how to code in a language family that is not derived from C? What about Fortran, Cobol, Ada? Awk, Pascal, Modula-2? Julia, Rust? Exploring new languages helps make you a better programmer. Writing Cobol programs may not be everyone’s cup-of-tea, BUT a basic understanding of the language provides a better understanding of programming in the large.
The concepts of a programming language are universal. An if statement in any language has roughly the same syntax, it does the same thing. It is usually the intricacies of a language which differentiate them: how they store and deal with arrays, do they have a built-string data types, pointers?
Bottom line? Learn a bunch of programming languages, it will make you a better programmer.