>A programmer should not even try to optimize the code that is not proven to be a bottleneck by carefully profiling the whole program
All who haven't taken note, please do!
All who haven't taken note, please do!
As for architectural optimization, I disagree. There are things you're really going to have a hard time adding post facto. If you know you're going to need performance, it's important to know what kind of program you're going to build (this may include benchmarking prototypes).