El camino para llegar a ser bueno en la programación es el mismo que para cantar o tocar música: practicar, practicar, practicar. Si dedica suficiente tiempo al desarrollo de software regularmente durante varios años, es probable que lo haga bien, ya sea dentro o fuera del horario laboral.
Ahora, además de dedicar más tiempo a la práctica, hay otra razón por la que los profesionales suelen ser mejores que los aficionados en cierto sentido (tanto en música como en programación). Si usted es un profesional, debe realizar tareas que no necesariamente le gustan, pero pertenece al trabajo más amplio de desarrollo de software (por ejemplo, pruebas, discusiones con clientes, redacción de documentos, configuración de entornos de desarrollo / creación, escritura de scripts de compilación, etc.) ). Y de vez en cuando también se le presiona para ingresar a áreas desconocidas, para aprender nuevos idiomas o plataformas. Como aficionado, no estás obligado a hacer nada que no quieras, lo que hace que te mantengas dentro de tu zona de confort durante la mayor parte de tu vida. En otras palabras, puede limitarse fácilmente a una o algunas de las áreas específicas que más le gustan y perder muchas oportunidades de aprender y crecer.
OTOH muchos desarrolladores profesionales también caen en esto, permanecer en la misma empresa haciendo el mismo trabajo de rutina sin apenas aprender nada nuevo durante décadas ... Así que la clave para mejorar es su actitud. Si sigue aprendiendo y busca conscientemente oportunidades para mudarse de su zona de confort a un territorio nuevo y desconocido, eventualmente superará a esos enjambres de "profesionales" que se fosilizan lentamente. Una buena forma de hacerlo puede estar contribuyendo a algunos proyectos de código abierto.
Una lectura recomendada es El programador pragmático: de Journeyman a Master , con un montón de Consejos geniales y muy prácticos sobre cómo seguir mejorando.