Mi considero un programmatore esperto, sia nel tempo che nelle attività. Il mio stile è decisamente cambiato molto nel corso degli anni.
Come vedo, sono uno strano tipo di programmatore / architetto. Non sono mai orgoglioso di ciò che ho scritto, ma dell'abilità che sono stato in grado di portare a termine. Rispetto il codice di esecuzione, ma dal significato originale della parola: re-spect: controlla di nuovo. E refactoring, ogni volta che non è esattamente quello che voglio vedere.
Cambio il nome di una variabile o di una funzione più volte, se non significa esattamente quello che fa - fino a quando non devo rollare fino alla definizione, perché il nome è evidente. Sposto una funzione o dati più volte tra i vari livelli di un sistema fino a quando non arrivano a dove realmente appartengono. Riscrivo sempre i miei codici, non ne lascio mai nessuno () anche se conosco la precedenza degli operatori, o il {} dopo un if per una singola istruzione.
Ho la netta sensazione che ci sia un buon modo per svolgere un compito - e troppe soluzioni funzionanti, ma strutturalmente sbagliate. La struttura (livelli di servizio, comunicazione, responsabilità, dati) è molto più importante (perché influenza l'intera struttura di un sistema), mentre il codice dovrebbe essere "abbastanza buono" da eseguire.
Programmare per me è una costante ricerca di quella buona risposta, e ho ancora molto da imparare - ma quello che sembrava essere un intero campo di molti modi possibili quando ero un principiante, guarda una mappa con pochissimi percorsi provare. È fondamentalmente diverso.