I don't agree with the author's claim "The difference between good at math and bad at math is hard work."
I have a M. Sc in math, but never worked hard at it. I went to the classes, paid attention to what was told and visited most of the exercise classes, but, except for the first few weeks, never prepared for either of them. That left plenty of time to spend on other things, such as sport and reading the art of computer programming, Compute! Magazine, Byte, etc. (partly because of that, I am not that good at math)
IMO, it is the same with about everything else. For example, there are people who just throw a baseball well, and there are those who can learn to throw a decent one through hard work.
Two reasons: 1. The desire to create something or solve a real problem
2. The interpreter