Algorithms and Strength Training

Chrisbradycode
2 min readMar 16, 2021

If you begin to study computer science, it won’t be long before you run into the study of algorithms. Algorithms are defined (by google) as : “a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.”

Basically the algorithm takes in an input, does something to it, and returns an output.

Something interesting about that definition though is in the last line, “especially by a computer”. Notice how it doesn’t say exclusively by a computer.

One major hallmark of a good algorithm is the measure of space and time complexity(At this time I’m more familiar with time complexity so that is where I will stay). Put simply, how efficient is your algorithm as the input size increases? This is typically described using something called big O notation(google it).

Although there are more options than the following, these three are the most common forms of big O notation that I’ve come across: O(1), O(n), O(n²).
An algorithm with O(1) or constant run time means the run time doesn’t change depending on the input size. O(n) or linear run time means that as the input size increases, the run time increases in a linear fashion. O(n²) means that as your input size increases, the run time increases to the square of the size of the input.

How does this relate to strength training?

A strength training program is similar to an algorithm. You have an input, or a series of inputs that could be called training sessions, and at the end of a training cycle you have an output or result.

As you get stronger however, the amount of work you have to do increases tremendously. And it doesn’t increase linearly ( at least not in the way most current systems are designed).

Currently, all strength training systems operate somewhere between O(n) and O(n²) time complexity. For example, when someone starts training, for the first year or 2, they will be able to add 10% on their best lifts pretty regularly after a normal 3 month training cycle. Once they get to a certain level of strength though, (and once the low hanging fruit of newbie muscle gain wears off), they enter into intermediate land, also known as the place most strength training journeys go to die.

What they notice is, if they don’t force more bodyweight onto their frame or start taking exogenous substances, they are doing twice the work for half the results which turns into 4x the work for 1/4 the results (starting to sound a bit O(n²)-ish).

By understanding this parallel between worlds, I’ve been able to gain insight into what some of the problems are when it comes to system design in strength training programs. Non-functionally redundant programming combined with the absence of functionally redundant programming are some examples. Another blog going into more detail on this in the future.

--

--