I'm not actually doing it for the financial rewards.  Well, I am, but only up to a point.  I could earn more money elsewhere, in a job that was more stressful, or less reliable but I'm perfectly happy with my current job, which challenges me in interesting ways, has good people to work with, and allows me to go home at 5pm and do fun things that have little do to with programming in the evening.