Enfoque

Objetivo
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.
Dirigido a:
Desarrolladores de software que:
desean aprender javascript a fondo,
programan habitualmente en javascript pero sienten que no dominan el lenguaje todo lo que quisieran,
quieren aprender algún framework javascript para agilizar el desarrollo y mejorar la calidad de sus aplicaciones
Requisitos:
Conocimiento de algún lenguaje de programación moderno, idealmente javascript, y cierta experiencia práctica desarrollando aplicaciones.
Temario del curso
1 - Javascript por todos lados
Objetivo
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.
Duración de la unidad
4 Horas 05 Minutos
Contenido
1. Javascript por todos lados
1.1. La explosión de javascript
1.2. ¿Por qué este curso?
1.3. ¿Qué aprenderás en este curso?
1.4. Frameworks javascript
1.5. Qué necesitamos para realizar el curso
1.5.1. Un editor de texto
1.5.1.1. Entornos de desarrollo integrados (IDE)
1.5.1.2. Microsoft Visual Studio Code
1.5.2. Una interfaz de comandos
1.5.3. Las herramientas de desarrollo del navegador web
1.6. Qué hemos aprendido
2 - Entornos de ejecución de javascript
Objetivo
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.
Duración de la unidad
6 Horas 20 Minutos
Contenido
2. Los entornos de ejecución
2.1. Entornos de ejecución
2.1.1. ¿Qué se entiende por entorno de ejecución?
2.1.2. Los entornos de ejecución de javascript
2.2. Node.js
2.2.1. Instalación de node.js
2.2.2. Ejecución de una aplicación con node.js
2.2.3. La API de node.js
2.2.4. Uso y gestión de librerías externas: npm
2.3. El navegador web
2.3.1. Ejecución de una aplicación en el navegador web
2.4. Ciclo de vida una aplicación javascript
2.4.1. Fase de construcción
2.4.2. Fase de manejo de eventos
2.4.3. Los timers
2.5. Qué hemos aprendido
3 - Entendiendo las funciones
Objetivo
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.
Duración de la unidad
3 Horas 35 Minutos
Contenido
3. Entendiendo las funciones
3.1. Funciones como objetos de primera clase
3.2. Definiendo funciones
3.3. Argumentos y parámetros
3.4. El parámetro implícito "this" y la invocación de funciones
3.5. Fijando el contexto de la función con el método "bind()"
3.6. Clausuras
3.7. Qué hemos aprendido
4 - Entendiendo los objetos
Objetivo
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.
Duración de la unidad
3 Horas 10 Minutos
Contenido
4. Entendiendo los objetos
4.1. Objetos planos de javascript
4.2. Descriptores de propiedades
4.3. Herencia con prototipos
4.4. Controlando el acceso a los objetos (getters y setters)
4.5. Qué hemos aprendido
5 - Características de la versión ES6 (javascript 2015)
Objetivo
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.
Duración de la unidad
3 Horas 10 Minutos
Contenido
5. Características de Ecmascript ES6
5.1. ¿Qué es eso del Ecmascript?
5.2. ¿Cómo evoluciona javascript?
5.3. Template literals
5.4. Ámbito de variables en el bloque: let
5.5. Variables que no cambian: const
5.6. Arrow functions
5.7. for … of
5.8. Sintaxis corta de objetos
5.9. Rest
5.10. Spread
5.11. Valores por defecto
5.12. Destructuring
5.13. Clases
5.14. Módulos
5.15. Maps
5.16. Sets
5.17. Más características de ES2015/ES6
5.18. Qué hemos aprendido
6 - Typescript
Objetivo
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.
Duración de la unidad
1 Hora 20 Minutos
Contenido
6. El lenguaje de programación Typescript
6.1. Por qué Typescript
6.2. Instalación y uso
6.3. Características básicas de typescript
6.3.1. Tipos
6.3.2. Interfaces
6.3.3. Constructores breves
6.3.4. Unión de tipos
6.3.5. Alias de tipos
6.3.6. Genéricos
6.4. Qué hemos aprendido
7 - Programación asíncrona
Objetivo
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.
Duración de la unidad
3 Horas 20 Minutos
Contenido
7. Programación asíncrona
7.1. El problema: el bloqueo del hilo principal
7.2.La solución: programación asíncrona dirigida por eventos
7.3. Programación asíncrona con callbacks
7.4. Programación asíncrona con promesas
7.5.Qué hemos aprendido