What I have found more frustrating is learning something with longer feedback loops. That's kept me from doing hardware.
But I agree, this doesn't compare against things where there isn't a definite right answer.
Uhhh...wouldn't that be nice.
With programming it works (... or it doesn't). Of course, there are abstractions and clean ways to write a program so in the end I think my prior experience in writing has benefitted me in programming.
Where are we from a feedback loop of a woodworker where when he cuts something wrong he can see it while doing the cut? I have to wait for a 2 to 30min build with end to end testing and deployment to hope that I'm right then two weeks from now a person with Opera starts using the application and proves that I was wrong.
Math is a prereq not because we use it, but because people who don't have the patience for high school math won't have the patience to learn programming.