I agree that nothing bets practical projects, but in modern life, you need to learn a lot of background information before jumping into the real world. There are plenty of ML projects and examples that are equivalent to the ToDo (12-factor app) in complexity—single component, boundaries clearly defined. The next steps in the real world would be—here is a payment platform with 270+ services and components, how does your AI/ML component fit into it? Who do you talk to to figure out the business value of the AI/ML component (business analysis/domain driven design)? How do you talk to your creative colleagues who are responsible for user experience in a productive manner ( i.e. jobs to be done )?
I see this gap quite consistently and I am trying to address it on the technical side by building medium size AI/ML project with 3 pipelines http://thepattern.digital/ and I think modern ML/AL professionals need to know things above before jumping into any real-world project.
I think the most important point of teaching maths for data science is to build mental models in the data scientists head. It takes time and part of the process of learning maths and usually takes 2 years (or two years course in university). Bypassing that process backfires—startups raising money for AI/ML normally take 2 years before shipping the product.
I think the mental model part is the most difficult to teach, but obviously, we are paid for specialised skills—like coding in python, hence everyone wants to jump into coding python without putting effort into learning maths and building proper mental models, which I think is wrong. The coding part is easy—I am comfortable with Octave/Matlab and Python or Rust. I would back Andrew Ng for choosing Octave for example—it’s one of the most concise ways to get ML concepts working, although I disliked it when I was a student, then I tried to translate the following code into Python: