Almost everyone who comes to machine learning from the coding side hits the same wall. You can follow the libraries, you can get a model to train, and then a video casually writes down a partial derivative or talks about projecting onto an eigenvector and the floor drops away. This specialization is built precisely for that person, and that focus is what makes it so useful. The linear algebra course rebuilds vectors, matrices, and transformations from the ground up with a real emphasis on what they mean geometrically rather than how to grind through the arithmetic, and the multivariate calculus course does the same for gradients and the chain rule, which is the machinery sitting underneath every neural network you will ever train.
The Imperial instructors clearly care about intuition, the animations actually help, and the Python notebooks keep tying the maths back to where it shows up in practice so it never feels like abstract homework. Where it gets contentious is the third course on principal component analysis. The difficulty steps up hard, the notation gets dense, and a lot of learners who sailed through the first two suddenly find themselves rewatching videos and grumbling in the forums, so go in expecting that and do not let it sour the strong work that came before. It is also worth being clear about what this is not.
It is an on-ramp, not a degree, so if you need genuine mathematical rigour for research you will outgrow it, and it stays fairly quiet on probability and statistics, which you will still have to pick up somewhere else. My honest view is that for the money this is one of the highest-leverage things a self-taught practitioner can do, because it turns the scary parts of every later course from a wall into a speed bump. Commit fully to the first two courses, treat the third as a stretch goal rather than a failure if it bites, and you will read machine learning material very differently afterwards.