1. Practica y comete errores
El primer consejo es que debes mantener una práctica constante. Cuanto más código escribas, más eficiente serás, y cuantos más errores cometas, más aprenderás. ¿Por qué es tan importante cometer errores cuando practicas? Cuanto más código escribas, más te darás cuenta de los errores que cometes al lidiar con situaciones como errores, diseño, manejo de hilos, etc. Aprenderás de estos errores y, en ese momento, tus habilidades serán cada vez mejores.
2. Autoaprendizaje a través de Internet y libros
Obviamente, la mejor manera de mejorar tus habilidades es el autoaprendizaje, enfocándote en las técnicas que te faltan. Para la gran mayoría de los programadores, un buen camino es leer documentación técnica de diferentes fuentes, como el sitio web para desarrolladores de Google, donde muchos programadores experimentados han escrito artículos introductorios de alta calidad. Code Academy, Code.org,Tutorial para novatos, así como HTML5 Rocks, son todos excelentes sitios web de aprendizaje.
3. Autorreflexión
Reflexionar sobre el código que escribes es muy importante. Cada vez que corrijas un error, debes reflexionar y pensar en cómo evitar que vuelva a ocurrir en el futuro. Esta es también una regla de programación muy importante. Recomiendo un libro: "El arte de la programación".
4. Aprende de otros programadores
Intenta trabajar en muchos proyectos de diferentes tipos y trata cada proyecto como una oportunidad de aprendizaje. Cuando sientas que las cosas no van bien, eso es bueno. Sal de tu zona de confort y trabaja con otros programadores que no te resulten familiares; así aprenderás muchas cosas nuevas.
Si la oportunidad lo permite, trabaja con otros programadores siempre que puedas, porque esto puede mejorar la calidad de tu código y ayudarte a desarrollar tus habilidades de trabajo en equipo. Cuando colabores con otros programadores, trátalo como una oportunidad de aprendizaje. Si hay algo que no entiendes en el trabajo, pregunta a otros programadores. Normalmente, un equipo tendrá un programador senior con mucha experiencia y otros programadores; puedes aprender de ellos.
5. Trabaja en proyectos de código abierto
Puedes desarrollar en proyectos de código abierto de sitios como GitHub. Crear una rama (fork) de un proyecto de código abierto y luego desarrollarlo es una muy buena manera de mejorar tus habilidades de programación.
Lee y entiende el código escrito por otros en proyectos de código abierto. Escribir comentarios en tus propios proyectos o en proyectos de código abierto te ayuda a entender tu propio código y facilita que los demás te entiendan.
6. Lee código
Lee el código de proyectos de código abierto o el código de otros programadores para entender cómo funcionan. Descubre patrones en el código y desarrolla tus habilidades; poco a poco tendrás tu propio "sentido del código". Desarrollar tu "sentido del código" te permite detectar dónde están los errores al programar y así evitarlos.

7. Domina el lenguaje de programación que uses
¿Ser el mejor en tu campo, o saber un poco de todo sin dominar nada? En mi opinión, al menos debes dominar bien el lenguaje que vas a usar, y luego puedes aprender otros lenguajes de forma amplia.
8. Únete a comunidades de aprendizaje en línea y de desarrolladores
La tecnología ha hecho que aprender sea más fácil; de hecho, ha eliminado las barreras del aprendizaje. Ya no es necesario apuntarse a clases como antes. Ahora la información es más fácil de obtener, por lo que aprender es más fácil. Únete a redes sociales, comunidades en línea y blogs. Los blogs suelen contener mucha documentación técnica, información, características de nuevas tecnologías y API, etc.
Únete a Stack Overflow, foros y otras comunidades. Esto es realmente muy, muy importante porque puedes aprender de las discusiones de otros. Te dará una mejor plataforma para resolver tus problemas. Asegúrate de hacer muchas preguntas en las discusiones y expresa tus propios puntos de vista.
9. Escribe pruebas unitarias
Si usas pruebas unitarias, descubrirás que te ayudan a mejorar tu pensamiento de diseño y tu proceso de codificación. De esta manera, serás mejor diseñando código. Escribir pruebas unitarias te ayudará a encontrar mejores nombres, clases abstractas, interfaces y clases abstractas, etc. Todo esto mejorará la calidad de tu código.
10. Realiza revisiones de código y envía tu código para que otros lo revisen
Hacer revisiones de código es muy importante; te ayuda a convertirte en un mejor programador. A través de la revisión de código, puedes mejorar tu "sentido del código" y obtener comentarios de los demás. Al mismo tiempo, puedes ayudar a otros a mejorar sus habilidades. Cuando recibas comentarios, pregunta por información más detallada sobre lo que no entiendas.
11. Lo más importante... discute con otros y diviértete
Al programar, es muy fácil perder el contacto con el mundo exterior, pero discutir el código con otros y tener reuniones breves ayuda a mejorar esto.
Conversa e intercambia ideas con colegas y otros programadores, asiste a conferencias más grandes como JavaOne, DevFest, etc., y disfruta de la diversión que aportan.