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.
There are obvious benefits of being a polyglot 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.
While there are many benefits of learning and knowing multiple programming languages, this constant learning comes with its own challenges.
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
Learning different programming languages is one way to grow as a developer but there are others things we can do to improve.
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.
I remember deciding to pursue my first IT certification, the CompTIA A+. I had signed…
Key takeaways The transformer architecture has proved to be revolutionary in outperforming the classical RNN…
Once we learn how to deploy an Ubuntu server, how to manage users, and how…
Key-takeaways: Clean code isn’t just a nice thing to have or a luxury in software projects; it's a necessity. If we…
While developing a web application, or setting dynamic pages and meta tags we need to deal with…
Software architecture is one of the most discussed topics in the software industry today, and…
View Comments
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.