I was thinking about this earlier, and realized what really draws me to programming is my OCD basically. I enjoy thinking about how to make a program more compact, more efficient, more standards compliant, faster, etc. I once spent like a week optimizing a set of Fortran programs for partial LU decomposition. I don't really use them at all now, but I enjoyed iteratively making the programs better and better.
I also enjoy the automation aspect of it, i.e. how can I make things easier for the user/me? What all tasks can be done automatically for the information given?