Use design patterns as much as possible.
I think "as much as possible" is a lot more than "the right amount"... It's good to know them and apply them when you have the problem they're meant to solve. But they also get over-applied, one doesn't need factories for everything, and not all operations on trees need to be visitors.