Desarrollo web en 2020: qué herramientas de codificación debe aprender

Hoy uno de mis maestros favoritos, Brad Traversy, publicó una descripción general de lo que recomienda que aprenda para convertirse en desarrollador web en 2020.

Brad atraviesa muchas de las exageraciones que se escuchan en las redes sociales. Su consejo es práctico y realista. Y estoy de acuerdo con él en casi todo lo que te recomienda que aprendas.

Lo principal que enfatiza Brad, y que yo siempre enfatizo, es que no se sienta intimidado ni se deje abrumar.

Recuerde: el plan de estudios de freeCodeCamp cubre la mayoría de estas herramientas y ha ayudado a más de 40.000 personas a conseguir trabajos como desarrolladores. En caso de duda, concéntrese en eso.

He resumido las principales ideas de Brad a continuación para su conveniencia. Dicho esto, los animo a que vean su video completo, que he incluido a continuación. Agrega muchos detalles mucho más allá de lo que transmiten estas notas. Es un reloj de 73 minutos.

Desarrollo web en 2020: una descripción general

El objetivo principal del video es familiarizarlo con algunas de las herramientas de desarrollo web más convencionales disponibles para los desarrolladores web.

"No estoy tratando de abrumarte con tecnologías. Estas son solo opciones que tienes ... Hay muchas tecnologías por ahí. Cuando escuchas algo como Nuxt o Gatsby, quiero que sepas qué es. Y luego puedes elegir si quieres aprenderlo o no ".

Brad comienza animando a las personas a que primero pregunten qué quieren hacer. ¿Quieres trabajar en una empresa de productos? ¿O trabajar como consultor? ¿Quieres ser autónomo? ¿O construir un producto propio?

Muchos de sus consejos sobre qué aprender se reducen a cuáles son sus objetivos. Y enmarca muchas de sus sugerencias de herramientas de esta manera.

Como punto de partida, recomienda aprender lo que él llama "Las necesidades".

Señala una cosa contraria a la intuición: no se necesita una computadora elegante para el desarrollo web. "No es como el desarrollo de un motor de juego o algo así, por lo que puede usar una computadora portátil o de escritorio de gama media, o incluso en algunos casos una computadora de gama baja".

Utiliza MacOS, Windows 10 y Linux para servidores en la nube e incluso para algunos de sus servidores multimedia.

Es un gran admirador de VS Code para su editor y usa Chrome y sus DevTools incorporadas para la depuración basada en navegador. Dicho esto, cree que Firefox también ha recorrido un largo camino y es una alternativa viable.

Recomienda comenzar con HTML y CSS estándar y aprender nuevas herramientas CSS como Flexbox y Grid.

Él dice que aprender diseño web receptivo en 2020 debería ser un hecho. "Cada proyecto serio que cree debe verse bien y ser completamente utilizable en todos los dispositivos".

En lugar de confiar en marcos CSS como Bootstrap, le recomienda que practique la construcción de sus propios componentes CSS modulares que luego puede reutilizar en todo su proyecto.

Dicho esto, él dice que puede encontrarlos mientras trabaja en proyectos para diferentes empleadores.

Él menciona específicamente Tailwind, del que no había oído hablar antes. Tailwind es un poco diferente de otros marcos CSS. Se centra en "clases de servicios públicos" que puede combinar para lograr lo que desea con el diseño.

No es de extrañar que Brad recomiende ser realmente bueno con JavaScript.

Aprender a un ritmo práctico

A lo largo de la guía de Brad, enfatiza repetidamente la necesidad de practicidad.

Sí, existen mejores prácticas para todo. Pero en muchos casos, existe una forma suficientemente buena que le ayudará a moverse más rápido y hacer más, sin atascarse en herramientas.

Una de las cosas más interesantes (y quizás heréticas) que dice:

"No es necesario aprender DevOps y AWS y todas estas cosas para un sitio pequeño. Un sitio de hospedaje o un sitio de hospedaje administrado como InMotion o Hostgator está bien. Le permite realizar [implementación] directamente en el navegador. No es necesario cosas demasiado complicadas ".

Sostiene que incluso en 2020, hay algo que decir sobre el uso de herramientas familiares.

