Estaba leyendo su pregunta y pensando en la línea de los otros carteles: no es apto para este trabajo; date un límite de tiempo; Haz algo más por un momento. Después de reflexionar, no estoy seguro de que alguna de las respuestas sea realmente tan útil.
El problema con problemas mentales como este es que no son fáciles de resolver, son parte de ti y obviamente te preocupas (quizás demasiado) por tu trabajo, no tienes la confianza para estar de acuerdo contigo mismo, también lo eres sin experiencia para considerar que su primera opción fue la correcta todo el tiempo, o estresarse demasiado por hacerlo bien. ¿Por qué más te preocuparías por tales trivialidades?
Ahora tengo problemas similares, pero no con el código tanto ... por lo general es lo que hay que cenar ... pizza o curry ... hmm ... pizza pero luego el curry es bueno, pero si me siento como un curry, la pizza es más barata , pero luego obtienes más curry, pero ... y así sucesivamente. :)
Entonces pensé: ¿por qué no tengo problemas similares con la codificación, y creo que es simplemente porque tengo un conjunto de patrones que uso regularmente? Si necesito una definición de función, es fácil ... estará en la misma línea que cualquier otra definición de función que haya codificado. Si necesito un flujo de control, primero decido si necesito un bucle for o un bucle while y luego creo el mismo código anterior que usé la última vez que necesitaba una de estas cosas. Lo mismo vale para todo, ¿quiero una cola? Claro, vamos a cortar y pegar mi código de cola 'estándar' (filmado desde el último proyecto en el que trabajé, o cualquiera que pueda recordar usando una de estas cosas). Resultado final ... Solo me preocupan las cosas nuevas, y para ser honesto, es un placer.
Por lo tanto, mi consejo es comenzar a construir una biblioteca de fragmentos de código: solía enviarme correos electrónicos a mí mismo y ponerlos en una carpeta, pero lo que sea que trabaje es lo mejor, y luego comenzará a saber qué hacer cada vez. Siempre irá al código anterior que ha escrito y eliminará el problema, listo para el siguiente problema. Encontrarás que te conviertes en un desarrollador mucho más rápido (en serio, esta es la única forma de ganar productividad para el programador) y con suerte encontrarás tiempo para los momentos divertidos, no las cosas tristes del día a día que ya has resuelto muchas veces terminado.
Por supuesto, la última parte de todo eso también es importante: cuanto más trabajo tenga, menos lujo tendrá para pasar el tiempo pensando.