Jeremy Kun makes some very valid counter-arguments to Sarah Mei's claims, but I was intrigued by one incongruity: Mei claimed (without any supporting arguments) that learning to program was like learning a new language, while in his rebuttal, Kun compares learning both programming and mathematics to learning language (in general). I wonder if there there are not significant differences between learning language (i.e. your first language) and learning a subsequent language.
FWIW, I don't think learning to program is like learning a new language, and I don't think learning to program is like learning a new programming language either. I do think that if you have a good command of rational thinking and the precise and accurate communication of ideas, learning to program is easily within your grasp.
Despite twenty years of software engineering I am nowhere near mathematician enough to engage with the author on this topic, however this ...
>> In programming you have a compiler/interpreter that just dictates how an ambiguity resolves.
... strikes me as wrong. It's like saying that mathematical symbolism dictates the resolution of ambiguities because it states what '+' means. Syntax in programming languages is like operators in mathematics. They are simple, well-defined concepts. The ambiguities arise in the problem domain being described, not in the symbols used for the description, something the author goes on to acknowledge explicitly with regard to math.
FWIW, I don't think learning to program is like learning a new language, and I don't think learning to program is like learning a new programming language either. I do think that if you have a good command of rational thinking and the precise and accurate communication of ideas, learning to program is easily within your grasp.