I liked this post by Sam Stokes about ‘What Programming is Like‘.
I usually describe programming as like world-building. You imagine a cartoon world with its own laws of physics. You build the objects that inhabit that world, and rules that govern it. And then you get real people to come and play in it. You watch what they do, and see whether the right things happen. And then you fiddle with it all, and go round again.
Actually, that sounds really tedious.