Code Optimization Paradigms

 
What are some paradigms/rules/techniques for optimizing code for resource efficiency? I know next to nothing about this beyond the blatantly obvious but have come to a point where I think its time I learn.. can anyone recommend any good literature on the subject or give some more-than-basic advice?
 
Thanks!