Hoja de ruta para desarrolladores web de 2020: una guía visual para convertirse en un desarrollador front-end, back-end o DevOps

Hay muchas formas de adquirir las habilidades necesarias para convertirse en desarrollador.

Hay planes de estudio lineales que le enseñan un poco de todo, como el plan de estudios de desarrollo de pila completa de freeCodeCamp.

Y luego hay listas masivas de habilidades, y algunas veces listas de recursos, que puede usar para "elegir su propia aventura" a través del proceso de aprendizaje.

Una de las mejores listas de habilidades es la Hoja de ruta para desarrolladores de Kamran Ahmed, que actualiza periódicamente.

Esta no es una lista ordinaria de recursos. Kamran ha trazado minuciosamente todas las habilidades que cree que son esenciales para entrar en diferentes campos de desarrollo.

He escrito sobre su hoja de ruta en el pasado. Y para celebrar que todos estamos a mitad de camino en 2020, voy a compartir su hoja de ruta completa aquí, los tres.

Así es, tiene listas de herramientas y recursos necesarios para las siguientes rutas:

  • Desarrollo web front-end
  • Desarrollo web back-end
  • DevOps (también conocido como "confiabilidad del sitio"; esta es una especie de evolución del antiguo rol de administrador del sistema)

Las habilidades que todos los desarrolladores necesitan independientemente de su especialización.

Además de estos caminos, Kamran también recomienda que todos los que quieran trabajar como desarrolladores aprendan las siguientes habilidades:

Git - Control de versiones

Git es un poderoso sistema de control de versiones que a partir de 2020 se usa casi universalmente. Si no lo sabe, sí, está relacionado con GitHub y GitLab, y también puede aprender a usar esas herramientas.

Uso básico de la terminal: la línea de comandos Bash, SSH y otras habilidades

Este podría ser el terminal en una Mac, un indicador de Windows DOS o Bash / ZSH. Tenga en cuenta que, independientemente del sistema operativo que utilice, probablemente debería aprender Linux. Incluso si no lo está utilizando para su entorno portátil / de escritorio, es casi seguro que lo utilizará para servidores.

Estructuras de datos y algoritmos

El plan de estudios de freeCodeCamp cubre estos en profundidad. Probablemente desee aprender esto resolviendo muchos problemas de algoritmos en freeCodeCamp, CodeWars, Project Euler u otro sitio web de perforación. Personalmente, recomiendo hacer esto en JavaScript o Python, pero si está preparado para un desafío y tiene mucho tiempo en sus manos, hacerlo en C no estaría de más.

Comprensión de cómo funciona la web: HTTPS y API

Hay muchos otros conceptos que puedes aprender. Recomiendo trabajar en un buen curso de informática de nivel de entrada para comenzar. Aquí están todas las conferencias del curso CS50 de Harvard sin publicidad en el canal de YouTube de freeCodeCamp.

Patrones de diseño, YAGNI, KISS, SOLID

No creo que los principiantes necesiten una comprensión profunda de estos, pero no estaría de más.

Los patrones de diseño son básicamente formas probadas en el tiempo para implementar diferentes tipos de sistemas de software y estructuras de codificación. Puede aprenderlos gradualmente a medida que avanza.

En cuanto a la sopa de letras, esto es lo que significan:

  • YAGNI - Ya no lo necesitarás - La filosofía de que la mayor parte del código que crees que necesitarás escribir y las funciones que necesitarás implementar resultará realmente innecesario
  • BESO - ¡Mantenlo simple, tonto! - Cuanto más simple mantenga sus proyectos, más fácil será su vida en lo que respecta al mantenimiento.
  • SÓLIDO: este es un mnemotécnico para " Responsabilidad única, ‌‌ Abierto-cerrado, sustitución de Liskov, segregación de interfaz, inversión de dependencia". Sí, no es para principiantes, pero mira esto si tienes curiosidad.

Hoja de ruta de desarrollo web front-end

