As a programmer who majored in mathematics at the graduate / post graduate level, I want to add that the 'purity' thing can be interesting.<p>I find it a little difficult to work on programs that don't have a mathematically sound (water tight) solution, but it still needs to be fixed (hacked) in a practical way so the product can ship.<p>I am rarely happy with my programs. But when I am happy, its awesome.