Great tips! One more I've learned is solving the problem in english and understanding each individual step
e.g. "I want to iterate through this array, and check that thing over there. If it's less than X, I want to count it toward a total"
Especially for beginners, solving a problem first in their natural language makes it much easier to consider how to program an algorithm to do it