3 ms·
The answer to your question is actually much more nuanced than one would expect it to be. I have wrestled with it myself and have come to the following conclusi
by rramadass 4y ago
The answer to your question is actually much more nuanced than one would expect it to be. I have wrestled with it myself and have come to the following conclusions;
Computer Language is not only used to express your thoughts but also shapes your very thoughts itself. How? By constraining you with specific Syntactic Constructs and limited Computation Models (aka Paradigms eg. Imperative/Functional/Object-Oriented/etc.). Thus you first need to learn one language very well w.r.t. understanding all the different Computation Models expressible using the syntactic constructs of that language. Read the book Concepts, Techniques, and Models of Computer Programming
by Peter Van Roy and Seif Haridi(https://www.info.ucl.ac.be/~pvr/book.html https://www.info.ucl.ac.be/~pvr/book.html) for insights. In your own case since you are already familiar with Python (in my case it is C++), learn how to express the various "Paradigms" using Python itself thus becoming a "True Master" of that language.
Simultaneously, you look at the whole Computing domain, identify the most essential subdomains and learn a few languages which naturally fit into them. This gives you the tools needed to work anywhere on anything and understand what is actually happening thus truly making you an "expert" problem solver. With that in mind i suggest first learning C (and then follow with C++) since it underlies everything i.e. universal glue language, de-facto binary ABI standard etc. Next we see that concurrency is fundamental to all systems today (multicore/multiprocessor/distributed multisystem) and thus we need to learn a language which is explicitly designed for this. Erlang is that language (followed by Elixir).
Approached in the above manner, one need not get lost in the "babel of languages" which is unproductive but one is able to balance actual learning with practical considerations.