I spent most of the weekend reimplementing functionality that I had had working previously before my lapse in judgement cost me 6 months of work. It seems odd to me now how reliant we are on digital suitcases that can carry much more then a typical jumbo jet. And how much the lose of this intangible stuff leaves it's scar on our consciousness much the same as if I had had a loved on on the aforementioned jet.
Yet all is not unwell. What took me about 2 months previously ( Fixing old tests that had been broken by more recent updates to my code base) has only taken the span of a week. 8:1 time compression, how's that for efficiency? It points in favor of reiteration, which is a good lesson for everyone.
We should take a cue from nature. Nature doesn't strive for one perfect organism. It works towards multitudes, and so should we. We should not try to write perfect code, but lots of code. A plethora of programs, all refining their predecessor's DNA becoming more streamlined for the task at hand.
With that in mind, here is a screen of one of the first 3d programs I had ever made, and the first to be resurrected from the past.
Agreed on iteration. Trying for perfection on the first coding session is usually a waste of time for all but the most trivial tasks you've already done thousands of times. You are going to rewrite it anyway, and you know it :p
This is why I try to stick to "make it work, make it correct, make it fast/pretty". But it's not easy sometimes, my perfectionism tends to get in the way!