How do I approach learning Data Science/ML the 'rightest' way? First of all, I am not sure if this is the right place to post this so please do let me know if it isn't and tell me where it should be. I really just don't know where to go with this question.

Some backstory: I am going through my 2nd semester of my 2nd year of Software Engineering. I love math, I love computers, I love data and I love image processing so the most logical place for me to be is Data Science because I seem to be gravitating towards ML/CV a lot. 

Thing is, I want to start learning Data Science/ML but I don't know where to start. Everyone keeps recommending online courses such as Andrew's coursera course but I have become somewhat skeptical of most online courses because they seem to love simplifying info too much that I feel like it just passes the threshold of it being useful info. 

My assumption is: learning Data Science/ML/CV requires a very strong and rigorous foundation. I shouldn't start learning it with high level tools and little understanding of what makes it what it is. This is my problem. I don't know where to begin learning that way. 

I searched for books and the two books I found people talking about were: 


Pattern Recognition and Machine Learning, by Christopher M. Bishop. This book seemed to be very rigorous with a strong focus on the mathematics and intuition of things (looking at its index). Not much skepticism towards this one.
Hands-On Machine Learning with Scikit &amp; TensorFlow, by Aurelien Geron. This one seems to be extremely popular and almost unanimously praised/liked/recommended by people but just looking at its name I felt a bit skeptical that it might have less focus on building strong foundation/intuition and more focus on using high-level tools.


I am open for other suggestions if you think some 3rd book/resource is more adequate for my need. I'd also greatly appreciate it if you briefly explain why you think it is more adequate.

Also it's worth noting that I have no problem with high-level tools and I know that I will eventually have to use them. I just feel like I'd be significantly better at what I want to do and valuable if I start from there.
Welcome to the community!

I normally don't answer questions like this, they're pretty broad and there are many others just like it. It seems like you're not actually asking how to get started, you already seem set on reading some books (which is great!), so let me answer that question, rather than a very broad 'how to get started'.

First of all, I'd like to challenge your assumption about learning from the bottom up, and offer an alternative opinion (yes, this part is just an opinion). I'd instead encourage you to get your hands on the high level tools and start using them right away. If everything we ever did required us to forego abstractions and learn everything from the beginning, we'd still be reinventing the wheel over and over. Start experimenting with the existing tools and supplement that with your reading. You'll develop an excellent understanding this way.

So to answer your question... I'd recommend the second book you quoted: Hands-On ML with Scikit Learn and Tensorflow. This book will teach you good habits right from the beginning, give you a good understanding, and get you using those tools right away.

Best of luck.