Si te estas planteando aprender JavaScript, ¿Por dónde tienes que empezar?

Pueden existir varias razones:

1. Porque quieres cambiar de sector, dedicarte a otras cosas, pero estas viendo que hay una demanda de muchos profesionales y una de las cosas que más piden en las ofertas de empleo es q piden JS.
2. Porque llevo haciendo cosas en la web pero no me siento cómodo a la hora de hacer cosas en JS porque me encuentro muchos problemas.
3. Porque me apetece aprender un lenguaje de programación, no he programado nunca y como veo que se habla mucho de JS quisiera aprender.

Si quieres aprender JS es porque tienes un contexto de hacer cosas en la web.

WWW = HTML5 + JavaScript + CSS

Toda web se basa en 3 tecnologías:

HTML5: Le da estructura al contenido que se quiere poner en la web.

JAVASCRIPT: Seria la parte de interacción y reacción y que hace un poco de pegamento entre HTML5 y la tercera parte que es CSS.

CSS: Está más orientada a la capa de presentación, cosas como: ya que tengo el contenido, ¿Dónde lo sitúo?, ¿Dónde lo coloco? , ¿Cómo lo estilo?, entre muchas cosas más.

Ser FRONTEND en la actualidad.

Si es el caso de que quieres cambiar de profesión y quieres ser parte de la profesión de FRONTEND, aqui tienes un breve resumen de lo que es al día de hoy ser FRONTEND:

1) Framerwork ¿sí o no?

Muchas veces cada vez que se busca algo de JavaScript se ven cosas como Angular, React, View, etc.

Ahora, ¿Tengo que aprender un Framework?. Si estas empezando de 0 no se recomienda, ¿Por qué debes aprender un framework JavaScript?. Un Framework básicamente es una capa de abstracción sobre un lenguaje, es decir, en vez de realizarlo directo con el lenguaje, hay gente que ya ha hecho cierto código para facilitarte el trabajo, ya que está pensado para resolver unos casos de uso.

¿Cuál es el problema al día de hoy con los Frameworks JavaScript?

Depende de qué tipo de problemas tienes que resolver, un Framework puede adaptarse o no a tu problema.

Otro de los inconvenientes es que empiezan a ser muy generalistas, quieren cubrir un escenario muy amplio de problemas y como consecuencia de eso de alguna manera te condicionan el resto de la parte web, que no solo es la parte del cliente sino también la parte del BACK , de como fluye toda la información.

Si estas comenzando en JS es un error que se haga a partir de un Framework, porque ya estarías empezando una capa por encima y al final lo que sí es importante es que cualquier capa que tengas por encima al final acaba en lo que va a procesar un navegador.

Si no entiendes como funciona un navegador entonces el problema que tendrás es que cuanto más te aleje el Framework del mismo, menos control obtendrás sobre lo que quieres hacer, ya que empiezan a cubrir mucho y te distancian cada vez más de lo que es el JavaScript que se va a ejecutar, esto podría implicar que no vayas a poder hacer todo lo que quieras si el Framework no te lo permite.

OJO

NO hay que decir no lo utilizare, pero debes tener en cuenta que cuando eliges un Framework tienes que conocerlo muy bien para saber si resuelve exactamente tu escenario y si te sientes cómodo.

También mucho de los Frameworks surgen porque hay gente que ha programado, o bien en backend o bien en otros sitios, y tienen conocimientos en otros lenguajes de programación y los Frameworks van muy influenciados por los desarrolladores que lo hacen, es decir, por los conceptos que tienen y como entienden.

Esto es un problema con JavaScript que en muchas ocasiones es un lenguaje de programación que está mal entendido, en el sentido en que la gente espera que se comporta de una manera y realmente no investigan el porque funciona así.

Es muy importante saber que JS tiene un estándar y eso es un garantía de que todo lo que vaya a incluirse en el lenguaje se formalice, de tal manera que todos los navegadores tengan que cumplir con ese estándar.

Eso en otros lenguajes de programación no ocurre, no todo lenguaje de programación esta estandarizado, pueden existir grupos de los propios creadores de los lenguajes y las compañías que estén por detrás que pueden hacer unas guías, prácticas, etc., pero no están tan formalizados como para hacer un estándar.

