While I edit other people's work every day, I edit my own work much less frequently. In part, I write a lot less for publication than I edit.
My recent "hobby" has been a new book. The first draft is complete, and early, unofficial reviews have helped me improve great swatches of content. It's nearly time for the technical review, though, and I've been polishing individual sentences and paragraphs.
There are occasional gems I want to keep. It does often amaze me how I can read a paragraph out loud (to edit seriously, read out loud) and make faces at how painful my prose. There's a very clear line between "awkward" and "acceptable", and I can only ask "What was I thinking, to write such a thing?"
The line between "acceptable" and "accomplished" is much murkier. It is, however, much easier to go from something on a page to something passible than from a blank page to something.
Is programming similar? I do find it satisfying to clean up large chunks of murky, clunky code. There's also something highly satisfying about watching beautiful code emerge from the test-code-refactor cycle, too.