Why Be a Polyglot Software Engineer?

Ithamar Diaz
Soluto Nashville
Published in
4 min readOct 22, 2018

A polyglot is a person who speaks many languages, therefore a polyglot software engineer is a person who writes software with many programming languages. It might be tempting to box yourself into a single language in hopes of attaining mastery. But pursuing the path of a polyglot is far more rewarding. It puts you in an advantageous position and helps you build a more resilient skill set.

It reinforces the basics.

At some point in a software engineer’s career, they’ll be asked to rapidly switch gears and work with an unfamiliar language. Luckily, having a good understanding of programming concepts speeds up the process of learning a new language. Programming concepts are shared between languages, so seeing these concepts in other languages will reinforce them. For example, if you learn about looping or flow control concepts in one language, you‘ll see familiar concepts in other languages, as well.

It helps you tackle more problems.

A software engineer who better understands all programming paradigms can tackle difficult problems. For example, some problems might be easier to solve using a declarative language over an imperative language. Learning languages from each paradigm will help you learn more about the paradigms themselves.

It improves your current languages.

Studying different languages can pinpoint your strengths and weaknesses in the languages you already know. Sometimes new languages are created because particular tasks were too difficult in an existing language, studying how the new language approached that particular task could help you approach the same tasks in the languages you already know. To be considered proficient, a software engineer must produce functioning software that’s also syntactically idiomatic and easy for others to maintain and understand. To be a polyglot software engineer, you should be at least proficient in the languages you choose to learn. Achieving proficiency in a language can be done in a shorter amount of time than mastering a language and will allow the engineer to learn more languages.

It makes you a jack-of-all-trades.

A polyglot software engineer is versatile team member, and the industry values that versatility. Often polyglots have not mastered a language, and that’s okay. Languages and frameworks will come and go, but programing concepts and computer science theory sticks around. An engineer who’s well versed in programing concepts and computer science theorems, plus proficient in different languages, is building a desirable skill set.

It helps you adapt code examples.

An engineer proficient in many languages should be able to adapt code examples to another language. When using a library or an API, the code examples might be in a language an engineer doesn’t know. But as a polyglot software engineer, you might be able to adapt those examples because of your exposure to similar languages and knowledge of different programming paradigms.

How to become a polyglot software engineer.

  1. Pick a language to learn from a paradigm you haven’t learned. Below is a non-exhaustive list of paradigms and some example languages for that paradigm.
    Declarative: SQL , Prolog
    Object Oriented: Scala, Java, C++, Ruby
    Functional: Clojure, Haskell, Elixir, AsmL
    Event-driven: Javascript, Visual Basic
    Procedural: Lisp, Python
    Imperative: C, C++, Java
    Multi-paradigm: Perl
  2. Complete a tutorial. Everyone learns differently and there are a different ways to complete tutorials for the chosen language. Youtube tutorial videos, tutorial websites, technical tutorials on blogs, etc. My favorite way to learn a new language is through koans, fixing broken tests written in the chosen language. Be patient, it might be difficult. Look for the programming language concepts you already know and see if you can find them in the chosen language. If you need more help find a forum for the language or join the subreddit for the language.
    Ruby Koans
    Clojure Koans
    Javascript Koans
    Dart Koans
    Java Koans
  3. Write a working piece of software in the chosen language. To help with motivation, focus on something you are already interested in and write software related to that interest. The software doesn’t have to be the next big startup, just complicated enough to try to use more than just the basics of the language. This step will help you get closer to being proficient with the language.
  4. Contribute to an open source project that uses that chosen language. Do not skip this step as it will force you to have to write code in the chosen language that should be maintainable by other people. If you aren’t using the chosen language at work, then you will not have an easy way to know if you are writing maintainable code.
  5. Repeat step one.

--

--