How To Be A 10X Engineer: Be a Polyglot Programmer
Know that it's not enough to just know multiple programming languages, it's also important to have strong engineering fundamentals.

How To Be A 10X Engineer: Be a Polyglot Programmer

I have spoken about this topic briefly in the following video. If you haven't already watched it, I highly recommend it because I will be covering some of the points mentioned there along with some new ones. This is episode 9, I will create an index of all the other episodes so that you can access them easily.


Whats a Polyglot Programmer?

A Polyglot Programmer is a Programmer that's a specialist in 1 or 2 programming languages and is proficient with several others (typically 5 to 6 more languages). Polyglots are not constrained by the limitations of a programming language, and can often switch dialects to suit the unique needs of every problem.

Polyglot comes has Greek origins, which means "many tongues". When you can program in multiple languages, not just at a surface level, but understand each language up-to a certain depth, you become a polyglot.

I have been programming for more than 15 years and have come across several programming projects. I have developed projects in TypeScript / JavaScript, Python, Java, Go, C++, Dart, and am currently learning Rust & Gleam. My specialization lies in TypeScript / JavaScript and Python, but I always remain open to new languages. This ability opened up several new opportunities, both in terms of career and learning for me, more in the next section.


Better Job Opportunities

For the very reason that Polyglots are not restricted to a particular language, they can apply for jobs which demand specific programming languages. Polyglots can pick up new languages within days (or weeks - depending) and do useful work in them right away.

Most jobs demand skills in a particular tech stack or framework, this no more bothers you because you can easily learn it. Polyglots can adapt to new situations easily, and switch between new frameworks and tech stacks with relative ease.

This is because at the very core, polyglots become adept at working with abstractions and seeing under the hood of a programming language. They befriend the language, and wield it with great responsibility. This makes them a great addition to any software team.

Know that it's not enough to just know multiple programming languages, it's also important to have strong engineering fundamentals. If you know multiple languages but don't have good engineering knowledge, you will most likely struggle to get anywhere. Learning a new language can become a painful process full of frustration and misery. Hence, if you're starting out, don't take on the path of learning multiple languages, focus on 1 or 2.


Improved Problem-Solving Skills

Learning multiple languages teaches you new ways of solving existing problems. You learn the art of approaching a problem with 10 different solutions rather than sticking to just the naive approach in a particular programming language. Every language has it's quirks and it's own unique way of solving problems, and when you learn all of them, it gives you more tools at your disposal.

For instance, a 10 line program in C++ might be possible in 2 lines with Python. If you face such a problem, in most cases, you'd prefer using Python than C++ because it'll save your effort and time.

Being a Polyglot makes you a Swiss army knife of the engineering team! Whether it's writing a deployment script in bash, writing a web app in TypeScript, or building a rate-limiter in Go, you can do it, regardless of the challenge. This makes you super productive and effective, and broadens the surface area of the problems you can tackle as an Engineer.


Helps with Mental Model Development

Being a polyglot requires you to form different mental models for different programming language. When you solve a problem in a particular programming language, you learn the specific way of solving that problem in the style of the given language. This helps you think of software in varied ways.

Suppose you wanted to build a banking application. The entire design of the software will vary if you build the backend in Java Spring Boot, or if you write a microservice architecture in Go. While coding skills are important, you should combine them with good system design and architecture capabilities to be at your absolute best in the industry.

Being a Polyglot expands your mind and broadens your perspective. You no longer think of software in restricted and limited ways. The entire set of libraries, frameworks, and technologies that are available across languages become available to you, and that's extremely helpful. Moreover, you try to port useful features and projects between languages so that you can make the best use of the strengths of each programming language.

This helps you think better, faster and with greater depth because you're exposed to more technology than before.


Improves Communication

Because you can now solve the same problem in 10 different ways, you have 10 different ways to think about it and communicate it with your peers. This promotes healthy discussion of trade-offs and leads to better architectural decisions.

Learning a language is essentially a way of communicating with a computer system. By learning more languages, you're increasing the scope of communication with the machine, which enables you to do more with it. In time, you become good at spotting and communicating several design decisions and patterns within a codebase.

A new language has a different paradigm and style. To understand this style, you need to reason with yourself in the learning process. This reasoning process teaches you new terms and concepts which add up to your existing knowledge base. A greater bandwidth of knowledge makes you better at communication with other engineers, because you can now talk with a wide range of engineers who would all have different ways to communicate their ideas.


Improves Programming Speed

My hypothesis is that the number of languages you know is directly proportional to your programming speed. Being familiar with the various grammar rules allows you to twist and turn a programming language's syntax to get things done. For instance, in Python, you end up using a list comprehension for smaller loops. Not a great example, but you get the point.

At times, if you switch between languages too slowly, it can slow you down. However, if you program for a long time in a particular language you get used to it's structure. If you practise multiple programming languages, there's an offset time before muscle memory kicks in and you find yourself "just typing"!


I hope this article motivates you to learn a new Programming Language. Lately, I've been experimenting with Gleam. It's a great programming language and I'll write a detailed post about it when I cover more ground. Remember, learn your engineering concepts well and try to master multiple programming languages, that will make you unstoppable.

Have a great week! ?

Follow me on Instagram (@adityapatange), I talk about tech, meditation, startups and hip hop! ??

I write byte-sized insights on Threads to supercharge your day. ??

要查看或添加评论,请登录

Aditya Patange的更多文章

社区洞察

其他会员也浏览了