I've done some research in theoretical physics, and now I work as a programmer. And the two are very, very different in their reward structure.
In research it was usual to go for a few months without any relevant feelings of success (and not just me, many of my colleagues felt the same). In programming I usually get some positive feedback a few times a day, at the very least every few days.
Funny... that reminds me that in 'Programming Pearls' (http://netlib.bell-labs.com/cm/cs/pearls/) Jon Bentley recommends the book 'The Medical Detectives' by Berton Roueche, as both entertaining and instructive for the kind of lateral thinking needed to debug.
I've worked both as a research mathematician and as a programmer working on production software.
Even applied to the "same" types of problems, I've found them to be very different in day to day activities, goals, incentives ... really they are quite far apart.
Certainly not the same, but I do believe that when a computer model is having some kind of math root, it gets its own coherency and can be developed further. By math root it does not imply a math model. but the idea of creating a set of object with given rules and behaviors like for example a vectorial space. Very often it starts with real "computer tries" but the best part are always when there is an underlying model. I tend even to believe that the level of math knowledge in modern programming has grown up in regards to 15 years ago.