I totally agree. They lay person assumes that being good at math means a person will be good at programming but it's untrue. Mathematics as we do it and represent it is very far removed from Turing machines, whereas as Lambda calculus is mathematics.Interesting post!
I agree with you. I shake my head when someone says a background in math and sciences helps with learning to program. I don’t have the proof to dispute these statements, but instinctively question them. I’m general, I feel that a background in the sciences is NOT helpful. Mathematics, maybe? Geometry - yes. Applied Mathematics - yes. And my reasoning is that both start with a limited set of axioms upon which a rigorous process to establish theorems are built.
In programming one might say the axiom is the available structure to the code, be it syntax or control templates, resulting in a hypotheses/ program. If one accepts that a complex program is a collection of smaller programs, the analogy extends.
Its not as well known as it could be, but both Turing machines and Lambda calculus are logically equivalent definitions of computability. They can each define what a mathematical computation is but do so in very different ways.