Para programadores que quieran aprender Javascript

Es el material de un par de cursos de Javascript, es material gratuito y de libre acceso:

Introducción a Javascript (https://github.com/redradix/js-maquetadores) y Javascript avanzado (https://github.com/redradix/material-projs)

Que os aproveche!
Muchas gracias!, me viene de lujo :)
Yo lo pillo también, gracias!
Algunos comentarios:

    En "js-maquetadores-2", no explicas nada sobre el "scope" de las variables. Y en JS hay que tenerlo más claro que el agua, porque después vienen esos maravillosos "memory leaks", o cosas aún peores.

    En "js-maquetadores-2", deberías explicar el concepto de "Truthy" y "Falsy". En JS una evaluación booleana con el operador "==" puede ser realmente laxa, y a veces resulta necesario usar el "===", que permite hacer una evaluación por tipo. (Aunque veo que lo pones en el "js-maquetadores-intermedio", aún así es algo que se debería saber desde el principio)

    En "js-maquetadores-4", haces una muy breve descripción de algunas estructuras de datos típicas de JS:

      Los "arrays" no son listas ordenadas, son vectores. Y estos tienen un tamaño y cada elemento tiene una posición determinada, pero NO ESTÁN ORDENADOS. A pesar de que se comportan como listas enlazadas.

      Los objetos no son diccionarios. SON OBJETOS. A pesar de que la gente los use como HashMap's (cosa conveniente, no lo niego), no lo son.

      Los objectos en JS son prototipados, es decir, los objetos no heredan de una clase per se, sino que heredan de un objeto existente. Otra perlilla interesante de explicar.

    En "js-maquetadores-7", mezclas expresiones regulares, eventos y algunas interacciones con elementos DOM a través de jQuery. Sinceramente, mala mezcla y vas a liar cualquiera que lea eso.

    Otra cosilla más en "js-maquetadores-7", en la diapo 29, no ese método no es de jQuery. Es un método de la clase nativa de Javascript, que jQuery "adorna" añadiéndole más información. Por cierto, dicho método lo que hace en realidad es abortar LA PROPAGACIÓN DEL EVENTO (bubble-up). Se debería explicar que los eventos son apilables y estos se ejecutan secuencialmente. (Uy, ¿cómo podemos evitar que un enlace me lleve a una página y simplemente haga la función que estoy implementando? Ahí ya tenemos dos implementaciones que se van a ejecutar, la nuestra y la nativa provista por el navegador)

    Desde el 5º set de diapositivas hasta el final te pasas hablando sobre jQuery. jQuery no es JS. jQuery es una librería que trabaja sobre JS para dar un soporte harto cómodo sobre manipulación de DOM a bajo nivel.

    No he visto en ninguna de las diapositivas algo sobre clausuras, el mecanismo más potente que tiene JS para permitir una programación modular. Imagino que si explicas el "scoping" de las variables, esto lo tendrás que hacer sí o sí.

Esto es lo que se me ha ocurrido así a bote pronto.

Y spam del día para esa clase "suigeneris" de programador llamada "front-end engineer". Si a alguien le interesa una estructura MVC curiosamente dinámica del Front-End de una aplicación web, recomiendo AngularJS. De entre todas estas arquitecturas (Backbone, Ember, Knockout, Flight), me parece la más integrable (y si tienes que trabajar detrás de un template engine como Thymeleaf, aún más).
Nunca está de más, si cojo tiempo libre lo miraré.

Gracias.
4 respuestas