Recently I was asked why I enjoyed programming. This question was one I have been asking myself recently so I already had an answer. I enjoy programming because, to me, it is an awesome balance between science and artistic expression.
The science of programming can easily be seen when you you look at different algorithms, compare them, and try to find the most effective one. When you break a problem down and figure out how each part is related you've got a scientific method going.
Even with all that science going on there is still an underlying artistry going on. I still get to take some abstract thought of mine and turn it into something real. To me that is what makes it so much fun to do. The ability to give my thoughts form is what keeps me coming back.
So for you programmers out there: Why do you like to program?