No matter the problem, the answer can be found by asking questions.
When I run into a problem, I ask myself several questions that almost always help me find a solution.
1) Why did I start this thing?
2) What did I expect to get out of this thing?
3) Am I getting that with this thing? If not, am I getting something else out of this thing?
4) What is this thing costing me (time, emotionally, etc)? Is the reward for this thing (see 3) worth the cost?
5) What are alternative ways to get what I wanted to get out of this thing and what are their costs? Out of the alternatives, which one offers the greatest reward for the lowest cost?
6) When weighing the rewards and costs of what I'm currently doing versus the rewards and costs of the best alternative, which one offers the greatest reward for the lowest cost?
I've done this analysis with classes, jobs, and all kinds of big life decisions, and it's never steered me wrong.