La primera hoja de ruta de Kamran se centra en el desarrollo web front-end.

Aquí está su hoja de ruta de Front End en su totalidad:

Mis pensamientos sobre la hoja de ruta de Front End

Esta es una lista sólida de habilidades fundamentales.

Como desarrollador front-end, definitivamente trabajará con HTML, CSS y JavaScript, mucho, mucho JavaScript.

Las únicas cosas que creo que son innecesarias aquí:

  • Preprocesadores CSS. Estos suelen ser necesarios, pero el propio CSS ha agregado muchas de las características que hicieron que estos preprocesadores fueran tan útiles. freeCodeCamp actualmente enseña Sass, pero también estamos en el proceso de eliminarlo.
  • Arquitectura CSS: No creo que sean necesarios a menos que el diseño de sistemas CSS sea una gran parte de su trabajo diario.
  • Un poco quisquilloso: TypeScript es una forma prometedora de reducir errores y codificar con confianza. Agregaremos esto a la versión 7.0 del plan de estudios básico de freeCodeCamp. Creo que esto debería ser aún más prominente en la hoja de ruta, pero está ahí.
  • En mi opinión, Web Assembly es bueno tenerlo. Los desarrolladores están empezando a hacer cosas interesantes con él, pero pasará un tiempo antes de que esta tecnología se vuelva realmente omnipresente.

Hoja de ruta de desarrollo web back-end

La segunda hoja de ruta de Kamran se centra en el desarrollo web back-end. Si combina esto con su mapa de interfaz, obtendrá un buen camino para convertirse en un desarrollador de pila completa.

Aquí está toda su hoja de ruta de back-end:

Mis pensamientos sobre la hoja de ruta de back-end

Estoy de acuerdo con todo lo de aquí.

Sí, debería aprender SQL y bases de datos relacionales

Quiero estar totalmente de acuerdo con su recomendación de que aprenda una base de datos relacional.

Sí, las bases de datos como MongoDB y Neo4j pueden hacer mucho por usted y son más adecuadas para ciertos tipos de aplicaciones que las bases de datos relacionales.

Pero aún debe aprender SQL y comprender cómo funcionan las bases de datos relacionales.

Recomiendo PostgreSQL (que usamos para varios proyectos en freeCodeCamp), pero otras bases de datos relacionales son bastante similares.

Aquí está el curso gratuito de 4 horas de freeCodeCamp sobre SQL, que le enseñará los conceptos básicos.

Y si desea profundizar aún más, aquí está nuestro curso gratuito de 8 horas sobre diseño de bases de datos relacionales.

Cómo elegir el lenguaje de programación de desarrollo back-end adecuado

También quiero agregar una nota sobre la elección de un idioma.

Aunque hay muchos idiomas, y puedes hacer prácticamente cualquier cosa con cualquier idioma, te recomiendo que aprendas Node.js (JavaScript) o Python como tu primer idioma.

Aquí hay una guía detallada sobre qué lenguaje de programación debe aprender primero.

Hoja de ruta de DevOps

Finalmente, Kamran explica cómo convertirse en DevOps o Ingeniero de confiabilidad del sitio. Esto implica trabajar con muchos servicios en la nube y supervisar la infraestructura.

Aquí está su hoja de ruta completa de DevOps:

Mis pensamientos sobre la hoja de ruta de DevOps

Linux, Linux, Linux.

Además, recomendaría trabajar primero como desarrollador y luego gradualmente especializarse en DevOps.

Aquí hay una introducción rápida de 30 minutos al campo de DevOps que debería darle una mejor idea de si DevOps es algo que le interesa.

Eso es todo. ¿Qué piensas? ¿Kamran omitió alguna habilidad o tecnología esencial? Deje un comentario y analicemos esto.

Además, si tiene algún recurso que le haya funcionado realmente bien para aprender estas habilidades, compártalo a continuación como comentario.

¡Feliz codificación!

- Quincy