Automate the Boring Stuff with Python by Al Sweigart
So this is, in my opinion, the best resource to get started with Python, it's a free online book written at child level but goes in depth with all the major object structures in python.
Python for Data Analysis by Wes McKinney
From there, I would move on straight to numpy and pandas (and the whole scipy ecosystem). This is what put python on the map, as it gives you all the features of matlab, excel, SQL
Clean Architectures in Python by Leonardo Giordani
From there, this book helped me understand best practices for production level projects.
Application of Python Scripting Techniques for Control and Automation of HEC-RAS Simulations
by Tomasz Dysarz
This is the paper on automating RAS in Python that inspired me to learn the language in the first place.
Australian Water School
Personally, I learn best from books. I understand many people learn best by video. The Australian Water School has tons of course content available on Python specifically tailored to water resources engineering.
When I first learned Python, I tried to immerse myself in the language, much like you would to learn a spoken language. After work, I would read the Python books linked above. At the time, I was an Excel power user, using Excel for everything. To get comfortable in Python quickly, I quit Excel cold turkey and forced myself to use only Python for all the tasks I previously did in Excel. It was tough, but eventually, you become just as comfortable working with pandas dataframes as you were with an Excel sheet.
Learning Python today, I would recommend a bottom-up approach, where you study the fundamentals, starting from the most simple data structures, concurrent with a top-down approach, where you start with code generated from GPT or found online, and slowly learn to adapt it for your own use cases. A top-down learning style brings immediate value and motivation to learn, but at the end of the day, you do need to grow the semantic tree from the bottom up, where high-level knowledge is ultimately rooted in an understanding of low-level concepts.