Hoja de Ruta de un Back End

El desarrollo web actual es completamente diferente de lo que era hace unos años. Hay muchas cosas diferentes que pueden desconcertar fácilmente a cualquiera que comience con el desarrollo web.

A continuación, vas a encontrar una hoja de ruta o guía de aprendizaje completa para poder convertirte en un auténtico desarrollador web backend.

↪ Infografía Camino a Ser un Desarrollador Back End 2021

Vamos a desglosarlo y explicar cada Fase en la sección siguiente.

Antes de comenzar, aunque no se ha enumerado el conocimiento de HTML y CSS en las hojas de ruta anteriores, se recomienda que obtenga al menos algo de comprensión y sepa cómo escribir algo de HTML y CSS básico, aquí puedes encontrar algunas buenas opciones para ello. Más concretamente, tienes cursos de HTML y aquí, cursos de CSS.

Fase 1: Aprender un lenguaje de programación

Hay cientos de opciones cuando se trata de elegir un idioma. Los he dividido en categorías para que le resulte más fácil decidir. Para los principiantes que recién se están iniciando en el desarrollo de backend, les recomendaría elegir cualquiera de los lenguajes de scripting porque tienen mucha demanda y les permitiría ponerse al día rápidamente.

Si tiene algún conocimiento de frontend, es posible que Node.js sea bastante más fácil y además hay un gran mercado laboral para eso.

Si ya ha estado desarrollando backend y conoce algún lenguaje de programación, le recomendaría que no elija otro lenguaje de programación y elija algo de la sección “Funcional” o “Multiparadigma”.

Por ejemplo, si ya ha estado usando PHP o Node.js, no elija Python o Ruby, en su lugar, pruebe Erlang o Golang. Definitivamente le ayudará a ampliar su pensamiento y a abrir su mente a nuevos horizontes.

Fase 2: Practica lo que has aprendido

No hay mejor manera de aprender que practicar. Una vez que haya elegido su idioma y haya adquirido la comprensión básica de los conceptos, póngalos en práctica. Realice tantas aplicaciones pequeñas como pueda. Aquí hay algunas ideas para comenzar

  • Implemente algún comando que se encuentre usando en el bash, por ejemplo, intente implementar la funcionalidad de ls
  • Escriba un comando que obtenga y guarde publicaciones de reddit /r/programmingen forma de archivo JSON
  • Escriba un comando que le proporcione una estructura de directorio en formato JSON, por ejemplo, jsonify dir-name para darle un archivo JSON con la estructura dentro deldir-name
  • Escriba un comando que lea JSON del Fase anterior y cree una estructura de directorio
  • Piensa en posibles tareas que realices todos los días e intenta automatizarlas

Fase 3: Aprende a usar el administrador de paquetes

Una vez que hayas entendido los conceptos básicos del idioma y hayas creado algunas aplicaciones de ejemplo, aprende a usar el administrador de paquetes para el idioma que hayas elegido. Los administradores de paquetes te ayudan a usar bibliotecas externas en tus aplicaciones y a distribuir sus bibliotecas para que otras personas las usen.

Si quieres saber más sobre las bibliotecas de los lenguajes de programación o tener acceso a ellas, debes conocer Libraries.IO donde vas a poder encontrar infinitos paquetes clasificados, tanto por las diferentes plataformas de paquetes, como por los diferentes lenguajes de programación.

Por ejemplo. Si eligiste PHP, tendrás que aprender Composer. Si eliges Node.js tienes NPM o Yarn, para Python tienes Pip o para Ruby tienes RubyGems. Sea cual sea tu elección, sigue adelante, aprendiendo a usar su administrador de paquetes determinado.

Fase 4: Estándares y mejores prácticas

Cada uno de los idiomas tiene sus propios estándares, mejores prácticas y unas posibles metodologías, que nos van a ayudar a mejorar la calidad del código. Estudia los estándares, mejores prácticas posibles u metodologías más apropiadas que se asocien con el idioma de programación elegido.

Por ejemplo, PHP tiene PHP-FIG y PSR. Con Node.js hay muchas pautas diferentes impulsadas por la comunidad y así para otros muchos idiomas. Debes recordar, de que a la hora de guiarte en una metodología, no existe una mejor que las demás, ni una verdad definitiva.

