How did you feel when you first came across a global variable, or even a pointer? It seems to me that math-first people would probably find C to be an abomination.
I believe one thing which came really natural was to think in virtual machines, to see a programming language as something which acts upon a fictitious environment, where certain instructions map to certain consequences. Of course programming and mathematics are very different activities, but one core principle that I always relied on was thinking in abstractions. What option do I have to manipulate the environment and what invariants are there? How are complex thing constructed out of others?
>It seems to me that math-first people would probably find C to be an abomination.
I certainly don't. You might do so if you wanted programming to be an expression of pure mathematics, but I do not think that is the right approach. C does well for what it is an abstraction over an underlying, real machine and thinking of it as an abstraction is the right thing.