JS Deep Dive

Programar en JavaScript te hace ver cool, conocer las particularidades del lenguaje es aún mejor. Este curso no es una introducción a JavaScript, sino una profundización en el lenguaje. Verás temas que probablemente ya conozcas pero desde una perspectiva de performance y buenas prácticas conociendo ciertas peculiaridades de JavaScript que lo hace distinto a los demás lenguajes de programación.

Main tags: types, operators, functions, objects, scope, closure, execution-context, linter.

Secondary Tags: primitive-vs-reference, bitwise-operators, function-statement, function-expression, callbacks, hoisting, iife, apply, call, bind, this.

Público objetivo

Este curso asume que ya te has familiarizado con la programación en JavaScript y quieres llevar tu conocimiento sobre el lenguage a otro nivel, entendiendo sutilezas del lenguage e implicaciones de performance.

Requerimientos previos

Experiencia básica usando JavaScript para manipular el DOM y familiaridad con git y GitHub.

Aprenderás

  • Qué es JavaScript/ECMAScript
  • Implicaciones de performance y uso de memoria
  • Buenas prácticas en el uso de JavaScript
  • Manejo de errores
  • A escribir código siguiendo una guía de estilos
  • A construir un UI Library
  • A trabajar sobre una base de código existente
  • A trabajar haciendo pair programming
  • A sacarle el jugo a git y GitHub usando issues, milestones, branches, forks y pull requests

Detalles logísticos

  • Self-paced: 7 hrs
  • Presencial: 11 hrs
  • Total horas: 18

Producto

El producto en el que trabajaras es una pequeña librería para desarrollo de interfaces (UI Library), teniendo en cuenta el performance y consumo de memoria, además de buscar que pueda ser reusable para cualquier proyecto y mantenible a lo largo del tiempo. Este producto tendrá una aplicación visual en la creación de una réplica de Pinterest.

Participar en el proyecto involucra lo siguiente:

  • Tener una cuenta en GitHub
  • Hacer un fork del repositorio
  • Mapear y dividir el trabajo con tu equipo
  • Implementar las funcionalidades listadas en el repo del proyecto
  • Enviar pull requests
  • Hacer code review y merges
  • Presentar el trabajo final con una demo ante jurado

Syllabus

Lección 01: Presentación del curso

15min (presencial)

Antes de empezar con la teoría o la práctica, en esta "pre-lección" se hará una presentación sobre el curso en sí, los objetivos de aprendizaje, el proyecto, la metodología de aprendizaje, requisitos previos y metodología de evaluación.

Lección 02: Entorno y metodología de trabajo

45min (presencial)

Durante esta sesión nos aseguraremos que todas tienen git y node instalado, acceso al repo, su propio fork, ...

Lesson plan

Orden Tipo Duración Descripción
1 workshop 30min Entorno: Git + GitHub
2 workshop 15min Entorno: Node.js + npm

Lección 03: ECMAScript 6

45min (presencial)

JavaScript es el lenguaje de programación, pero la especificación (estándar) del lenguaje es ECMAScript, en esta lección veremos algunas nuevas características de JS a nivel de sintaxis para comenzar a utilizarlo a lo largo del curso.

Orden Tipo Duración Descripción
1 lectura 3min ECMAScript 2015
2 lectura 5min Block Scoped Declarations
3 lectura 5min Template Strings
4 workshop 10min Ejercicios
5 lectura 5min Destructuring
6 lectura 7min Arrow Functions
7 workshop 10min Ejercicios

Lección 04: Fundamentos de JavaScript

1hr (self-paced)

Si bien los fundamentos de JavaScript se vieron desde el primer curso de Laboratoria, ahora profundizaremos en entender todo lo que sucede por detrás, de esta manera veremos un poco de compiladores y profundización en los temas como tipos de datos, operadores, objetos preconstruidos, etc.

Orden Tipo Duración Descripción
1 lectura 20min Fundamentos
2 lectura 15min Variables, Tipos de Datos y Operadores
3 lectura 15min Control de Flujo
4 lectura 10min Objetos Preconstruidos
5 workshop 20min Ejercicios

Lección 05: Funciones

1hr (presencial)

Veremos a profundidad el tema de funciones, aprovechando que JavaScript tiene una orientación por la programación funcional desde su diseño, características importantes como asignar funciones a una variable, pasar como parámetro de otra función, cambiar el scope de variables, asignar como valor de una propiedad de un objeto, etc.

Orden Tipo Duración Descripción
1 lectura 15min Intro
2 lectura 15min Funciones
3 lectura 15min Scope
4 workshop 15min Ejercicios

Lección 06: Estructura de Datos

40min (presencial)

En ES5, las estructuras de datos por defecto eran Objetos y Arreglos, los cuales profundizaremos en esta lección, sin embargo, en ES6 se agregan ciertas estructura de datos que veremos como sacar provecho de ellas.

Orden Tipo Duración Descripción
1 lectura 20min Estructura de Datos
2 lectura 20min Objetos
3 workshop 20min Ejercicios
4 lectura 15min Arreglos
5 workshop 20min Ejercicios

Lección 07: Manejo de Excepciones

30min (self-paced)

El manejo de errores es importante dentro de todo desarrollo de software, y mas aun cuando se piensa en construir un producto que se espera sea reusable y mantenible. En esta lección veremos cómo manejar errores en las diversas partes de nuestro código.

Orden Tipo Duración Descripción
1 lectura 10min Modo Estricto
2 lectura 10min try...catch

Lección 08: Document Objet Model (DOM)

Cuando el navegador obtiene el HTML de una página, construye un modelo de la estructura del documento y lo usa para dibujar la página en la pantalla. Esta representación del documento es accedido a través de JavaScript y hace posible agregar interactividad a nuestros sitios web, aun así, es necesario tener en cuenta el performance del navegador.

Orden Tipo Duración Descripción
1 lectura 10min Recorrido del DOM
2 lectura 10min Manipulación del DOM
3 lectura 10min Redibujo del navegador
4 workshop 10min Ejercicios

Lección 09: Manejo de Eventos

Manipular el HTML a través del DOM es genial, sin embargo, en el desarrollo de aplicaciones web, estas alteraciones se realizan luego de cierta interacción por parte del usuario a través de eventos. En esta lección nos enfocaremos en entender aspectos importantes del comportamiento de eventos y como manejarlos.

Orden Tipo Duración Descripción
1 lectura 10min Manejador de Eventos
2 lectura 10min Bubbling vs. Capturing
3 lectura 10min this vs. event.target
4 workshop 10min Ejercicios

Lección 10: jQuery

jQuery es una librería enfocada a hacer la manipulación del DOM más sencilla entre otras funcionalidades, en esta lección no veremos la sintaxis de las propiedades y métodos que esta librería nos brinda, sino, veremos aspectos importantes para mejorar el performance en el uso de esta librería además de consideraciones para el encapsulamiento de código a través de la creación de plugins.

Orden Tipo Duración Descripción
1 lectura 10min Selectores
2 lectura 10min Manejo del DOM
3 lectura 10min CSS
4 lectura 10min Creación de Plugin
5 workshop 10min Ejercicios

Autor(es) / Colaboradores

  • Belén Recabal
  • Iván Medina

Libros

results matching ""

    No results matching ""