The third rule is "Do It Properly". This means profiling the code to find out exactly which bits are running too slow.
Just to add to the valid points made by dlorde. Even an experienced programmer will often find that the code that a profiler shows is hogging resources isn't the code that you thought was the prime candidate for optimisation. And without a profiler it's often difficult to tell whether your code tweaks are making things better or worse. So, basically, your probably wasting your time unless you have access to a profiler

A final point is if you really do need to optimise your code is it the actual performance or the perceived performance you need to improve. For example, if the user has to wait several seconds every time they save a file then running the save on a background thread can mean that even though the save actually takes longer the user feels the performance has improved because the user interface doesn't lock waiting for the save to complete .