DEV Community

Cover image for Learning a new language

Posted on

Learning a new language

In the words of Malcolm Gladwell, Some of The reasons Chinese students excel at mathematics include the discipline inherited from a culture of rice farming and the greater simplicity of the Chinese numeral system.

All programming languages are beautiful, a lot of them are fun to code with, others have a vital feature at their core, and some are more flexible than a gymnast, but there is one question that I ask myself over and over, should I learn more than just one?
Bjarne Stroustrup once said that learning multiple programming languages may eventually lead us to be better designers, just as studying foreign cultures may help us become better people. And I was obsessed with the idea, that I have got to learn more languages in order to design better and code cleaner. So I tried to learn at least one new language each year and after five years of exploration and coding in different languages, here is my view.
The whole point of learning different languages does not necessarily have anything to do with the syntax of the languages themselves because after learning and mastering one language, switching to a new one would be easy for you.
I think the point is more about understanding the paradigms, knowing how not to misuse them in our projects, their advantages and also the downsides, and how we can get the most benefit out of them depending on the situation. So the best way to learn a paradigm is to code with the languages that implemented that specific paradigm purely. And that's where learning a different programming language comes in handy.
It's like learning OOP with either C#, Java, or C++, Or learning functional programming using Haskell, F#, etc. The one that you are most comfortable with would be the best choice.
Ask yourself why engineers don't use only one language to build different tools. Or why do some companies change their stack? Better scaling? Better Performance? Bigger community and better community support? There are tons of use cases around us.
Studying different paradigms might lead you to start the journey of learning different languages. And you will learn about many different use cases while having fun on the way.


I see each language as a unique set of potentials, new ways, and tools to observe and solve a problem; however This is not to argue against going deep down the rabbit hole in the process of learning one language, it's only about understanding different paradigms and utilization of each to develop a neater, much better code.

Oldest comments (0)