¿Cuáles son las áreas más importantes que un buen ingeniero de JavaScript debe saber / ser capaz de hacer?

Llevo más de 3 años trabajando con JavaScript y, por lo que puedo decir, hay algunos temas que debes entender primero antes de sumergirte en Frameworks o Tools.

Primero comprende el idioma:

– ¿Qué es el prototipo? – Object.prototype, ¿Cómo funciona JavaScript .prototype? …
– Alcance global frente a local: si está escribiendo JS simple, es muy importante comprender las trampas sobre el uso de esto.
– Tipos de datos y su API
– Bucle de eventos: modelo de simultaneidad y bucle de eventos, ¿qué diablos es el bucle de eventos de todos modos? – Philip Roberts, The JavaScript Event Loop: Explicado
– Todos los diferentes tipos de patrones de módulos – Solo lea Aprender patrones de diseño de JavaScript en mi humilde opinión: mucha gente no conoce todos los diferentes patrones

También recomendaría a cualquiera que lea el libro de Eric Elliots “Learning Javascript” -> Programación de aplicaciones JavaScript y Douglas Crockfords JavaScript: Las partes buenas: Douglas Crockford: 9780596517748: Amazon.com: Libros

Creo que después de eso eres consciente del idioma. Hay un problema simple:
– ES6 ya es su y muchos patrones, se han actualizado los tipos de datos y también debe familiarizarse un poco con ES6 -> Explorando ES6: Actualice a la próxima versión de JavaScript

Después de eso, creo que los marcos más “promocionados” actualmente son:
1. Reactjs
2. Angularjs
3. Polímero (componentes web en general)
3. Ember
4. Backbone (+ marioneta)

jQuery es más un contenedor para algunas tareas, pero si usa un marco de aplicación web, recomendaría deshacerse de él.

Ese es el lado del cliente, más o menos. Si desea ser un desarrollador frontend “excelente”, le recomendaría que examine temas como TDD (Jasmine, Karma, Mocha …), Workflows (Gulp, Grunt, npm) y Build-Tools (Webpack, Browserify).

En el lado del servidor, obviamente hay nodejs, pero creo que solo deberías entrar si realmente quieres hacer algo más que “frontend”.

Depende de cuál sea el entorno en el que va a utilizar JavaScript.

Los elementos comunes son los tipos de referencia, los ámbitos, el bucle de eventos, los temporizadores, los prototipos, los objetos integrados (Object, Array, String, RegExp, Date).

En el navegador, primero es HTML y DOM. Haciendo el trabajo real, es probable que use una de las tecnologías y herramientas modernas para lidiar con el DOM sin manipulación directa (por ejemplo, React, jQuery, Angular, Ember Handlebars, Famous, etc.), pero comprender cómo funcionan el DOM y los eventos DOM ayudará de muchas maneras. A continuación, puede aprender a usar Canvas, WebGL, SVG para hacer una representación de interfaz de usuario alternativa, si es necesario. El resto depende de lo que intentes hacer.

En el servidor y las herramientas, se trata de las API centrales de Node.js (Stream, Path and File System, HTTP (S), Process, etc.) y los módulos de uso frecuente (Express.js, Webpack, Gulp y muchos más dependiendo de lo que sea tratando de lograrlo, vea npm para la lista).

También puede usar JavaScript en entornos híbridos como Node-Webkit, Cordova / PhoneGap / Ionic o Meteor. En estos, tendrá que aprender cosas específicas del lado del navegador y de Node.js.

Suponiendo que tiene una comprensión competente del lenguaje, lo más importante en JavaScript es saber cómo acceder y manipular el Modelo de Objetos del Documento (DOM).

El DOM es la estructura subyacente y direccionable de una página web. El uso principal de JavaScript es en aplicaciones basadas en web. Por lo tanto, usar JavaScript para dar vida a las páginas web es el área más importante de JavaScript. Incluso si usa un paquete de extensión como jQuery, aún debe conocer el DOM para que funcione.