Eu estava lendo a sua pergunta e pensando as coisas ao longo da linha dos outros cartazes: você não é adequado para este trabalho; dê a si mesmo um limite de tempo; faça outra coisa por um momento. Depois de alguma reflexão, não tenho certeza se alguma das respostas é realmente útil
O problema com problemas mentais como este é que eles não são fáceis de resolver, eles são parte de você, e obviamente você se importa (muito talvez) com o seu trabalho, não tem confiança para concordar consigo mesmo , são muito inexperientes para considerar que a sua primeira escolha estava certa o tempo todo, ou enfatizavam demais ao acertar perfeitamente. Por que mais você se preocuparia com essas trivialidades?!
Agora eu tenho problemas semelhantes, mas não com código tanto .. geralmente é o que ter para o jantar .. pizza ou curry .. hmm ... pizza, mas depois curry é bom, mas eu me sinto como um curry, pizza é mais barata, mas você ganha mais curry, mas ... e assim por diante. :)
Então eu pensei - por que eu não tenho problemas semelhantes com codificação, e acho que é simplesmente porque eu tenho um conjunto de padrões que eu uso regularmente. Se eu precisar de uma definição de função, é fácil ... será na mesma linha que qualquer outra definição de função que eu já tenha codificado. Se eu precisar de um fluxo de controle, primeiro decido se preciso de um loop for ou while e, em seguida, criar o mesmo código antigo que usei na última vez em que precisei de uma dessas coisas. O mesmo vale para tudo, eu quero uma fila? Claro - vamos cortar e colar o meu código de fila 'padrão' (retirado do último projeto em que trabalhei, ou qualquer um que eu possa lembrar usando uma dessas coisas). Resultado final ... Eu só me preocupo com coisas novas e, para ser sincera, é um prazer.
Então, meu conselho é começar a criar uma biblioteca de trechos de código - eu costumava enviá-los para mim mesmo e colocá-los em uma pasta, mas o que você trabalha é melhor - e então você começará a saber o que fazer . Você sempre vai ao código antigo que você escreveu e elimina o problema, pronto para o próximo problema. Você descobrirá que se tornou um desenvolvedor muito mais rápido (seriamente, essa é a única maneira de ganhar a produtividade do programador) e, com sorte, encontrará tempo para os momentos divertidos, e não para o dia-a-dia triste que você já resolveu muitas vezes acabou.
Naturalmente, a última parte de tudo isso também é importante - quanto mais trabalho você tiver, menos luxo terá para gastar tempo pensando.