Curso de Claves para dominar JavaScript (Programa detallado)

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.

Programa 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.

Contenido

  1.  Javascript por todos lados
    1. La explosión de javascript
    2. ¿Por qué este curso?
    3. ¿Qué aprenderás en este curso?
    4. Frameworks javascript
    5. Qué necesitamos para realizar el curso
    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. 

Contenido

  1. Los entornos de ejecución
    1. Entornos de ejecución
    2. Node.js
    3. El navegador web
    4. Ciclo de vida una aplicación javascript
    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.

Contenido

  1. Entendiendo las funciones
    1. Funciones como objetos de primera clase
    2. Definiendo funciones
    3. Argumentos y parámetros
    4. El parámetro implícito "this" y la invocación de funciones
    5. Fijando el contexto de la función con el método "bind()"
    6.  Clausuras
    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.

Contenido

  1. Entendiendo los objetos
    1. Objetos planos de javascript
    2. Descriptores de propiedades
    3. Herencia con prototipos
    4. Controlando el acceso a los objetos (getters y setters)
    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.

Contenido

  1. Características de Ecmascript ES6
    1. ¿Qué es eso del Ecmascript?
    2. ¿Cómo evoluciona javascript?
    3. Template literals
    4. Ámbito de variables en el bloque: let
    5. Variables que no cambian: const
    6. Arrow functions
    7. for … of
    8. Sintaxis corta de objetos
    9. Rest
    10. Spread
    11. Valores por defecto
    12. Destructuring
    13. Clases
    14. Módulos
    15. Maps
    16. Sets
    17. Más características de ES2015/ES6
    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.

Contenido

  1. El lenguaje de programación Typescript
    1. Por qué Typescript
    2. Instalación y uso 
    3. Características básicas de typescript 
    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.

Contenido

  1. Programación asíncrona
    1.  El problema: el bloqueo del hilo principal
    2.  La solución: programación asíncrona dirigida por eventos
    3.  Programación asíncrona con callbacks
    4.  Programación asíncrona con promesas
    5. Qué hemos aprendido