Además una de las peculiaridades que tiene el estándar de JavaScript es que intenta ser compatible hacia atrás, es decir, que nada de lo que incorpore en futuras versiones del lenguaje puede romper lo que ya había en versiones anteriores, y eso da cierta seguridad a la hora de poder mantener todo lo que se había hecho antes sin que se rompa.

2)Fatiga de JS.

Se llega a un punto en que hay tantas librerías, tantos Frameworks y tanto desarrollo, que muchas veces cuando se quiere empezar se preguntan: ¿Por dónde empiezo? si ya piden que tengo que saber un montón de cosas. NO HAY PRISA por aprender, es importante que primero se entienda lo que va a interpretar un navegador, que es HTML5, CSS y JS, y una vez que se entienda eso bien, se puede ir poco a poco adquiriendo más conocimiento sobre las distintas áreas.

3) Maquetador/Diseñador/Porgramador

También existe una polémica cuando se habla de FRONTEND porque muchas veces se habla de maquetador/diseñador/programador, y siempre está la eterna disputa de que si un maquetador no tiene por qué saber JS o un programador no tiene nada que saber de CSS, si al final si quieres ser bueno en tu área (Frontend) deberías al menos saber el funcionamiento de un navegador y saber conocimientos más o menos básicos de las 3 cosas, porque cuando trabajes en un equipo con más gente, y aunque este más especializado cada una de las personas del equipo, la comunicación entre todos va a ser mucho mejor porque tienes un solapamiento de conocimientos y cuando vayan a pedir cosas vas a poder entender más rápido lo que supone o lo que no y ahorraras tiempo.

4) Ofertas de empleo.

Van a existir muchas ofertas de empleo que buscan programadores de JS, pero uno de los problemas es que la gente que redacta esas ofertas no es la gente con las que vas a trabajar, entonces muchas veces piden miles de cosas: JS, CSS, Frameworks, Frameworks de CSS, etc. NO te eches para atrás para aplicar a una oferta por ese tipo de cosas. Si tienes una buena base en principio luego aprender un Framework y aprender cómo funciona específicamente una herramienta toma muy poco tiempo, pero el problema puede venir al contrario, que hayas empezado por un FrameWork y cuando realmente tengas problemas que resolver que dependan de JS te va a costar mucho más, porque no tienes la base de lo que al final es lo que se va a ejecutar en el navegador.


LISTA DE COSAS QUE DEBERÍAS SABER DE JAVASCRIPT:

  1. ¿Cómo funciona un Navegador?.

  2. Event Loop y Asincronía.

  3. Tipos de Datos (Primitivas vd Objetos).

  4. Coercion.

  5. Scope Chain.

  6. Prototype Chain.

  7. Contextos de Ejecución.

  8. Funciones.

  9. DOM Y APIs.

  10. Recursos (CPU/Memoria).

Si te sientes cómodo y capaz de hacer cualquier cosa con JS podrás explicar cada una de los puntos de esta lista, ordenada por prioridad, sin ningún tipo de problema a otra persona que no lo sepa. Si lo logras entonces ya sabes JavaScript.

Si detectas que en alguno de estos puntos a la hora de explicarlo surgen dudas, puedes aprovechar el curso online de Javascript profesional. El curso está centrado precisamente en establecer una base sólida de JS, ponerlo en su contexto, es decir, en el contexto del navegador y entender cómo funciona un navegador, ya que al final este debe lidiar no solo con JS, sino también con CSS, con el marcado y con los recursos del dispositivo donde se está viendo esa web. Recuerda que no todos los dispositivos tienen los mismos recursos, ni el mismo cpu, ni la misma memoria, ni la misma cantidad de energía que pueda dar al dispositivo el ser más potente en un aspecto web.

Anímate a aprender JavaScript de forma profesional

Si empiezas de cero no tendrás prejuicio en cuanto otro lenguaje de programación, de su funcionamiento y lo vas a poder entender mucho más rápido. Pero si llevas cierto tiempo haciendo web y NO te sientes confiado al tener que hacer cosas en JS, sino que simplemente buscas Stack Overflow y vas copiando y pegando, puede ser un buen momento para aprender las bases de JS y a partir de ahí te sientas más cómodo a la hora de programar en este lenguaje. 

Artículo desarrollado a partir del vídeo por Ana Gabriela Durán