Pros: popular and commonly used; good for data science
Cons: roughly the same paradigm and Javascript. weak/dynamic/duck typed, interpreted, garbage-collected.<p>I'd recommend learning a language that departs from one or more of those. Maybe learn a statically-typed language, or a functional language. If you're up for a bit of a challenge, learn Rust. It's strongly typed, compiled, and definitely NOT garbage collected. It's possible to get a running program very quickly, but the learning curve steepens after that.<p>If you do want to try Rust, here's some starting points<p>- <a href="https://chrismorgan.info/blog/rust-fizzbuzz/" rel="nofollow noreferrer">https://chrismorgan.info/blog/rust-fizzbuzz/</a><p>- <a href="https://stevedonovan.github.io/rust-gentle-intro/readme.html" rel="nofollow noreferrer">https://stevedonovan.github.io/rust-gentle-intro/readme.html</a><p>- <a href="https://www.lurklurk.org/effective-rust/intro.html" rel="nofollow noreferrer">https://www.lurklurk.org/effective-rust/intro.html</a><p>- <a href="https://fasterthanli.me/articles/a-half-hour-to-learn-rust" rel="nofollow noreferrer">https://fasterthanli.me/articles/a-half-hour-to-learn-rust</a>
You said you've "learned" Javascript. Perhaps you've passed a test. I doubt you've really mastered it or understood how it works under the hood. I'm not saying this to insult you. I only say that because I've been doing it for 20+ years, and all of us, everyone, could probably spend ten more years learning to write even better code.<p>On the other hand, new programming languages increase your understanding of some ways of doing things. You learn other kinds of syntax. You grok more.<p>I guess I'd ask myself: What's the point? What do I want to learn Python <i>to do</i> or <i>to make</i>? Why Python <i>specifically</i>? Why not C++? Why not PHP? Why not just take those Javascript skills and learn to write NodeJS servers, which are a whole different beast from your front-end Javascript, and which can accomplish most of the same things as other back-end languages?<p>I'm asking because, if you don't have a real reason to learn a language, it will just be something you learned that you never use. If you <i>do</i> have a real reason to learn it, you'll probably learn it because you need to. If you can't learn it by trial and error, without taking another class, then you haven't learned enough Javascript yet. All languages lead to each other, and all the information about them is available for free.<p>Think about what you want your career to be. Do you want to be a full-stack developer? Then Python + JS probably isn't the best choice at this point. Do you want to tinker with AI models? Learn Python because for now it's the go-to language. Do you want work on games? Learn C++ and NodeJS. Do you want a steady job in the retail sector? PHP.<p>If you just want to be a colossal prick you can write everything in Brainfuck.
Programming languages have characteristics that make them better and worse for various tasks.<p>While it's possible to complete almost any task in any language, some languages aren't optimized for some workloads.<p>JavaScript shines in IO bound tasks and time to market on the server, and of course is the language of the web.<p>Systems languages shine for high performance and low level OS capabilities.<p>IMHO python shines for quick script writing with blocking IO for doing things like file processing - I use it as a better bash.<p>There's a long history of using python for other things like web servers (Django) but I don't think it's very competitive in that space these days with better options like node, go or even elixir.<p>Very much worth learning different languages to understand the things they are good at and the theories behind their design.<p>From a practical standpoint, employers like seeing a well rounded developer with experience in more than one language.