Im in no way a scratch golfer, but I can tell you what has helped me make my game better, and that is on course practice. I have sort of a routine. I generally play 5 rounds of golf, then on the 6th, I have what I call a practice round. This practice round is not golf. I dont keep a score. I go out, ball in hand, and drop a couple of balls in the bad spots i've gotten into over the last 5 rounds (which I keep marked in my Yardage book), and hit a couple of shots from that area, trying to see which club, and which shot works out best for me in that position. Like I have a tendacy to hit my drive on the first hole (par 5) at my home course to the left side the fairway. This leaves me unable to see the green, with about 100 yards to the pin. A good drive would split the right side of the fairway and leave me an open 9 Iron to a very visible green. But my standard 10 yeard hook off the tee often doesn't leave me that shot. So, I hit 3 or 4 shots. I have a 100~ yards to a blind green. Should I hit a full swing 52* wedge over the trees to the green? It can work, but 3 out of 5 times, ill clip the top of the trees, knocking the ball down and leaving me with a 30 yard shot to the green. The other 2 out of 5, im on the green. But if I hit a 1/2 swing wedge up the side of the tree line, 4/5 times ill be at the back fringe/first cut of rough, for a chance at a chip in eagle, then a decent birdie chance.
Of course, like every golfer, I WANT to be on that par 5 in two, and leave myself an eagle putt. But if I end up down the left, I know that playing it smart, going for the GIR on my 3rd, im going to have a much, much better chance at a birdie by playing it safe than I will at an eagle if shoot over the trees. If the green was closer, I would use my 60*, as ill clear the trees almost every shot, but then I still come up short of the green and have an uphill chip on a green that is sloping towards me, forcing me to put it at the back of the green so it doesnt roll off to the front fringe.
So, if you can, try this at least once. I pick times where I know the course is slow (mondays are great for this at most courses near here), and while im not actually 'playing' golf, because im not keeping score, nor am I hitting tee to green. I am practicing. Its a lot of fun, it makes you think of your options, and allows you to really learn every inch of the course you are playing. I find it to be a blast, and much better practice than the range.
I have a lot of other examples of common misses I make at my home courses. I practice them all, and it has greatly improved not only my shot making ability, but my ability to decide the best course of action for every shot. Where I once just got up to the ball and hit, I now get up to the ball and think.