If I may offer a suggestion, one I’ve been exploring myself recently.
When I decided to learn to script I selected a popular book to learn a language that was popular at the time. I learned a lot about the language from that book. When I decided to learn Python, I followed the same process. I bought a popular book about Python and started to learn a lot about the language. I learned about the data types, builtin functions, the standard library. I began to write simple scripts. But soon, I realized that Something was missing. This became very apparent as soon as I bought an intermediate Python book that I couldn’t quite comprehend.
The missing piece had nothing to do with Python, it had everything to do computer science. The study of programming that is not language specific. Program design, functional programming, algorithms, and data structures.
Someone recommended another book that I teaches computer science, how to program, and teaches good program design while also teaching Python along the way. This book is available free online.
The value of learning good software design early on will save you from reading book after book. The book listed above will teach you not only how to write functions, it will teach why to write functions, and then it breaks functions down into components like clean interface design, encapsulation, refactoring, etc. These are good concepts to know no matter what language you use.
Hopefully, this will help others as much as it has helped me.