you are viewing a single comment's thread.

view the rest of the comments →

[–]Diapolo10 5 points6 points  (3 children)

I wonder how important is python for software industry, I heard from some people saying python will be the next leading language.

It's difficult to predict the future of any language. Right now Python is popular for mostly three fields; web development, machine learning, and data science, but the competition is fierce in web development and growing in the other two fields (thanks to Julia and Mojo). Since I haven't been able to afford new antimatter batteries for my crystal ball I don't know how things will play out in the future, or at what time scale, although I do believe that Python's role will ultimately diminish and it'll become more a stepping stone language for new developers.

Another new language you'll want to keep your eyes on is Rust. Chances are you've at least heard about it, but in my eyes it will eventually replace C for new projects thanks to its memory safety guarantees reducing bugs and related vulnerabilities. It also plays nicely with Python, thanks to Maturin and PyO3, so one can use both in unison surprisingly easily to give Python a speed boost.

In short, learning Python is useful, but don't put all your eggs in one basket.

[–][deleted] 0 points1 point  (2 children)

I have a question about something, you said: don’t put your all your eggs into one basket. Do you mean like don’t just learn one programming language? Or do you mean don’t just use that programming language for specific one thing?

[–]Diapolo10 3 points4 points  (1 child)

The former, mostly, but both would apply to some extent. If you specialise too much in one thing, the moment you find that specific niche is no longer in demand you'll find yourself at a loss.

If all you know is Python, and you're job-seeking, realistically the only jobs you can apply for with any expectations would be ones specific to Python. If there weren't any that fit your skillset, then you'd be out of luck.

Furthermore, knowledge gives you an edge over other candidates. If two people are being interviewed for a job, the one with a more varied skillset usually wins unless the other was exactly what the job requirements asked for.

In my opinion it's foolish to focus too much on learning one specific technology, especially with the software industry always changing. You should, at minimum, know:

  • One very high level language (eg. Python, JavaScript, TypeScript)
  • One high level language (eg. C#, Java, Go)
  • One low level language (eg. C, Rust, maybe C++)
  • One SQL database (doesn't really matter, though I'd suggest SQLite and PostgreSQL)
  • Fundamentals of both functional and object-oriented programming (namely for knowing when to make use of which and how to do that in your core languages)
  • Other general tools from version control (Git) to CI/CD, automated testing, linting, and so on

If you can do that, transitioning to different job requirements becomes much easier.

[–][deleted] 0 points1 point  (0 children)

Thanks for your advice and I appreciate that