Most people take it to mean "Don't optimize if you don't need to", but he actually means it as "Don't optimize until you know which parts are slow". The missing context is where he talks about (or implies, it's been a while since I read it) how you should always optimize your programs when you're done.
IMO these days even the first is bad advice if taken literally. You need to ensure you don't work yourself into a design that cannot be optimized without being rewritten, which is unfortunately a problem I've seen a lot.
IMO these days even the first is bad advice if taken literally. You need to ensure you don't work yourself into a design that cannot be optimized without being rewritten, which is unfortunately a problem I've seen a lot.