While programming doesn't play as high a role as many claim, you still need a plan to help you achieve your training goals. That's your guide. But a program a trainer or coach wrote for the general public is a far cry from a program designed specifically for your unique needs, strengths, and weaknesses.
Time and experience will give you the best training. Know how to design programs for yourself.
Beginners should use pre-designed programs to help get their feet wet. While these are still not as effective as a personally designed program, they're much better than what you'll come up with on your own. That's why they're written in the first place: not to be the Holy Grail of programming, but to serve as a launching pad.
If you're an intermediate or advanced lifter, think about your program as a highway you're driving down. YOU need to be on the one that'll get you where you want to go.
As a lifter you have to expect and prepare for detours. They're part of the process. No training phase ever goes as planned. Detours keep you moving toward your goal even when things go wrong.