The point is that even a "shallow" understanding of math is much deeper already than many, perhaps most realize. Many high-schools don't seriously try to teach math at all - there's no such thing as "high school math" in this day and age. You need college to even have a chance of being exposed to it properly.
(Then there's the whole "learning to code" part, of course. This is actually where middle and high school math provides useful application domains for learning to code, and people have tried to teach coding in schools since the 1980s.)
I don't really think you need much math to learn to code at all. Again, some forms of code is helped by math, but I've also seen beginners struggle to reconcile differences between whatever programming language they were introduced to an mathematical notations. There's no doubt there are close relationships between math and CS, but you can a lot of CS just fine without ever being aware of those relationships.
I opted out of pretty much all the math I could at university, and at mine you could opt out of almost all of it (I had to take one introductory course which mostly served to bring those who hadn't taken much in high school up to scratch, and one introductory stats course).
Many of my other courses touches on subjects where a mathematician probably would say "but that's math". E.g. my compiler courses of course touched on a lot on parsers and grammars that are effectively just math restated. But those restatements matter. Maybe if more math was taught in ways that downplayed the dense notations more people would actually stick with it.
Code is pretty much defined by having "dense notation". Learning to code involves plenty of familiarity with formal, logical reasoning; simple math helps provide a convenient domain for applying logical reasoning to meaningful problems.
Code is nowhere near as dense as it can be in most languages - we make considerations for human readers by making languages verbose on purpose to a much greater extent than most math (of course there are exceptions like e.g. J and K and similar languages). Most math violates the intent of pretty much every coding standard there is in focusing overly on density over readability to someone not intimately familiar. On top of that, math very often omit a lot of detail in a way code can't, that requires a lot more effort from the reader. I get that it's intentional - the focus is on expressing what is different in terms of a shared context people familiar with the math already has, while in code only a few fringe languages tends to take this approach over favouring readability.
And yes, we need familiarity with formal, logical reasoning, but the primitives you need to be able to understand coding are really basic, and often easiest introduced by showing people code rather than giving it the mathematical treatment.
It's not necessarily math itself that is the issue, but mathematical notation and the way we teach it - there's a very stark divide, I've observed, between those who prefer those really terse notations that you must take time to decipher, and those who want notations that can be read like prose. For my part I'm firmly in the latter camp.
> but the primitives you need to be able to understand coding are really basic, and often easiest introduced by showing people code rather than giving it the mathematical treatment.
The primitives are hopefully simple, but the logical implications are not. That's why it makes sense to have both.
For a subset of CS that most developers will never need, sure. Nobody is arguing math is never needed for CS, but most developers, and indeed a whole lot of CS researchers will never need much of it.
(Then there's the whole "learning to code" part, of course. This is actually where middle and high school math provides useful application domains for learning to code, and people have tried to teach coding in schools since the 1980s.)