the thing separating mediocre programmers from great ones isn’t the range of problems they can solve but that the latter often know dozens of ways to solve problems and can select the best one for each situation. This kind of breadth requires a certain amount of passive exposure, which in turn benefits from retrieval practice.

