La forma de mejorar en cualquier cosa es practicando. Cuanto más hagas algo, mejor lo lograrás.
Ahora, está la cuestión de qué practicar. Como está hablando del desarrollo de software, lo que necesita practicar es desarrollar software. Eso no significa hacer problemas, aprender estructuras de datos o algoritmos, ni nada de eso. Significa desarrollar software.
Comience con una idea de algo que necesita o le gustaría desarrollar. Esa idea podría provenir de un cliente / cliente / usuario si está trabajando, o puede ser algo propio. Aprenda a analizar lo que se necesita o desea; para su propio proyecto, intente averiguar qué le gustaría que hiciera desde el punto de vista de un usuario del producto.
- ¿Es la informática o la ingeniería de software mejor para una carrera de ingeniería de software?
- Como técnico superior (o superior, con experiencia mínima de 10-15 años), ¿cuáles son las 5 cosas más importantes que desearía haber sabido al comienzo de su carrera?
- ¿Qué es una arquitectura de nada compartido y una arquitectura de todo compartido? ¿Cuál es la diferencia entre ellos y cuáles son sus usos?
- ¿Cómo instalo urllib y urllib2 para Python 3.3.2?
- ¿Es común que las grandes empresas contraten ingenieros de software para escribir aplicaciones especializadas para su empresa?
Desarrolle un diseño para la idea. Puede determinar que necesita saber más sobre cómo funcionaría desde la perspectiva de un usuario; Si es necesario, refine su comprensión.
Intenta implementar el diseño. Una vez más, es posible que deba volver a los pasos anteriores: obtener más comprensión, mejorar el diseño. Trabaja en una característica a la vez.
Probar y depurar la implementación. Puede descubrir que le faltaba su diseño o que su comprensión de lo que el usuario desea no está completa.
Repita para otras características. En algún momento, es posible que desee entregar el producto. Aprende a hacer eso. Ahora, también puede trabajar para agregar nuevas características a un producto existente.
En otras palabras, realice todo el proceso de desarrollo de software.