Most basic tip: Don't go to the grocery store hungry.
What we do to minimize food waste: On Sunday when my wife and I go grocery shopping, we figure out what meals we are going to have for dinner that week, and we only buy what we need for those meals.
We also try to decide in advance what night(s) we are going out for dinner. For example, we know we have to take the in-laws out for dinner on Wednesday, so we don't buy a dinner for that night.
As part of our weekly planning, we figure out the lunches we will take to work based on our dinners. For example, if we plan to make a big pot of pasta for dinner one night, we know we'll have leftovers for lunch, so we won't buy a lunch for the following day.
Basically, we try to match our food purchasing to our food consumption.
During the week, we generally try to cook the dinner that uses the most perishable items first. If we buy seafood, that will be Monday night's dinner. The frozen pizza can wait until the end of the week.
My wife an I both have to deal with the occasional unexpected late night at work, which can mess up our cooking plans. As a result, it is not uncommon for us to be too tired to cook, so we skip a dinner. It is less wasteful to do that with something frozen/preserved.
Also, we try to consider cooking time vs our work schedule. We don't pick a complex dinner for a night that we know in advance will be a long work day.