Thanks for responding. Here’s what I mean about proofs. I learned how to do them in college, and in the early classes we got a lot of leeway on grading, and then as we moved up they expected more and more rigor. But it was still a conversation, like if I got dinged a few points on an exam question, I could take it to my professor and make my argument that my proof was valid, and I might get a point or two back. The proof-as-mathematical-object either exists or does not, but deciding whether my answer
pointed to that proof was a social exercise.
Professional mathematicians also cut either other some slack. Most proofs published today have small errors — typographical, skipped steps, etc — and those bugs are never fixed. Despite the bugs, we’re confident in the results, and that confidence is a product of social consensus.
On the other hand, also in college, I had my programming classes, where I would turn in my code and they ran it through a test harness, and my grade was the number of tests that passed. So, if there was a syntax error, I got a 0. This was brutally harsh to the good students who attended every class, took notes, and studied, but who did not conform their minds to writing code. But that’s how we learn programming, because the compiler doesn’t care about intentions and “almost” is worth nothing.
Alan Perlis said “programming is an unnatural act.” It’s not harder than other jobs — in many ways it’s easier — but it’s much weirder, and it makes you weird. Professional programmers write bugs, constantly: why can’t they just write the code, without the bugs? Because our minds aren’t built that way.