Para las personas nuevas en el desarrollo web, Brad recomienda primero llegar al punto de poder trabajar como desarrollador web front-end básico. Esto le permitirá crear sitios web para empresas locales como autónomo.

"Los hipsters dirán que definitivamente necesitas usar un framework front-end. No creo que sea cierto. Si quieres renderizar plantillas en el servidor sin usar un framework front-end, creo que está absolutamente bien, pero hay muchos trabajos que buscan algo como React o Vue ".

Pero una vez que esté listo para abordar los marcos frontales, le recomienda que explore React, Vue y Angular. "Prueba los tres y descubre cuál te gusta más".

También hace un guiño a Svelte, que no es un marco, sino un compilador. Pero dice que probablemente sea demasiado nuevo para intentar recuperarlo en 2020.

Y analiza la creciente popularidad de la representación del lado del servidor. El enrutamiento basado en el sistema de archivos significa que no tiene que crear un archivo de enrutamiento complicado. En su lugar, puede colocar los archivos en el directorio en el que desea que estén.

Las dos herramientas de representación del lado del servidor más populares son Next.js (para React) y Nuxt.js (la opción Vue).

Otra tendencia emergente es Static Site Renders, que dice que no es necesario aprender, pero que debe conocer. Por ejemplo, los sitios de Gatsby son extremadamente rápidos y no necesitan un servidor.

Herramientas de desarrollo back-end

Para el desarrollo del lado del servidor, Brad prefiere Node.js por su velocidad y porque puede usar JavaScript tanto en el front como en el back-end.

Para los frameworks de desarrollo del lado del servidor, recomienda aprender Express, ya que es el más popular y "te da mucha libertad para construir cosas como quieras a tu manera".

También usa Python para algunos proyectos y también lo recomienda.

"Python tiene dos marcos increíbles. Django es un marco grande y con todas las funciones, donde Flask es más minimalista. Te brinda lo que necesitas pero tú tomas el resto de las decisiones. Honestamente, no puedo elegir uno de los dos, ámalos a ambos y úsalos para diferentes cosas ".

Y se apresura a defender PHP:

"Mucha gente le da una mierda a PHP y es desafortunado porque PHP puede ser un gran lenguaje. Es práctico y fácil de implementar en cualquier lugar. PHP es ideal para autónomos que necesitan sacar cosas rápidamente. Si está planeando trabajando para una gran empresa, PHP puede no ser la mejor opción, pero si eres freelance y estás creando proyectos personales, PHP puede ser una gran opción. Se ha vuelto genial bash PHP. PHP fue el primer idioma que aprendí y todavía me gusta mucho es ... Si miras el código de Laravel, es muy elegante ".

Brad también hace un recorrido rápido por las bases de datos y recomienda el PostgreSQL favorito de siempre.

Otras herramientas que probablemente estén aquí para quedarse

GraphQL es una alternativa a REST para API. Hay varios cursos que cubren GraphQL tanto en el canal de Brad como en el canal de freeCodeCamp. Pero él dice, "GraphQL no es algo que tengas que aprender en estos días, pero es lo suficientemente grande como para que creo que esté aquí para quedarse. Es más que una tendencia".

Brad también habla sobre los sistemas de administración de contenido (CMS) y cómo están evolucionando hacia nuevas opciones "sin cabeza" en las que simplemente los usa como back-end y codifica su propio front-end.

"Los CMS son muy útiles para los autónomos que tienen clientes que quieren poder iniciar sesión y crear sus publicaciones de blog y cosas por el estilo. Mucha gente usa WordPress, pero hay un gran porcentaje de sitios web en Internet que funcionan con WordPress. y sigue siendo muy popular ".

Para los servidores web, prefiere NGINX a Apache porque "parece ser menos complicado". Usamos NGINX ampliamente en freeCodeCamp y me inclino a estar de acuerdo.

Brad también explica cómo funciona la virtualización y habla sobre cómo puede simplificar proyectos más complejos al estandarizar el entorno en varias computadoras. Pero advierte contra tratar de virtualizar todo:

"Docker es realmente bueno para los equipos. Lo que no me gusta es cuando la gente dice que siempre debes usar Docker. Es solo preferencia. Si solo quieres ejecutar un servidor LAMP local, no hay nada de malo en eso. No sientas presión para aprender algo como Docker ".

