Mi mejor consejo es centrarse en los fundamentos como la lista que sugirió Robert Harvey. El desarrollo de software es un monstruo complejo que lleva años incluso llegar a ser remotamente bueno, especialmente en el tema del buen diseño de la interfaz. Es realmente difícil apreciar muchos aspectos del desarrollo de software sin experimentarlos primero. Incluso algo tan básico como comentar código puede ser menospreciado. Desde el primer día, se le enseña a escribir código bien documentado. Admito que no fue hasta que realmente me metí en un código de comprensión $$ que escribí hace meses antes de que realmente apreciara el valor de los buenos comentarios. Lo mismo puede decirse de muchos conceptos de programación. Por ejemplo, encapsulación de datos, módulos de bajo acoplamiento e interfaces nítidas y limpias.
El recurso más valioso con el que me encuentro son mis compañeros de trabajo. Vas a escribir mal el código. Solo acepta eso. Es lo que haces para asegurarte de escribir un código mejor con el tiempo lo que te define como programador. Por ejemplo, cuando comencé a trabajar, mi empresa no tenía ningún tipo de código formal o procedimientos de revisión de diseño. Me encargué de someter mi trabajo a las críticas de mis compañeros de trabajo más antiguos y, para ser honesto, me sentí como un idiota durante gran parte de mi primer año de trabajo.
El desarrollo de software es una experiencia de aprendizaje continuo. Haga toneladas de preguntas, revise su código, comprenda el por qué de las sugerencias que hacen las personas mayores, no tenga miedo de cuestionar la validez de las sugerencias que dan los desarrolladores mayores y, sobre todo, no tenga miedo de equivocarse. Finalmente, el factor de intimidación o la sensación de estar abrumado de modas. Para el registro ... las curvas de aprendizaje apestan.