Mi mejor consejo es centrarse en los aspectos fundamentales, como la lista sugerida por Robert Harvey. El desarrollo de software es un monstruo complejo que demora años en ser remotamente bueno, especialmente en el tema del buen diseño de interfaces. Es realmente difícil apreciar muchos aspectos del desarrollo de software sin experimentarlos primero. Incluso algo tan básico como comentar el código puede ser subestimado. Desde el primer día, le enseñan a escribir código bien documentado. Admito que no lo fue hasta que realmente recibí el código $ que intenté entender, que escribí hace meses, antes de apreciar realmente el valor de los buenos comentarios. Lo mismo puede decirse de muchos conceptos de programación. Por ejemplo, la encapsulación de datos, los módulos de bajo acoplamiento y las interfaces nítidas y limpias.
El recurso más valioso que he encontrado son mis compañeros de trabajo. Vas a escribir mal el código. Sólo acepta eso. Lo que usted hace para asegurarse de que escribe un mejor código a lo largo del tiempo es lo que lo 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 mayor rango y, para ser honesto, me sentí como un idiota durante la mayor parte de mi primer año de trabajo.
El desarrollo de software es una experiencia de aprendizaje continuo. Haga toneladas de preguntas, haga revisar su código, comprenda el por qué de las sugerencias que le dan más personas mayores, no tenga miedo de las preguntas, la validez de las sugerencias que dan los desarrolladores senior y, sobre todo, no tenga miedo de equivocarse. Eventualmente el factor intimación o sensación de ser abrumado por las modas. Para el registro ... aprendiendo curvas apesta.