Over the last few years I’ve read a lot of books on computer science, python, machine learning, and stats. Below is a short list of the books that I usually recommend to anyone interested in getting into machine learning. Note that all of these assume you are competent in Python.
1. Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, Aurélien Géron.

This was the book that helped me transform all the theory I’d learnt into actual code. When starting out my ML journey I made a conscious effort to try and gain an understanding of the theory behind (shoutout to Andrew Ng’s coursera courses). But most of practical ML is not coding gradient descent from scratch, it’s using prebuild packages and tools to solve problems. This book helped bridge the gap between theory and practicality.
I read the 2nd edition, however there is a more up to date (Oct 2022) third edition now available. The author also keeps full code examples from the book on his github.
2. The Hundred-Page Machine Learning Book, Andriy Burkov.

Andriy Burkov managed to squeeze in an impressive amount of information into (a little over) 100 pages. I use this book mostly as a reference quick reminders on the fundamentals, in a world where there is seemingly endless information on algorithms and everything ML it’s nice to have a reliable source to lean on (as opposed to a random medium post, or SO question..)
3. The Visual Display of Quantitative Information, Edward Tufte.

First published in 1983, this is the definitive book on everything charts and graphs. Developing fancy algorithms is fun, but a lot of data science is conveying information in a clear, meaningful way. The book focuses on teaching the reader how to produce high quality graphics, maximising data ink, and minimizing chart-junk. It uses examples past and present to highlight well produced and presented charts (including probably the best statistical graphic ever drawing - Napolean’s march into Russia) and graphics that range from slightly misleading to outright wrong. As would be expected from a book on visual display, it is thoughtfully laid out and a pleasure to read.
4. The Alignment Problem – Machine Learning and Human Values, Brian Christian.

Brian Christian delves deep into the topic of bias and ethics in machine learning. This book is a eye opener on why we must train our models with bias in mind. It touches on famous examples of ML gone wrong: gender bias in word2vec (doctor - male + female = nurse), racial discrimination in prison sentencing, and google photos tagging a black couple as gorillas.
The book highlights the fact that algorithms are not sexists or racist, they are simply a by product of the data they are trained on, and it is up to us as machine learning engineers to ensure the input data is fair, ethical, and balanced.
5. Designing Machine Learning Systems, Chip Huyen.

Disclaimer: I’m still in the process of reading this, but I’m enjoying it so much I wanted to include it here.
So you can call a .fit() method, now what? The book is based off the author’s Stanford lectures and covers a wide range of topics from data collection and feature engineering, to deployment and monitoring. It fills in the gaps between training a model on a local computer and actually putting that model into production.
6. Fluent Python, Luciano Ramalho.

Confused by context manager? Perplexed by protocols?
Luciano Ramalho’s book is an excellent next step in harnessing the power that Python can provide. A lot of features in here are parts of Python that many data scientists are probably aware of, but unsure how/when to apply them, for example: OOP, decorators, context managers, and generators.
Generally, I believe that data science can learn a lot from traditional software engineering, and combining more advanced capabilities with other software paradigms such as testing and design patterns, we can all make write more robust code.
While on the topic of furthering your Python skills, this talk by James Powell is probably the best video I’ve seen on advanced Python functionality.