Blockage management for projects I am currently a Computer Science undergraduate in my final year. I think this question applies to more than just Computer Science students, so I'll make it as general as possible.

Throughout my student years, I have always found it very difficult to establish when to admit I am blocked in the implementation of a given task/assignment.

My question is: when is the correct moment to admit I'm on the wrong track and ask for help? I do not want to bother my colleagues (or even worse, teachers) with very general questions such as "How do I do that", nor do I want to take a path and find myself in the situation where I cannot even express the question because of how tangled the road to that point was.

I wonder if the time after which I have to ask for help is quantifiable, something like "If it lasts longer than 3 hours, ask for help". If there is no general rule for establishing this time, what are the factors that must be taken into consideration?
Over the course of learning (i.e. your life) you learn strategies for problem solving. When you encounter a new problem you go through your known strategies to find a solution. If one occurs to you, fine. If it doesn't, perhaps a reasonable modification of one of your strategies will work. But if that doesn't get you home then you need help. So ask. 

But you will do better if you do two things. Don't ask for the answer, but, instead, for insight into how to find the answer. And then, incorporate what you learn into an expanded set of strategies. 

In programming, many of the strategies are well known. Testing, edge cases, etc. In other fields there may also be well known strategies. Quite a lot of education is to expose students to these various ways of looking at problems. 

But in general, it is better to ask than to thrash. And there is no reason why it shouldn't be the teacher he or she may actually be the best person to give you the minimal hint that lets you get yourself over the block. Other people are more likely to just give you an answer that will advance your thinking power much less.