There's actually a name for finding problems this way: "rubber duck debugging" (look it up on Wikipedia). Basically, it's the practice of precisely describing the problem to someone else (could be a person, could be a forum, or it could be a rubber duck). This process forces you to think through the code again and can help you spot problems.