I am almost like your friend in that I only enjoy the results of exercise. It's really, really difficult to make myself go through the pain for indefinite results at an indefinite time in the future, which means I go through cycles of exercising steadily for a few weeks or months (during which I see almost immediate and quite noticeable improvements) and then quitting once the improvements are not so immediate or noticeable.
I notice the same pattern in other areas of my life: when I played World of Warcraft, the first 15-20 levels were great fun, and I usually could convince myself to keep going to level 30 or so. Somewhere between 25 and 35 I'd stop playing. Later, they made it faster to level, and the sweet spot moved up to 45-60, and then it became faster still, and I managed to get a coupla characters to 80. I was still treating the actual game as something to get through to enjoy the leveling up experience, though, and if I couldn't expect to level up in this session of play, I would have very little interest in playing right now.
In programming, if I'm working on something I don't actively enjoy, I have to structure my work as a series of small victories, or I will put it off until time pressure forces me to grind through it all at once.
I notice the same pattern in other areas of my life: when I played World of Warcraft, the first 15-20 levels were great fun, and I usually could convince myself to keep going to level 30 or so. Somewhere between 25 and 35 I'd stop playing. Later, they made it faster to level, and the sweet spot moved up to 45-60, and then it became faster still, and I managed to get a coupla characters to 80. I was still treating the actual game as something to get through to enjoy the leveling up experience, though, and if I couldn't expect to level up in this session of play, I would have very little interest in playing right now.
In programming, if I'm working on something I don't actively enjoy, I have to structure my work as a series of small victories, or I will put it off until time pressure forces me to grind through it all at once.