which resource do programmers sometimes have to refer to and use during planning the logical steps of the solution
The answer would be pseudocode.
Pseudocode helps programs map out the logical pattern of how their program has to look. This means that by getting down the logical idea on how a program should look like, they will be able to implement this algorithm later on in the actual program. :)