¿Qué debe aprender un desarrollador de back-end (paso a paso)?

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.

Como desarrollador de back-end, le sugiero que se acerque a la ruta de un desarrollador de pila completa para conocer sus motivos. Luego, concéntrate en el desarrollo de back-end cuando hayas descubierto la mayoría de las cosas.

Comience con los relativamente fáciles, aprenda HTML5, CSS3 y JavaScript. No necesita crear diseños y animaciones llamativos (si no quiere de todos modos), pero créame, necesitará comprender AJAX. Será de gran ayuda para usted en el desarrollo.

Cuando esté listo para escribir una aplicación web dinámica que utilice una base de datos, necesitará aprender lenguajes de programación, sus marcos y complejidades más una base de datos. Déjame articular.

Tome python por ejemplo. Debería aprender primero la programación de Python, luego saltar al matraz, que es un marco web que lo ayuda a escribir aplicaciones del lado del servidor. Aprenderá plantillas del lado del servidor , verbos de protocolo HTTP como GET, POST, etc. y cómo usarlos para construir servicios web RESTful y, por último, pero no menos importante, usar una base de datos y conectar su servidor a ella, siempre vaya con MySQL . En mi opinión, MySQL es el epítome de una base de datos perfecta. Puede cambiar de opinión más tarde, pero confía en mí para comenzar con este.

También hay otros idiomas que puede elegir, como PHP, JavaScript (mi favorito), Ruby, C #, etc.

Necesita un buen tutorial, ya sea visual, como un video o interactivo, que le permita codificar en tiempo real. Para los tutoriales de reloj anteriores realizados por Lynda, Coursera, Udemy y tutsPLUS, puede buscar más alternativas. Para este último, definitivamente te sugiero que vayas con codeAcademy. Empecé con ellos.