I think there is a limit to the positive feedback programming presents as well. Sure, a program may run as intended, but what if there are bugs that need to be worked out? What if there was a cleaner, faster way to perform the operations that version 1 did? This is what I truly enjoy about programming. Not that there is "instant, positive feedback," but that there are so many approaches to a solution, and room for refinement to make the program faster and cleaner.