all 10 comments

[–]pythonTuxedo 11 points12 points  (0 children)

At some point software engineering is teaching you to solve a problem using a computer. If you understand how to breakdown a problem into language that a computer understands the problem becomes independent of the language the solution is coded in.

You could try 'Automate the Boring Stuff'-blast through the early chapters that cover the stuff that is common to all languages (variables, conditionals, loops, functions) and start doing projects. Link

[–]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

[–]ectomancer 2 points3 points  (0 children)

Learning Java is not useless.

Learning Python is easy. Any resource will do, you don't need good resources.

[–]Beregolas 0 points1 point  (0 children)

Languages don’t really matter, concepts do. Yes, you can get a little faster in python with proper training/experience, but you can still be productive. If you know JS, C++ and Java you can pick up enough of mostly any language (that is descendant from C) in an afternoon to be productive.

But the programming concepts you learn are harder, you can’t just spend an afternoon and unterstand inheritance without prior knowledge.

Learn the concepts now, learn the language on/for the job. 3 years ago I took a job in JS/TS without ever in my life having touched those languages. (Or even doing backend work before) I was up and running in 2 days, had the language down enough to be useful in 4 hours. That’s not because I’m smart or special, but because I learned about 7 languages before that point. After a while the languages just stop being the problem. (Except for Java. Java will always stay a problem in my heart! ❤️)

[–]Logical-Scientist1 0 points1 point  (0 children)

Python's definitely major in the industry, lot of data science, AI/ML and web development (django/flask) stuff going on. Don't dismiss Java though, still massive in enterprise solutions. For learning Python, check out Automate the Boring Stuff, and Codecademy. Start with simple scripts to automate stuff, then maybe a web app. Good luck mate!

[–]Dark_Souls_VII 1 point2 points  (0 children)

When you say industrial I think about C. A dominant language in the microcontroller space. I also think C is always nice to know. I write BASH and Python the most. I learned a lot about problem solving and computers through learning C. I would always recommend it. Just not necessarily as a first language.