Simplemente, debes de tener en cuenta, de que es importante intentar adoptar unas mínimas pautas que entablezca una estructura ordenada dentro de tu código, para que el código no termine siendo un auténtico caos.

Fase 5 – Seguridad

Asegúrate de leer sobre las mejores prácticas de seguridad. Lea las pautas establecidas por la OWASP y comprende los diferentes posibles problemas de seguridad dentro de tu idioma, y las mejores prácticas con las que poder evitarlos.

Tarea

Ahora que conoce los conceptos básicos del lenguaje, los estándares y las mejores prácticas, la seguridad y cómo usar el administrador de paquetes. Ahora adelante, cree un paquete y distribúyalo para que otros lo usen, y asegúrese de seguir los estándares y las mejores prácticas que ha aprendido hasta ahora. Por ejemplo, si eligió PHP, lo publicará en Packagist, si eligió Node.js, lo publicará en el registro Npm y así sucesivamente.

Una vez que hayas terminado con eso, busca algunos proyectos en Github y abre algunas solicitudes de extracción en algunos de ellos. Puedes seguir las siguientes ideas para eso:

  • Refactoriza e implementa tus técnicas de mejores prácticas aprendidas.
  • Mira los posibles problemas ya abiertos dentro de un proyecto e intente darles una solución; resolviéndolos.
  • Agrega cualquier funcionalidad adicional.

Fase 6: Dale la importancia adecuada a las pruebas

Hay varios tipos de fórmulas diferentes para la realización de pruebas del código. Obtén la comprensión de cuál es el propósito de cada una de ellas. Para posteriormente, aprender a escribir pruebas unitarias y pruebas de integración dentro de tus aplicaciones.

Además, debes tener en cuenta, que debes de conocer y comprender las diferentes terminologías utilizadas dentro de todo el ámbito del testing o pruebas.

Tarea

Para la práctica, sigue adelante y escribe las pruebas unitarias para las tareas prácticas que has realizado hasta ahora, especialmente las que hiciste en la Fase 6.

Fase 7: Aprende sobre las bases de datos relacionales

Aprenda a conservar sus datos en una base de datos relacional. Antes de ir y elegir la herramienta para aprender, comprenda las diferentes terminologías de la base de datos, por ejemplo, claves, índices, normalización, tuplas, etc.

Aquí hay varias opciones. Sin embargo, si aprende uno, otros deberían ser bastante fáciles. Los que le gustaría aprender son MySQL, MariaDB (que es en su mayoría igual y es la bifurcación de MySQL) y PostgreSQL. Elija MySQL para empezar.

Tarea – Tiempo práctico

Es hora de llevar todo lo que ha aprendido hasta ahora para usarlo.

Cree una aplicación sencilla utilizando todo lo que ha aprendido hasta ahora. Simplemente elija cualquier idea, tal vez cree una aplicación de blogs simple e implemente las siguientes características en ella

  • Cuentas de usuario: registro e inicio de sesión
  • El usuario registrado puede crear publicaciones de blog
  • El usuario debe poder ver todas las publicaciones de blog que creó.
  • Deberían poder eliminar sus publicaciones de blog.
  • Asegúrese de que el usuario solo pueda ver sus publicaciones de blog personales y no las de otros
  • Escriba las pruebas unitarias / de integración para la aplicación
  • Debe aplicar índices para las consultas. Analice las consultas para asegurarse de que se estén utilizando índices

Fase 8 – Aprende un framework

Dependiendo del proyecto y del idioma que elija, es posible que necesite o no un framework. Cada idioma tiene varias opciones diferentes, siga adelante y vea qué opciones están disponibles para el idioma de su elección y elija el que corresponda.

Si eligió PHP, le recomendaría que elija Laravel o Symfony y, para los micro-frameworks, elija Lumen o Slim. Si eligió Node.js, hay varias opciones diferentes, pero la más destacada es Express.js

Tarea: Tiempo práctico

Para la práctica de este Fase, convierta la aplicación que realizó en el Fase 10 para utilizar el framework que eligió. También asegúrese de portar todo, incluidas las pruebas.

