One of the most exciting things about programming is the exposure to so many diverse realms of human endeavor. We call them applications. A good client shows you the soul of the activity with the expectation that you will make it better. Yet programming is like building sand castles, thousands if not millions of instructions that will be washed away with the next software generation tide.