Stavo leggendo la tua domanda e pensando a cose simili a quelle degli altri poster: non sei adatto a questo lavoro; concediti un limite di tempo; fai qualcos'altro per un momento. Dopo qualche riflessione, non sono sicuro che nessuna delle risposte sia davvero così utile
Il problema con problemi mentali come questo è che non sono facili da risolvere, fanno parte di te e ovviamente ti preoccupi (troppo forse) del tuo lavoro, non hai la fiducia di essere d'accordo con te stesso, lo sono anche inesperto nel ritenere che la prima scelta sia stata giusta da sempre, oppure stressarsi troppo per farla diventare perfettamente giusta. Perché altrimenti ti preoccuperesti di queste banalità ?!
Ora ho problemi simili, ma non con il codice così tanto .. di solito è cosa avere per cena .. pizza o curry .. hmm ... pizza ma poi il curry è carino, ma mi sento come un curry, la pizza è più economica , ma poi ottieni più curry, ma ... e così via. :)
Quindi ho pensato: perché non ho problemi simili con la programmazione, e penso che sia semplicemente perché ho una serie di schemi che uso regolarmente. Se ho bisogno di una definizione di funzione, è facile ... sarà nella stessa vena di ogni altra definizione di funzione che abbia mai codificato. Se ho bisogno di un flusso di controllo, per prima cosa decido se ho bisogno di un ciclo for o di un ciclo while e quindi creare lo stesso vecchio codice che ho usato l'ultima volta che avevo bisogno di una di queste cose. Lo stesso vale per tutto, voglio una coda? Certo: andiamo a tagliare e incollare il mio codice di coda "standard" (cancellato dall'ultimo progetto a cui ho lavorato, o da qualcuno che ricordo di aver usato una di queste cose). Risultato finale ... mi preoccupo solo di cose nuove, e ad essere sincero, è un piacere.
Quindi, il mio consiglio è di iniziare a costruire una libreria di frammenti di codice - ero solito inviarli via email a me stesso e metterli in una cartella, ma qualunque cosa tu lavori meglio è - e allora inizierai a sapere cosa fare ogni volta. Passerai sempre al vecchio codice che hai scritto e toglierai il problema, pronto per il prossimo problema. Scoprirai di diventare uno sviluppatore molto più veloce (sul serio, questo è l'unico modo per aumentare la produttività del programmatore) e speriamo di trovare il tempo per i pezzi divertenti, non per le cose quotidiane lugubri che hai già risolto molte volte al di sopra di.
Certo, anche l'ultima parte di tutto ciò che è importante - più lavoro hai, meno lusso devi passare il tempo a pensare.