Sometimes people ask me why programming is fun. I tell them programming is like building a sandcastle or writing a story, with the added pleasure that what you build reacts to your inputs. In fact some of the pleasure of writing in a natural language comes from striving for clarity and succintness, just as when you write code.
Some people don't understand how it's possible to stay in front of a screen all day. I tell them it's not like watching tv which gets boring because you are passive, it's active because you spend the day thinking.