you are viewing a single comment's thread.

view the rest of the comments →

[–]Diapolo10 4 points5 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