5 min read

Recently, I was talking to someone who has been working as a developer for over a year. They asked me which programming languages they should learn in order to improve their employability and to grow as a developer. This made me think: Do we really need to be a polyglot to be a good programmer?

A polyglot programmer is someone who can write code in multiple languages. Most of us are already using multiple programming languages. Someone working on web apps uses HTML, CSS, and JavaScript. Similarly, backend services might be written in a specific language, but the developer might still be using SQL for database queries or YAML for configuration files.

As developers, we like to try and learn new programming languages and frameworks. We do this for many reasons, to solve specific problems, to find a better alternative, or simply to keep ourselves up to date with what’s new and trending.

The benefits of being a polyglot programmer

There are obvious benefits of being a polyglot developer.

  • It increases your employability. Being proficient in multiple languages looks very good on your resume. It shows your experience as a developer and also indicates that you are flexible, able to work with different tools in different situations.
  • It provides you with more opportunities and greater variety. When you’re looking for a new job or maybe even in your current role, if you are able to write code in multiple languages many more opportunities open up to you. When you’re a polyglot you become much more in control of your career destiny!
  • Developer happiness. Many developers simply feel more productive when they are using a specific language. But to know what you enjoy, you need to be open minded and willing to explore lots of different languages. Polyglots get to try out different syntaxes, get to know different communities – and this exploration is surely one of the best things about being a developer.

Along with all these benefits, working with different languages give us a chance to learn about different programming paradigms. We can learn different ways of solving a problem and different ways of thinking. We can then bring all this learning together to write better code.

The challenges

While there are many benefits of learning and knowing multiple programming languages, this constant learning comes with its own challenges.

  • Lack of proficiency: In his book “JavaScript: The Good Parts,” Douglas Crockford talks about good and bad parts of JavaScript. Similarly, other languages also have certain aspects that should be approached with caution. If you’re frequently changing programming languages without spending enough time to learn one properly, you might run into issues around things like performance and security.
  • Maintenance becomes a nightmare. Having too many languages in a tech stack will likely become a maintenance nightmare for both the development and the operations side. This will take you somewhere that is the opposite of agile and efficient.
  • Developer fatigue. Constantly learning and adapting to new languages and technology may result in developer fatigue. It’s a fact of tech today that developers feel stressed and under pressure – this is bound to affect not only their productivity but their health as well.

From an organization’s perspective, there are tradeoffs when adding a new language to their tech stack. There may be operational costs and costs to up-skill the team. On the upside, code quality and productivity may improve.

Companies who avoid investing in up-skilling their teams and upgrading their tech stack may end up with systems that are difficult to maintain. Even small changes may take weeks to deliver and finding skilled developers can become challenging.

On the other hand, constantly changing programming languages and technology may result in features not getting delivered for months; in some cases years. There are many cases where a project started in one programming language and after years of development, the team decided to rewrite the whole system in a newer language or framework. While architectures like microservices solve some of these problems by allowing us to write different parts of a given system in different languages without needing to rewrite the whole system, it is important to understand the cost of introducing a new language. The benefits we get out of it should always outweigh the cost.

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” – Martin Fowler

How to become a better developer

Learning different programming languages is one way to grow as a developer but there are others things we can do to improve.

  • Write clean code. As developers, we spend more time reading code than writing it. Writing code that is easy to read and understand is one of the key traits of a good developer.
  • Write easy to maintain code. A good programmer puts in extra effort to make sure that the code is easy to maintain. Use design principles and test-driven development to make sure that the code can be modified with ease and confidence that it is not going to affect the existing functionality.
  • Understand the problem. A good developer will try and understand the problem and then pick the appropriate tool to solve the problem instead of starting with a technology just because it’s trending.

There are lots of obvious advantages of learning multiple programming languages. Not only does it look good on a resume, it also helps you to improve as a developer. However, it is just as important to understand the business problems you’re trying to solve. Whether you’re a polyglot or not, the most important thing any developer can do is focus on the problems instead of the tool.

I hope you enjoyed this post; please let us know what you think! Are you a polyglot? Do you think trying to become one is important today?


Amit Kothari is a full stack software developer based in Melbourne, Australia. He has 10+ years experience in designing and implementing software mainly in Java/JEE. His recent experience is in building web applications using JavaScript frameworks like React and AngularJS and backend micro services/ REST API in Java. He is passionate about lean software development and continuous delivery.

2 COMMENTS

  1. Nice post, i´m currently starting my journey to become a developer, so i don´t have years of experience to back up my opinions, but i think being a polyglot is really helpful if you give you enough time to learn the language and learn it well, i don´t think you´ll be really competent if you rush the knowledge just for the sake of knowing something new.

    • Thanks, Edgar.

      You’re right. It’s indeed helpful to be a polyglot and programmers do need to have a strong grasp over various programming languages. It doesn’t really help rushing things and being a Jack of all trades. One cannot call themselves a polyglot if they just know how to write a ‘hello world’ in many languages. If you look at some of the true polyglots of the developer community, most of them would have no less than 7 to 10 years of programming experience under their belts. They’ve worked with several languages and have applied them to solve various real-world problems, thus improving their skills in each language. That being said, it’s not written in stone that you’ll only be able to become a true polyglot after a decade of programming experience. It all depends on the diversity of the projects you work on and how you choose to solve problems.

      After working closely with experts in several broad fields of software development, my advice to you and to all those just starting out their journey into development is simple. Select a field of development that interests you, start off with one language at first and learn it well. Stay involved with the community and updated about the various tools and languages that people are using to solve problems. Try out a new language and see how it helps solve your problems better. After all, learning is always continuous.

LEAVE A REPLY

Please enter your comment!
Please enter your name here