No estoy seguro de que haya un paso a paso, principalmente porque, en muchos casos, el orden no es importante, o debe trabajar en varios temas simultáneamente para obtener competencia.
- Estructuras de datos y algoritmos.
- Necesita esto para comprender la complejidad de su código y para no volver a crear la rueda.
- Dominio de al menos un idioma y marco
- No podrá hacer mucho sin comprender al menos un lenguaje y un marco realmente bien, ya sea Python Django o Ruby on Rails o J2EE / Spring / Hibernate, en realidad no importa, siempre que lo comprenda en profundidad
- GOLPETAZO
- Si trabaja en un entorno Linux, es muy importante entender cómo trabajar con el sistema operativo / shell
- Pruebas
- Debe comprender las pruebas unitarias y las pruebas de integración, como mínimo, utilizando al menos un marco, por ejemplo, Pruebas unitarias Django, Rails Rspec, etc.
- Diseño de sistemas
- Es necesario comprender cómo interactúa el código con el sistema en el que se implementa, de lo contrario, puede terminar con una aplicación que no funciona bien en la producción debido a la falta de comprensión de los permisos, ubicaciones, configuración, etc.
- Programación defensiva
- Aprenda a escribir código para evitar y lidiar con los problemas antes de que lleguen a sus consumidores
- Diseño impulsado por API / SoA
- Al escribir aplicaciones web, aprenda a escribirlas como servicios / contractualmente
- Bases de datos
- Como mínimo, debe comprender los conceptos básicos de un diseño en términos de CRUD (Crear, Leer, Actualizar, Eliminar) y, en particular, cómo su ORM (modelo relacional de objetos) interactuará con el DB
Para obtener más información, consulte un par de artículos que escribí sobre el viaje de junior, a nivel medio, a ingeniero de software senior.
- Me ofrecieron un trabajo de ingeniería de software con opciones de hacer trabajos de backend o Android. ¿En cuál debería centrarme?
- ¿Por qué es tan difícil y lento cambiar los procesos de fondo de los bancos?
- Si reinventara findthebest.com, ¿cuáles serían los idiomas del lado del servidor y del cliente que usará?
- Cómo conectar dos bases de datos con un front end
- ¿Se puede usar Swift como Go para el desarrollo de backend web?