¿Vale la pena aprender Vanilla JavaScript? Absolutamente.

El propósito de esta publicación es enfatizar la importancia de los fundamentos de JavaScript para cada desarrollador front-end. Te voy a decir por qué deberías tener un buen conocimiento de JavaScript puro (Vanilla). Esto significa JavaScript sin marcos o bibliotecas adicionales.

También mencionaré un par de recursos que me ayudaron a aprender estos conceptos básicos.

Otra razón detrás de esta publicación es que muchos aspirantes a desarrolladores web tienden a omitir el aprendizaje de conceptos básicos de JavaScript, como elevación, cierres o prototipos. Van directamente a los frameworks más populares como React o Angular 2. Le mostraré por qué este enfoque no es el más conveniente.

Todo el mundo quiere desarrolladores con conocimientos de $ {addTheHotFramework}…

Entonces, ¿hay alguna razón por la que debería molestarse en aprender Vanilla JavaScript?

Es difícil convertirse en un desarrollador sólido sin conocer el núcleo del lenguaje en sí. Del mismo modo que necesita comprender los principios fundamentales del derecho antes de poder saltar a un campo particular del derecho. Esta comparación es puramente accidental. ?

Entiendo que la mayoría de los aspirantes a desarrolladores web quieren ser contratados lo antes posible. Yo también quería esto.

Parece mucho más fácil hacer un curso intensivo sobre conceptos básicos de JavaScript, saltar a un marco elegante, hacer una lista de tareas pendientes (dejar morir a un cachorro), subirla a GitHub y luego empezar a buscar trabajo.

… Pero invertir tiempo en Vanilla JavaScript dará sus frutos a largo plazo

No me malinterpretes aquí. No estoy predispuesto contra los marcos de JavaScript de ninguna manera. Es exactamente lo contrario. Muchos de ellos le ayudan a escribir código más legible y fácil de mantener. Le permiten escribir código más abstracto que a menudo es más fácil de depurar.

Pero el ecosistema de JavaScript está evolucionando bastante rápido. Se están creando nuevos marcos. Se están agregando nuevas funcionalidades a las existentes. Y lo más importante, muchos de los frameworks más populares de la actualidad eventualmente serán reemplazados, como Angular 1.

En tales circunstancias, ¿todavía cree que el conocimiento de un marco de JavaScript en particular es suficiente para un desarrollador web?

¿O es mejor entender cómo funciona bajo el capó el lenguaje en el que se basan todas estas bibliotecas y marcos?

Si posee un conocimiento sólido de los fundamentos de JavaScript,lo único con lo que debe familiarizarse al comenzar a trabajar con un nuevo marco es su sintaxis . Las reglas básicas serán las mismas ya que bajo todas las capas de abstracciones. Todavía es simplemente JavaScript.

Si su conocimiento se limita solo a un único marco de JavaScript, tendrá dificultades para aprender uno nuevo. Los diferentes marcos a menudo se basan en un conjunto diferente de principios de JavaScript. A largo plazo, pasará más tiempo tratando de comprender varios marcos y depurando el código que escribe en ellos.

Todos los marcos y bibliotecas de JavaScript se basan inevitablemente en su núcleo Vanilla.

Esto debería convencer a cualquiera de que el conocimiento de JavaScript puro es imprescindible a largo plazo. Es un requisito previo para cualquier desarrollador exitoso, especialmente para uno que trabaja principalmente en el ecosistema JavaScript.

Experiencia personal

No hace mucho, miré hacia atrás en mi viaje de abogado a desarrollador web. Ya han pasado 18 meses desde que escribí mi primera función de JavaScript y mi décimo mes trabajando como desarrollador front-end profesional.

Todavía recuerdo lo difícil que fue para mí descubrir la forma correcta de aprender JavaScript, ya que no tenía experiencia previa en programación. He intentado (y sigo intentando) muchas formas diferentes de convertirme en un alumno eficaz. Algunos de ellos fueron más gratificantes, otros menos.

Lo más importante es que no puedo enfatizar lo suficiente lo útil que fue para mí poner énfasis en aprender JavaScript puro desde el principio. Los marcos vinieron después.

Por el momento, estoy trabajando con una pila React-Redux. Aun así, a menudo me encuentro con un problema que puedo resolver gracias a mi conocimiento de Vanilla JavaScript. Estos errores serían mucho más difíciles de resolver con solo el conocimiento de un marco en particular.