Y agrega, para enfatizar algo que personalmente no puedo enfatizar lo suficiente: "Sé que muchos tipos nerds solo quieren complicar demasiado las cosas y lo odio. El hecho de que esté enumerando todo esto no significa que esté presionando tú."

También se apresura a señalar que la mayoría de las grandes empresas tienen equipos de DevOps dedicados (también llamados "ingenieros de confiabilidad del sitio") que pueden hacer mucho de esto por usted.

Es bueno tener habilidades que puedes aprender como especialidades

Si desea probar sus manos en el desarrollo de aplicaciones móviles, Brad recomienda encarecidamente el marco Flutter. Utiliza Dart, que es un lenguaje más oscuro. Él describe a Dart como algo entre Java y JavaScript, y dice que si conoce alguno de esos lenguajes, debería poder aprenderlo.

Su segunda opción para el desarrollo de aplicaciones móviles es React Native, que es fácil de aprender si ya conoce React.

Luego, Brad hace un gran trabajo al explicar qué son las aplicaciones web progresivas y algunos de sus beneficios. Aquí está la diapositiva, pero nuevamente, les recomiendo encarecidamente que vean su video completo.

Luego toca Electron, que le permite crear aplicaciones de escritorio usando JavaScript. Inicialmente se mostró escéptico, pero dice que algunas de sus aplicaciones de escritorio favoritas, como VS Code y Discord, ahora se crean con Electron.

Menciona JAMstack (JavaScript, API y Markup) y la arquitectura sin servidor. Estos son temas más avanzados en los que tanto su canal como el canal de YouTube de freeCodeCamp también tienen tutoriales en video.

Y luego llega a las grandes tendencias para 2020.

Aprendizaje automático y ensamblaje web

El hecho de que todos los demás hablen de aprendizaje automático no significa que tenga que dejarlo todo y aprenderlo. Así es como inicia esta etapa de su charla.

Y sí, también puede hacer aprendizaje automático en JavaScript.

"Python es el rey del aprendizaje automático. Pero incluso con JavaScript tienes TensorFlow.js, tienes Brain.js para crear redes neuronales y hacer cosas realmente interesantes".

Por la forma en que habla de Web Assembly, queda claro que está muy emocionado.

"Web Assembly todavía está en sus primeras etapas, pero creo que veremos más este año. Tradicionalmente usamos JavaScript en la página web para manipular el DOM y ejecutar cálculos. JavaScript tiene limitaciones en términos de velocidad. Un lenguaje como C o C ++ es mucho más rápido que JavaScript. Por lo tanto, Web Assembly es un código de bytes eficiente y de bajo nivel que puede ser ejecutado por un navegador y es extremadamente rápido. Puede ser generado por lenguajes como C, C ++ y Rust ".

Rust es uno de los lenguajes que puede utilizar con WebAssembly (además de C y C ++). Es significativamente más fácil de aprender y usar que C y C ++.

Pero es importante tener en cuenta que WebAssembly no le exime de tener que aprender JavaScript.

"Casi se puede pensar en JavaScript como el jefe, y puede decirle a Web Assembly qué hacer. Por lo tanto, nos permite usar lenguajes de bajo nivel realmente rápidos como C ++ en nuestras aplicaciones web, y esto nos brinda muchas más capacidades, como videojuegos de siguiente nivel y herramientas de edición de video directamente en el navegador: cosas que son impensables con solo JavaScript ".

Para terminar, dice: "Cuanto más aprenda, más fácil será aprender más y combinar todas estas tecnologías. Trate de no sentirse abrumado. Dé un paso a la vez, investigue un poco y descubra lo que quiero hacer."

Una vez más, quiero agradecer a Brad Traversy por armar este video completo.

La gente me pregunta todo el tiempo "¿qué debo aprender si quiero convertirme en desarrollador web?" Y mi respuesta es "simplemente use freeCodeCamp como su plan de estudios principal y amplíe sus recursos a otros recursos de aprendizaje sobre la marcha".

Y me complace decir que el canal de YouTube de Brad's Traversy Media es uno de esos recursos adicionales que más recomiendo.