Also, read lots of scientific papers. You'll learn all kinds of interesting stuff, but you'll also need to think about how you would implement their process if a scientist asked you for programming help. Nowadays many papers also come with access to their methods and/or a Github repository.
Because it's so common, you should learn some basic statistics in order to be able to better read things in context, even if you decide to use external tools or libraries to do statistics. I found 'Data Analysis with Open Source Tools' by Philipp Janert (O'Reilly) a great resource: it's language-agnostic, grounded in real-world practices, and assumes you want to solve problems using statistics (and other mathematical analysis tools) rather than treating the math as an end in itself. He includes much valuable context on how and why statistical concepts have evolved, and when you should stick with convention or experiment playfully. Most importantly, he enjoys math and does a good job of communicating his enthusiasm to the reader.
The gist of the article was you need to read books/watch tutorials to learn how to do the basics and how to string those basics together to build things more advanced. But you also need to build things on your own to internalize and progress on what you've learned.
If you spend all your time with books/tutorials you never get out of tutorial hell (this also includes any other method you are using to learn that is NOT building on your own). If on the other hand, you spend all your time just building on your own, you will 1. take longer to grasp and internalize the basics, and 2. spend way too much time reinventing the wheel.
So what to do? Divide your time between the two. Start with a book or tutorial. Follow it verbatim. Finish the project / task it is explaining. THEN delete your code, close the book/tutorial and try to rebuild the project/task. You will stumble. Try to figure out what you can't remember, google it. But only reference the book/tutorial for help when you have exhausted other means (like google, stack overflow, whatever). Use the book/tutorial to get past your sticking point, close it up and continue to on without it.
Eventually you will refinish the project / app, and you will have internalized what you learned from that tutorial's project.
NOW, build something on your own that is SIMILAR but a bit more complex than what you learned in the book/tutorial - add features, etc. Code what you can from what you've learned, google new concepts, and if you are really stuck on bits that were in the book/tutorial, go back to reference those pieces. You're learning new things, internalizing them, and proving you can implement them in custom ways.
I may have mis-paraphrased a bit from the article, but it's pretty close to : Use a book/tutorial to learn how to do the thing -> do the thing again without the book/tutorial -> go do a similar thing on your own.
It's similar to the "Google 'How do I build a website in [X language'" but more structured.
If i can remember the article, I will circle back to add the link