I come from a DBA world and performance has always been an obsession. I am turning to development and I always think about performance, constantly, all the time.
Reading
Like other people have said, optimizing before you know the problems is a waste of time. I recently worked on some code that had a lot of optimization, and most of my time was spent removing the optimization! The problem was that it made adding critical functionality impossible.
Another example...in my previous job I worked in Data Processing, writing scripts around executable programs. If I started a program at 5 PM at night, and it finished by 8 AM the next morning, it was fast enough. Of course, in the case of emergency it was much better for it to take one hour instead of ten, and faster code made my job easier, but as long as it ran correctly 30 minutes was equivalent to 16 hours.
It depends totally on your project...and should be considered in your project requirements.
Remember also that making a program more efficient takes longer...you're trading off speed of development for speed of execution.