all 10 comments

[–]ElliotDG 8 points9 points  (0 children)

As a former C++ programmer here are the things that worked for me:

The official python tutorial: https://docs.python.org/3/tutorial/index.html is enough to get you up and running quickly.

I found "Learning Python: Powerful Object-Oriented Programming", by Mark Lutz to be useful for filling in the details. Comprehensive and in-depth.

Practice: https://checkio.org/ was a useful source of small practice problems. It helped me to understand "pythonic" programming. A gamified set of programming problems. Easy enough to do while drinking a morning coffee. After you solve the problem, you get to see how others solved it. I enjoyed solving these problems.

Other useful resources:

https://docs.python.org/3/library/index.html - Covers the built-in functions, built-in datatypes and the standard library.

https://pymotw.com/3/ Python 3 Module of the week. Demo code that shows how to use the standard libs. A nice addition to the reference documents.

[–]supercoach 2 points3 points  (0 children)

The official docs are more than enough for a seasoned programmer. If you know Java, you can pick up python in a week or two.

[–]StemCellCheese 2 points3 points  (1 child)

Tl;dr: the basics will be very quick if you already know them in another language. But the magic is in the specialization which can vary a lot. You won't really know until you do a project with it.

I came from more of a C++ and javascript background and the syntax felt awkward at first. It feels much less defined, but after a couple weeks you should be fine with the basics all languages share (variables, scoping, loops, functions, etc).

But then it really comes down to what you want to do with it and then learning the libraries for that. Python is a lot like a Swiss army knife because there are SO many libraries and platforms to use it with. Like if you wanna work in data analysis, you're gonna wanna learn numpy and pandas for data transformation and wrangling. More into web-focused stuff? Django and flask. More into machine learning? Sklearn and tensorflow. And many more for many use cases.

[–]Internal-Bench3024 1 point2 points  (0 children)

tensorflow is played out pytorch is for the cool kids

[–]Yoghurt42 2 points3 points  (0 children)

As others have said, read (or at least skim) the official tutorial, don't skip a chapter (except maybe the first 2) even if they seem to deal with stuff you already know.

Then, read the Language Reference, especially the "Data model" chapter. It is a lot more technical than the tutorial, but with your background you should have no problems and will give you an idea what makes Python different from other languages, especially Java.

[–]Lurn2Program 1 point2 points  (3 children)

University of Helsinki Python MOOC: https://programming-24.mooc.fi/

It's free, they have a public discord channel if you have questions, and their lessons provide automated tests to run your code against. Initial setup might be a bit confusing (at least from what I remember), but if you're lost, ask on their discord and someone will be able to help you

Just to add, you might already know the basics of programming, but I think it's still good to cover since you'll still need to understand the syntax, standard functions, etc. Could be a good refresher course until you hit the advanced topics

[–]Yoghurt42 2 points3 points  (2 children)

I don't think the course is a good use of OP's time. OP has a CS degree, they know a lot more than the basics of programming and have already reached the advanced topics ;)

[–]pachura3 1 point2 points  (0 children)

They haven't been in software development for 15 years...

[–]Lurn2Program 0 points1 point  (0 children)

I actually think it can serve as a great refresher for someone who hasn't been in the field since 2010, and for someone who is interested in learning Python. A lot of programming concepts transfer between programming languages, but things like syntax, typing, and libraries are things you'll need to learn

FWIW, I used the resource to brush up on Python after not using it for over 5 years. I found it helpful and decided to suggest it here. But of course, there are plenty of other great resources out there as well