answer:There are many aspects to programming, and so it’s hard to come up with an analogy that fits them all. I used to write a fair amount of poetry in what feels like a former life. I can say that the stage of programming where you’ve figured out how you’re going to proceed forward is similar to when you’re furiously writing a poem that is pouring out of you, and your biggest fear at that moment is that you’ll be interrupted and loose the whole string of thought. There’s the debugging stage when you’re trying to figure out why something isn’t working the way you’re intending that can be quite maddening, and it’s such an exquisite relief from agony when you finally figure it out followed quickly by anger and frustration at yourself for not being able to see it sooner. In this regard it’s a bit like a magic trick, in the sense that it seems so impossible when you don’t understand the problem, and then so incredibly obvious after you (or someone else) has figured it out. The planning/design phase is comparable to playwriting, in the sense that you pick out various characters and determine what their roles will be, determine the physical limitations you may run up against. In object-oriented programming (most programming is done this way these days) you use objects which are similar to characters in a play in many respects: they have properties, roles, and behaviors. They have some actions which are public facing, and others that are strictly private and not exposed to others.