The topic of how to write a training program is huge. "It depends" is always the answer. However, there are some fundamental concepts that should guide any program regardless of the reference. Check out this short list of "heavy hitter" concepts I put together for my friend Joel Jamieson's site:
Fundamental Concepts for Exhaustive Programming