16th January 2022, 10:54 AM
I think focusing on one language is a good starting point. I think a lot of people get caught up on different languages and want to be "language-agnostic" where they just know general ideas, rather than code-specific things itself. But I've found if one does that, one just really slows and is uncomfortable in every single language.
I'd recommend sticking with one language and moving forward. If one wants to learn, I suggest C. If one wants to just do things, I suggest Python.
By "things" I mean that Python is a one-stop-shop, and can do everything: websites (flask), data analysis (scipy), machine learning (pytorch or keras/tensorflow), or even game dev (pygame) all in Python.
One may find YouTube videos out there where people suggest learning Python, but I believe Python is just a tool. Every aspect of hardware is completely abstracted away and one learns nothing about it. All aspects of data management are done "underneath the hood". One only need focus on data analysis, never any aspects of the machine itself. In C, one learns how to do that. It will be positively frustrating, I'll have you know, working in C, but it will be so much worse to learn Python first, then learn C afterwards if one ever needs to learn C in the future.
One could make an argument that Rust or Go is better to learn than C, but no, Rust/Go are like an abstracted C, which is pointless from a learning perspective. They're useful in production, but learning is not production.
I'd recommend sticking with one language and moving forward. If one wants to learn, I suggest C. If one wants to just do things, I suggest Python.
By "things" I mean that Python is a one-stop-shop, and can do everything: websites (flask), data analysis (scipy), machine learning (pytorch or keras/tensorflow), or even game dev (pygame) all in Python.
One may find YouTube videos out there where people suggest learning Python, but I believe Python is just a tool. Every aspect of hardware is completely abstracted away and one learns nothing about it. All aspects of data management are done "underneath the hood". One only need focus on data analysis, never any aspects of the machine itself. In C, one learns how to do that. It will be positively frustrating, I'll have you know, working in C, but it will be so much worse to learn Python first, then learn C afterwards if one ever needs to learn C in the future.
One could make an argument that Rust or Go is better to learn than C, but no, Rust/Go are like an abstracted C, which is pointless from a learning perspective. They're useful in production, but learning is not production.