I feel the exact opposite way. The method you're describing is how I was taught calculus in high school, that is, with a strong focus on practicing mechanical manipulation of formulas rather than building deep understanding. And I just disconnected from that, I got no mental reward from procedurally finding the derivative or the integral of a function for the 100th time. Lack of motivation meant lack of focus, which in turn made my performance drop, and at the time I assumed I probably just wasn't as good at mathematics as I thought I was. That lasted until I got mathematics classes in college, where many of my mathematics courses used a more first-principles-based approach, and I performed well again.
> Sort of like teaching a student to write "hello world" before diving into the low level mechanics of a compiler.
I found Structure and Interpretation of Computer Programs (https://mitpress.mit.edu/sites/default/files/sicp/index.html) the most enlightening intro to programming book I ever read. Its approach is also strongly first-principles-based.
I'm not writing this comment to say that you're wrong; the method you describe may very well work well for you, and many others with you. Rather, I'm using the opportunity to spread an opinion that I feel quite strongly about: the best way to learn a topic is completely student-dependent and there is no such thing as the one true way in which a topic should be taught. The most powerful motivator is always intrinsic motivation, and different minds are motivated by different challenges. Unfortunately it is hard to bring into practice in a batch-processing based education system.