How to Get Good at Programming

If you want to learn to write effective training plans, first you must understand the principles of program design. These will vary from system to system. At StrongFirst, there are three meta-principles:

  1. Continuity of the Training Process
  2. Waviness of Loads
  3. Specialized Variety

Second, you need to learn the program design tools of the given system, e.g. ladders, timed sets, etc. Third, you need to study successful program designs of strength coaches operating within the same training system.

“The more you are exposed to certain patterns, the more the memory of these patterns are re-formed at lower levels,” writes Jeff Hawkins, founder of Palm Computing and Redwood Neuroscience Institute, in his book On Intelligence. “This allows you to learn the relationships among higher-order objects at the top. It’s the essence of expertise. An expert is someone who through practice and repeated exposure can recognize patterns that are more subtle than can be recognized by a non-expert, such as the shape of a fin on a late-fifties car or the size of a spot on a seagull’s beak. Experts recognize patterns on top of patterns.”

Which is why you should do your best studying training plans by Master SFGs Dan John and Geoff Neupert. These two gentlemen have written more effective and simple programs than anyone else at StrongFirst.

An Example of Good Programming

Consider the following plan from Geoff’s book Kettlebell Express!:

  • Two-hand swings—20 minutes each day, 3 days per week
  • Total time commitment: 60 minutes per week
  • Total number of workouts: 26
  • Use a medium-sized kettlebell
  • Set your timer for 20 minutes

Workout 1: 8 reps top of the minute
Workout 2: 9 reps top of the minute
Workout 3: 10 reps top of the minute
Workout 4: 11 reps top of the minute
Workout 5: 12 reps top of the minute

Workout 6: 10 reps top of the minute
Workout 7: 11 reps top of the minute
Workout 8: 12 reps top of the minute
Workout 9: 13 reps top of the minute
Workout 10: 14 reps top of the minute
Workout 11: 15 reps top of the minute

Workout 12: 13 reps top of the minute
Workout 13: 14 reps top of the minute
Workout 14: 15 reps top of the minute
Workout 15: 16 reps top of the minute
Workout 16: 17 reps top of the minute
Workout 17: 18 reps top of the minute

Workout 18: 16 reps top of the minute
Workout 19: 17 reps top of the minute
Workout 20: 18 reps top of the minute
Workout 21: 19 reps top of the minute
Workout 22: 20 reps top of the minute

Workout 23: 18 reps top of the minute
Workout 24: 19 reps top of the minute
Workout 25: 20 reps top of the minute
Workout 26: 21 reps top of the minute

Take this plan apart, identify the patterns, then try to write another in the same vein. Your early attempts will be little better than plagiarism. But eventually, if you persist, you will be able to write original art. Monet and Manet belong to the same school of impressionism—yet no one would mistake one’s painting for the other’s.

Study good programming to get good at programming.
Monet and Manet—never to be confused.

21 thoughts on “How to Get Good at Programming

  • Pavel,

    Congrats on the new venture. Love the site.

    A quick question about the 3 meta-principles… The last two are self-explanatory to me, but could you briefly explain “continuity of the training process?” I’m probably overthinking it, but I’m not sure I follow.


    • You rest at what’s left of the minute and on the new minute you start again. As you progress with reps you become fitter and rest less but doing more with ease.

  • Would love to try this…would someone please clarify? I’m understanding that you do 3 workouts a week, so workout 1,2,3 represent day 1, 2,3 of first week. But, what is meant by 8 reps top of the minute. I understand it’s a timed 20 min activity so is it you do 8 sets of swinging so that’s about 2.5 timed minutes of swinging (20/8) and you do how many swings you can in that 2.5 minutes?

  • Besides improving kettlebell swing work capacity in a twenty minute period, what performance issue was the example program designed to address? Since kettlebell performance per se is not a Strongfirst goal, what kind of athlete is this program for and in what phase of training would it be appropriate? Or are those considerations all covered by the what the hell effect?

  • Joanne i may be wrong but i see it as 26 separate workouts so on day 1 you do workout 1 ….8 reps at the top of each minute, so you may do 8 swings then rest for the remainder of the minute, then 8 cleans rest 8 press rest 8 long cycle rest ect ect or your desired movements, for 20 mins.

    on day 2 you do 9 reps of each of your chosen moves for 20 mins

    and you progress in this way

  • The workouts will always be 20 minutes, what you have to do is pull out the number of reps prescribed in the workout at the start of each minute, and rest whats left of the time, start at the beginning of the next minute, rinse and repeat.

    The continuity here is the 8 or 9 weeks of workouts, in which you will get also very good at doing swings since you will do so many of them. Waviness for me is the oscilating density between workouts, which is why you see in this program it doesnt go straight from 1 to 20, but at certain times it goes back (allowing the body to adapt to the workouts) and the specialized variety here doesnt really happen if i understand it correctly.

    Recap: dont try to do as many swings as you can, just the ammount prescribed and rest for the remaining period. If you can crank 26 each minute for 10 sets you should probably be using a heavier bell.


  • I am having a hard time understanding where the 20 minutes are… I am getting 26. I know this is probably not a mistake and I am missing something… being stupid… ???

  • Sorry but i don’t understand what 8 reps top of the minute means? Does it mean you have to do 8 reps a minute or does it mean that you do 8 reps then take a break?

    • The “top of the minute” protocol just means that you set a timer and press “Go”, perform the prescribed number of reps..then wait till the minute is done (rest period). At the beginning of the next minute, you do the reps again, and so on.

  • Nice post ! As an lifelong geek, patterns and principles are my thing, reverse engineering successful programs is not only satisfying but a great learning tool. It constantly amazes me that so many who invest so much time in their training spend so little time on the ‘nuts and bolts’ that hold it all together.

  • Thanks, I was just about to write my program for the next 2 months. This will help.

  • Although I may have slightly missed the point since it’s about programming for yourself, this article lead me to buying Kettlebell Express. This book is fantastic.

  • I really hate to say this but I get confused between Monet and Manet, don’t they both use water colors? Looks the same to me. I also get confused between Mendolssohn and Pagannini but I do love kettlebells!

  • How could you incorporate this into a press workout would you go for # presses on min or shoot for total reps ?

  • This is solid analysis of the development of expertise. What we argue in math education is exactly this — practice 10, 100, or 1,000 examples of a basic arithmetic problem, or however many it takes to become bored with it, then observe how the pattern, now ingrained, transfers to more complex operations. Systematic education + deliberate practice.

This article is now closed for comments, but please visit our forum, where you may start a thread for your comments and questions or participate in an existing one.

Thank you.