Contrariamente ad alcune delle risposte, l'esperienza non è l'unico requisito per diventare un "esperto". Penso che la maggior parte delle persone in ogni settore (non solo la programmazione) non diventino esperti nel loro campo. Diventano competenti ed efficienti, ma non diventano neanche lontanamente bravi come potrebbero.
Il motivo è che l'esperienza non è abbastanza. Hai bisogno di una consulenza di esperti. Devi imparare come fare le cose da qualcuno che è un esperto.
Fortunatamente per noi, ci sono molte risorse per i programmatori per diventare esperti. Probabilmente il migliore sono i libri. Un'altra risorsa eccezionale è programmers.StackExchange.
Trascorri la maggior parte del tempo a scrivere codice, ma anche a spendere parte della lettura e dell'integrazione della conoscenza di libri come il codice di pulizia link . Puoi trovare i migliori libri analizzando le recensioni su Amazon, controllando questo sito e Stack Overflow.
Se investi abbastanza tempo per imparare e utilizzare le informazioni in 2 o 3 libri all'anno, aumenterà notevolmente le tue capacità. Inoltre, trova un modo per registrare e ricordare a te stesso tutto ciò che impari. Altrimenti sarà difficile conoscere e utilizzare realmente le informazioni.
Prestare attenzione agli argomenti a cui i programmatori esperti sono interessati: schemi di progettazione, test unitari, scelta della carriera, ecc. Guarda il mondo (o almeno il tuo lavoro) dal punto di vista di un programmatore esperto.
Quando ti viene assegnato un compito da programmare, fermati e pensaci per un po '. Porsi alcune domande. Che cosa ho imparato che può aiutarmi? Quali sono i rischi? Qual è l'approccio migliore? Quali sono alcuni algoritmi diversi che posso usare? Quanto tempo ci vorrà per il programma da eseguire? Quale potrebbe essere il collo di bottiglia della CPU? Quale funzionalità potrebbe cambiare o essere aggiunta?
Spero che questo aiuti.