My favourite thing about programming is that when I do it I'm feeling like an artisan that is bringing his creation to life, but it isn't the finished product itself that gives me joy of programming, it's the process: deciding how it should look like and why, which tools would be more appropriate, and see if my ideas would solve perfectly the purpose of the product, otherwise I'll enjoy spending some more time in the process of refining it.