Quando estou trabalhando com novos desenvolvedores, incentivo-os a fazer perguntas depois de cinco ou dez minutos em que não estão progredindo.
Isso tem dois benefícios: o primeiro é que eles podem obter ajuda sem muito tempo gasto olhando para um problema, mas eles só perguntam quando não estão chegando a algum lugar. Se eles estão aprendendo - mesmo em algo que não é a resposta final - eles são muito mais propensos a manter essa informação útil.
O segundo é que depois de tanto tempo eles têm que explicar o problema para outra pessoa. Isso resolve uma enorme proporção de problemas, porque passar por ele de ponta a ponta significa que você pode identificar o que perdeu em seu trabalho anterior.Como parece que você está fazendo isso sozinho, tente virar um brinquedo de pelúcia, ou o relógio, ou a parede, e perguntar sobre o problema. Explique como você faria a uma pessoa e veja se isso conserta as coisas.
Se isso não acontecer, e você não estiver fazendo progresso, pergunte a alguém. Passar mais de cinco ou dez minutos presos é um desperdício de tempo - a menos que você faça alguma outra coisa, depois volte ao problema com uma mente nova.