Programming is Like Cutting Diamonds
When people talk in abstract terms about methods for programming computers, I always describe how Diamond Cutters work. A diamond will cleave cleanly along a plane alligned with the crystal structure, it only takes a small tap to cut the stone. But if you apply the pressure in the wrong direction, it will shatter the whole stone. When a cutter receives a huge raw diamond, he will study it for days, learning the stone's raw structure, and plan how it will cleave into efficient sections for the production of smaller cut diamonds. After lengthy deliberation, the diamond cutter will decide where to inscribe a small groove on the diamond, to mark the cleavage planes. He places a wedge in the groove, and then with one carefully controlled tap of a mallet, the job is done.