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

Relacionado

ForEach de Javascript: Array para bucles

Como una de las estructuras de control básicas en la programación, los bucles son casi una adición diaria al código que escribimos. El bucle forEach clásico es uno de los primeros fragmentos de código que aprendemos a escribir como programadores. Si fueras un desarrollador de Javascript, sabrías que Javascript no es ajeno a la iteración a través de los elementos de una matriz o un mapa ¡SEGUIR LEYENDO!

10 Mejores alternativas de Sci-hub para descargar artículos de investigación gratis

Como sabemos, Sci-hub es un sitio web increíble con millones de artículos de investigación para todos los estudiantes universitarios y académicos. El sitio web de Sci-Hub se encarga de obtener los artículos de investigación y artículos de pago utilizando las credenciales que se filtran. La fuente de credenciales utilizada por este sitio web no está clara. Sin embargo, se supone que muchas de ellas son donadas, ¡SEGUIR LEYENDO!

10 Características Sorprendentes de Windows que Deberías Conocer en 2024

Aunque haya sido usuario de Windows durante décadas, el sistema operativo es tan amplio y complejo que siempre existen características útiles, pero menos conocidas, que podrían sorprenderte. En este sentido, he identificado diez funciones poco conocidas de Windows que pueden potenciar su eficiencia, comodidad e incluso su experiencia de uso lúdico en su PC.

No se ha podido encontrar este producto, prueba a realizar otra búsqueda.

Todas estas características deberían ser compatibles tanto con Windows 10 ¡SEGUIR LEYENDO!

10 Criptomonedas con Potencial de Crecimiento de Futuro

El rumor en torno a las criptomonedas no se desvanece por mucho que existan grandes pesimistas alrededor de los malos rumores. Entonces, si consideras invertir en el mundo de las criptomonedas, deberías estar atento a las criptomonedas que se espera que tengan un buen desempeño para el resto de 2021. En los últimos tiempos, los tokens DeFi están recibiendo toda la atención y es más que ¡SEGUIR LEYENDO!

10 Empresas de robótica más importantes del mundo

Los cambios de paradigma revolucionarios debido a los desarrollos de la robótica en todo el mundo están generando nuevos puntos de vista en muchos sectores, entre ellos en los de la industria y la tecnología. Con la ayuda de la Inteligencia Artificial, la tecnología produce resultados innovadores cada segundo y el campo de la robótica define y reconfigura su uso a cada instante. Cada día que ¡SEGUIR LEYENDO!

10 Frameworks que los Desarrolladores de Software deberían Aprender 2024

Bienvenidos desarrolladores web y de software, estamos en los inicios de 2023 y es posible que muchos se esten planteado sus objetivos para lo largo del año. Con anterioridad ya he compartidos las rutas de aprendizaje para un desarrollador front-end, un desarrollador full-stack o un desarrollador back-end entre otros muchos contenidos más. En este artículo, me gustaría compartir algunos de los mejores frameworks y bibliotecas para ¡SEGUIR LEYENDO!

10 Repositorio de GitHub que todo Desarrollador Web debería conocer

GitHub es el lugar que debes buscar cuando intentas mejorar como desarrollador, toda la información que necesitas está disponible en algún repositorio que alguien ya se ha molestado en indexar. Sin embargo, la parte complicado es encontrar el repositorio más adecuado. Es fácil sentirse perdido en todos los repositorios disponibles dentro de GitHub. Para ayudarte, he elaborado una lista de 10 repositorios de GitHub que pueden ¡SEGUIR LEYENDO!

10 Mejores billeteras sin custodia

Si se quiere lograr que DeFi tenga éxito, es crucial que las puertas de enlace para interactuar con la web 3 sean intuitivas, seguras y accesibles, manteniendo el espíritu central de ser el banco del futuro. En los últimos años, hemos visto mejoras drásticas en las carteras y otras herramientas de gestión de activos, lo que permite a los inversores y usuarios acceder de forma segura ¡SEGUIR LEYENDO!

21 Mejores Frameworks de Java

Si recién comienzas a programar con Java, puedes oje la guía para principiantes sobre Java que te guiará a través de todos los conceptos más importantes de Java que necesitas conocer, si pronto quieres comenzar a utilizar cualquier de los frameworks Java. Java es un lenguaje robusto y combinado con un framework Java, puede proporcionar las mejores soluciones para cualquier campo tecnológico, ya bien sea; un ¡SEGUIR LEYENDO!

11 Mejores Herramientas de Automatización de Pruebas para Interfaces de Usuario

¿Eres un profesional del testing y las pruebas de software? Si es así, ¿Qué herramienta de pruebas utilizas? Como la mayoría de las personas cuando comienzan en el control de calidad. es posible que tenga que dominar solo una o dos herramientas de prueba porque estás restringido a lo que estás utilizando en la empresa. Cualquiera que sea la razón, si usted es un profesional experimentado, ¡SEGUIR LEYENDO!

10 Mejores robots amigos que aparecen en películas (incluido Jeff de Finch)

Como demuestra la nueva película Finch de Apple+, los robots son excelentes amigos y hay bastantes memorables que aparecen en numerosas películas. 1. Baymax (Big Hero 6) Al igual que Pixar, Disney tiene la capacidad de crear personajes no humanos que sin embargo, tienen una gran cantidad de carisma y personalidad. Baymax, uno de los personajes principales de la película Big Hero 6 , es un ¡SEGUIR LEYENDO!