I have to disagree with this position in regards to Turing machines. This is because the definition of Turing machines leads directly to the problem of P vs. NP. Within the last month, I came across a problem that turned out to be NP-complete, a problem which also involved a very large data set (coincidentally, the problem was set cover). Had I not been aware of Turing machines and the P vs. NP problem, I could have spent hours implementing an algorithm which turned out to be unusable on the large data set I was working with. Instead, I knew that it would be necessary to find a reasonable approximation to the solution using some sort of greedy algorithm, and the piece of software I wrote actually turned out to be useful to the project we were working on.
I think that is one thing that really appeals to me about Computer Science. Nearly every core course I have taken has helped me as a programmer and as a computational thinker. I think this is part of the original author's problem with Mathematics education, that so much is learned and discarded, or simply taken for granted without being understood. Everything I have learned thus far in my CS education has been conceptually understandable (admittedly with a little work at times) and has helped me in some way (well, except maybe for that one COBOL course I took).