Unfortunately you can't guess the OP's background from the question itself. Therefore you don't know if you are talking to a beginner, or an expert.
Asking questions that help one better understand the true nature of the problem is one method of solving a problem.
I need to find the remainder of a number, so I'm successively subtracting but it's not working. It appears to be an off by one error in my loop counter, but I'm just scratching my head.
Could result in two responses:
Yes, you have an off by one error, change your loop as follows...
or
Are you aware that the Frob language has a modulus operator?
Both are valid because the OP did not post enough detail to demonstrate the need to take the long route.
To assume the OP knows what they are doing can be worse than questioning their assumptions. One only need to look at all the examples of "professionally written code" on thedailywtf to see that not everyone understands enough about their problem to write the right question.
If you find this happens a lot to your questions, a better tactic is to head them off at the pass:
I need to find the remainder of a number, so I'm successively subtracting but it's not working. It appears to be an off by one error in my loop counter, but I'm just scratching my head. I can't use the modulus operator due to CPU limitations (compiling to a 4 bit processor) and this method, should it work, does a better job than the compiler's built in math routines.
This demonstrates that you truly understand the problem, and prevents the inevitable clamor for more information about why you are skipping the 'obvious' answer.