Al finalizar el curso tendrás un conocimiento profundo de las partes "oscuras" de javascript, es decir, de aquellas partes del lenguaje que son generalmente desconocidas o mal entendidas y que te impiden usar javascript con confianza y rigor. Conforme avances en el curso los secretos del javascript se te irán revelando y, finalmente, contarás con el bagaje necesario para emprender cualquier proyecto con éxito y aprender sin frustraciones y con fluidez cualquiera de los numerosos frameworks que existen para el desarrollo de todo tipo de aplicaciones: webs, móviles, de escritorio, herramientas de sistemas y servidores.
Desarrolladores de software que:
Conocimiento de algún lenguaje de programación moderno, idealmente javascript, y cierta experiencia práctica desarrollando aplicaciones.
Al finalizar la unidad serás consciente de la ubicuidad, flexibilidad y potencia de javascript, un lenguaje conocido especialmente por haber conquistado el mundo del desarrollo web, pero con el que puedes desarrollar cualquier tipo de aplicación; de escritorio, móvil, servidores o herramientas de sistema. También tendrás conocimiento de los frameworks javascript más conocidos para cada tipo de aplicación. Por último sabrás como instalar y usar las tres herramientas que se necesitan para realizar el curso: el editor de textos Microsoft Visual Studio Code, una interfaz de comando y un navegador web.
El objetivo de esta unidad es mostrar los dos entornos de ejecución en los que se pueden ejecutar aplicaciones javascript: El navegador web y el sistema operativo a través de node.js. Al finalizar la unidad sabrás como ejecutar aplicaciones javascript en ambos entornos, habrás instalado node.js en tu computadora, y manejarás con fluidez npm: el gestor de paquetes de node.js.
Las funciones constituyen una de las claves necesarias para comprender javascript a fondo. Al finalizar la unidad entenderás por qué son objetos de primera clase, qué es un callback, las distintas maneras de definir funciones: como declaraciones y como expresiones, la diferencia sutil entre parámetros de una función y argumentos, qué son y cómo se usan los parámetros intrínsecos arguments y this, las distintas maneras de invocar una función y su efecto sobre el parámetro intrínseco this, y los importantes conceptos de scope y closure.
Una de los aspectos más característicos de javascript es que aunque es un lenguaje orientado a objetos no utiliza clases. El modelo que implementa es el de la orientación a objetos con prototipos. Comprender qué significa esto y qué consecuencias tiene en la programación orientada a objetos es el principal objetivo de esta unidad. También aprenderás a utilizar getters, setter y proxies para acceder a los objetos. Por último te presentaremos los distintos tipos de colecciones que ofrece javascript para tratar con conjuntos de datos.
La versión ES6 de Ecmascript, el lenguaje de referencia del que javascript es una implementación, ha introducido importantes características encaminadas a modernizar el lenguaje y paliar algunos defectos. Clases, template literals, declaración de variables en el ámbito del bloque, declaración de valores constantes e incorporación de módulos son algunos de los nuevos conceptos de ES6 que aprenderás a usar en esta unidad.
Typescript es un lenguaje de programación cuyo código se convierte a javascript para ser ejecutado en algún entorno de ejecución. Permitir la anotación de tipos de las variables y exigir una sintaxis más estricta son las principales aportaciones de este lenguaje que muchos frameworks como Angular comienzan a recomendar. En esta unidad aprenderás los mecanismos que utiliza Typescript para la anotación de tipos: tipos básicos, interfaces, clases, uniones de tipos alias de tipos y genéricos. También aprenderás a preparar un proyecto Typescript y a compilar el código para poder ejecutarlo en algún entorno de ejecución.
Una de las claves para dominar javascript es, sin duda, conocer el funcionamiento del bucle de evento, base la programación asíncrona dirigida por eventos que es utilizada intensamente por cualquier aplicación javascript. Seguramente has utilizado funciones asíncronas sin tener mucha idea de su funcionamiento y, probablemente de su existencia.
Cuando termines la unidad habrás construido un modelo mental sobre los mecanismos asíncronos de javascript que te llevará a otro nivel de programación. La programación asíncrona dejará de ser algo mágico y la verás como lo que es: un modelo de computación muy bien diseñado que ofrece, entre otras cosas, la construcción de aplicaciones reactivas que no se cuelgan cuando esperan datos.
También aprenderás la utilidad de los callback y su función en los mecanismos asíncronos conocidos como manejadores de eventos, promesa, observables la declaración de funciones asíncronas async/await.