Fase 9: aprenda una base de datos NoSQL

Primero, comprenda qué son, en qué se diferencian de las bases de datos relacionales y por qué son necesarias. Hay varias opciones diferentes, investigue un poco, eche un vistazo y compárelas para ver las características y diferencias. Algunas de las opciones comunes que puede elegir son MongoDB, Cassandra, RethinkDB y Couchbase. Si tiene que elegir uno, elija MongoDB.

Fase 10: Almacenamiento en caché

Aprenda a implementar el almacenamiento en caché a nivel de aplicación en sus aplicaciones. Comprenda cómo usar Redis o Memcached e implemente el almacenamiento en caché en la aplicación que creó en el Fase 12.

Fase 11: creación de API RESTful

Comprenda REST y aprenda a crear API RESTful y asegúrese de leer la parte sobre REST del artículo original de Roy Fielding . Y asegúrese de poder luchar contra alguien si dice que REST es solo para las API HTTP.

Fase 12: aprenda sobre los diferentes métodos de autenticación

Conozca las diferentes metodologías de autenticación y autorización. Debes saber cuáles son, en qué se diferencian y cuándo preferir uno al otro.

  • OAuth: autenticación abierta
  • Autenticación básica
  • Autenticación de token
  • JWT: tokens web JSON
  • OpenID

Fase 13: Corredores de mensajes

Conozca los agentes de mensajes y comprenda cuándo y por qué usarlos. Hay múltiples opciones, pero las más destacadas son RabbitMQ y Kafka . Aprenda a usar RabbitMQ por ahora, si desea elegir uno.

Fase 14: Motores de búsqueda

A medida que la aplicación crece, las consultas simples en su base de datos relacional o NoSQL no lo van a cortar y tendrá que recurrir a un motor de búsqueda. Hay varias opciones, cada una con sus propias diferencias.

Fase 15: aprende a usar Docker

Docker puede facilitarle enormemente su desarrollo, ya sea replicando el mismo entorno que la producción, manteniendo limpio su sistema operativo o acelerando su codificación, prueba o implementación. Voy a dejar la respuesta a “cómo me va a ayudar” para que la busques. En este Fase, siga adelante y aprenda a usar Docker.

Fase 16: conocimiento de los servidores web

Si ha llegado hasta aquí, probablemente tuvo que abordar con servidores en los Fases anteriores. Este Fase se trata principalmente de descubrir las diferencias entre los diferentes servidores web, conocer las limitaciones y las diferentes opciones de configuración disponibles y cómo escribir aplicaciones utilizando mejor estas limitaciones.

Fase 17: aprenda a utilizar Web Sockets

Si bien no es obligatorio, es beneficioso tener este conocimiento en su cinturón de herramientas. Aprenda a escribir aplicaciones web en tiempo real con web-sockets y cree una aplicación de muestra con él. Puede usarlo en la aplicación de blog que creó anteriormente para implementar actualizaciones en tiempo real en la lista de publicaciones del blog.

Fase 18: Aprende GraphQL

Aprenda a crear API con GraphQL. Comprenda en qué se diferencia de REST y por qué se llama REST 2.0.

Fase 19: Busca en las bases de datos de gráficos

Los modelos de gráficos representan una forma muy flexible de manejar las relaciones en sus datos, y las bases de datos de gráficos brindan almacenamiento, recuperación y consulta rápidos y eficientes. Aprenda a utilizar Neo4j u OrientDB.

Fase 20: Sigue explorando

Una vez que comience a aprender y practicar, definitivamente se encontrará con las cosas que no cubrimos en esta hoja de ruta. Simplemente mantenga la mente abierta y un apetito saludable por aprender cosas nuevas.

Y recuerda que la clave es practicar todo lo que puedas. Parecerá más aterrador al principio y es posible que sienta que no está comprendiendo nada, pero eso es normal y, con el tiempo, sentirá que está mejorando.

Infografía Hoja de Ruta Back End

https://drive.google.com/file/d/1X2DTlW7g9LBfm6KufEGJPKM5QsvX4UzV/view?usp=sharing

Relacionados