Aprender React o Angular 2 no le enseñará que los objetos se pasan por referencia o cómo funcionan los cierres. Tratar de comprender estos conceptos bajo las abstracciones aportadas por el marco es mucho más difícil. Esto hace que los conceptos simples de JavaScript sean más difíciles de entender.

Además, si está trabajando con JSX (React, Vue, Inferno) o TypeScript (Angular 2), tiene otra capa de abstracción encima.

Si desea comprender cómo funcionan estos marcos bajo el capó, primero debe saber cómo funciona JavaScript.

Puede poner a prueba su conocimiento de JavaScript puro leyendo el código fuente de su marco favorito.Esto no solo te dará una idea de cómo funciona bajo el capó, sino que también te enseñará mucho sobre su lógica, que puedes usar en tu propio código. Verá que las funciones del framework que parecen estar haciendo mucha magia en su aplicación son solo composiciones de conceptos básicos de JavaScript.

Dame algo de lo que pueda aprender

La pregunta que podría estar haciendo ahora es "¿Cuáles son algunos buenos recursos que pueden ayudarme a adquirir un conocimiento decente de Vanilla JavaScript?".

Hay toneladas de cursos y libros sobre JavaScript y sus marcos. Sin embargo, pocos de ellos tienen como objetivo enseñarte Vanilla JavaScript de manera integral. La mayoría de ellos se especializan en una tecnología JavaScript en particular.

Pero todavía hay algunos buenos ...

Eloquent JavaScript le enseñará no solo los conceptos básicos de JavaScript, sino también los conceptos básicos de la programación en general. Si ya es un desarrollador avanzado, este libro le proporcionará una nueva perspectiva sobre JavaScript y sus principios básicos.

Otro gran recurso es la serie de libros You Don't Know JavaScript (YDKJS) de Kyle Simpson. Kyle realmente sabe cómo enseñar. Sus explicaciones de conceptos avanzados de JavaScript son amigables para principiantes y los cubre en profundidad. Los meros títulos de los libros te darán una pista sobre lo que vas a aprender. “Up & Going”, “Scope & Closures”, “this & Object Prototypes”, “Tipos y gramática”, “Async & Performance”, “ES6 y más allá”. También hay un nuevo séptimo libro sobre programación funcional en JavaScript.

Una de las mejores cosas de Eloquent JavaScript y YDKJS es que puede obtenerlos de forma gratuita (consulte los enlaces proporcionados). Pero si realmente los encuentra útiles, no olvide apoyar a los autores comprándolos.

Si le gustan más los cursos de video, puede ver los cursos en línea de Kyle. Supongo que lo mejor que puedes hacer es verlos como un compañero de sus libros ya que los temas son los mismos. Sin embargo, estos cursos son de pago.

Otro curso en video que me parece útil es Javascript: Entendiendo las partes raras por Anthony Alicea. Explica lo que sucede bajo el capó de JavaScript de una manera accesible. Cubre conceptos avanzados como herencia prototípica, programación funcional y cadenas de alcance.

Aprenda Vanilla JavaScript, ahora

Si invierte su valioso tiempo en aprender Vanilla JavaScript, no se arrepentirá. No solo contiene la palabra vainilla , sino que tendrá un impacto beneficioso en las habilidades de programación.

Para mí, la mejor compensación es que aprender JavaScript puro te dará mucho más a largo plazo que invertir tiempo en un marco en particular. Los marcos son solo atajos. Debajo del capó es todo JavaScript.

Verá por sí mismo en una situación en la que un marco que está utilizando tiene un comportamiento inesperado. En tal caso, se verá obligado a investigar este error revisando el código fuente. ¿Mencioné que aunque muchos marcos carecen de documentación decente, tienen un código bastante complejo? Pero bueno, pan comido, ¿verdad? Seguramente ya pasaste mucho tiempo aprendiendo Vanilla JavaScript. ¿O no aun?

¿Debería recordar solo una cosa de esta publicación:

Siempre tenga en cuenta que el conocimiento de Vanilla JavaScript lo ayudará a convertirse en un desarrollador mucho mejor. Período.

Si te gustó este artículo, dale unas palmadas. Me sería de gran aprecio.

Esta publicación se publicó originalmente en mi blog.

¿Nos vemos en Twitter?

David Kopal (@coding_lawyer) | Gorjeo

Los últimos Tweets de David Kopal (@coding_lawyer). desarrollador front-end @ataccama | ex abogado | blogger… twitter.com