A question I am often asked via sites like Quora, is what language (or sometimes framework) to learn next.
My answer is not that there is a given one, but rather it depends on what you already know. This may sound trivially obvious, when you consider that they might already know whatever would be the obvious next thing. But itâs a good bit deeper than that. The one to learn next is: the (reasonably popular) language that is most different from what you already know.
There are many âaxesâ along which we can divide languages:
- high vs. low level
- statically vs. dynamically typed
- strongly vs. weakly typed
- interpreted vs. compiled-to-VM-interpreted-bytecode vs. compiled-and-linked
- Functional vs. Object-Oriented vs. Imperative vs. Logical and so on
On the first go-round, aim to hit each section of each axis. So, aim for what ticks the most unticked boxes. For instance, if youâve done only Functional and OO languages, look mainly at Imperative and Logical languages, and if youâve only done strongly statically typed languages, look mainly at dynamically weakly typed languages. Donât just learn the language, though, learn how that set of choices makes it different. Learn the advantages and disadvantages of each idea. After youâve done each section of each axis, then you can aim for new combinations.
In addition to learning âreasonably popularâ languages, also learn a âjokeâ language or three along the way, just for âgrits ân shinsâ, like COW, Whitespace, Befunge, Malbolge, or my favorite, Rockstar.