Skip to content

Latest commit

 

History

History
355 lines (327 loc) · 19.6 KB

File metadata and controls

355 lines (327 loc) · 19.6 KB

shieldsIO shieldsIO shieldsIO

WideImg

Master en Programación de Aplicaciones con JavaScript y Node.js

JS, Node.js, Frontend, Express, Patrones, IoT, HTML5_APIs, Asincronía, Websockets, ECMA6, ECMA7

Aprende con este Máster en Programación de aplicaciones con JavaScript y Node.js todo lo necesario para desarrollar cualquier tipo de proyecto interactivo utilizando el lenguaje de programación más utilizado en el mundo del desarrollo interactivo.

Los alumnos del Máster aprenderán todos sobre fundamentos y lógica de la programación, la manipulación dinámica del DOM y el desarrollo de aplicaciones interactivas usando AJAX. Tambien conocerán en profundidad el uso de patrones de diseño, control de versiones, testing, fundamentos de trabajo Node.js... y serán capaces de integrarse en entornos de desarrollo modernos y eficientes.

A lo largo del Máster en Programación de aplicaciones con JavaScript y Node.js también aprenderán todo lo necesario para crear aplicaciones que requieran de una base de datos ágil y en tiempo real con Firebase y la integración de servicios de terceros utilizando APIs, algo cada día más necesario actualmente.

También, los asistentes al máster aprenderán a trabajar con APIs modernas para compartir datos con otros de una manera eficiente (AJAX server-side), el uso de la terminal, la asincronía y las peculiaridades propias de Node.js y el desarrollo de aplicaciones Back-End.

Y hay más. A lo largo de este Máster los alumnos aprenderán también a utilizar JavaScript más allá del entorno web. Descubrirán cómo se aplican estos mismos conocimientos a áreas tan distintas como la robótica, IoT (Internet of Things) utilizando librerías con Johnny-Five, desarrollarán Apps híbridas con Phonegap y aplicaciones de escritorio con Electron, la automatización de tareas propias del flujo de trabajo de un desarrollador Frontend o el desarrollo de generadores de proyectos con Yeoman... entre otras muchas cosas más.

Como metodología de trabajo durante el curso, los alumnos desarrollarán como prácticas troncales diversas aplicaciones web que servirán además de repositorio de todo lo aprendido. El curso se gestiona íntegramente a través de GitHub, lo que permitirá a los alumnos desarrollar las practicas en un entorno colaborativo.

Después de realizar este Máster en Desarrollo profesional con JavaScript y Node.js...

  • Programarás aplicaciones web complejas a medida, eficientes y sin necesidad de librerías ni frameworks
  • Desarrollarás proyectos más allá del entorno web con Node.js, creando Apps híbridas y aplicaciones de escritorio
  • Desarrollarás aplicaciones web en tiempo real con WebSockets
  • Desarrollarás fluidamente proyectos complejos que requieran AJAX
  • Integrarás fácilmente APIs externas en tus proyectos
  • Trabajarás con los diversos estilos de programación posibles de JavaScript
  • Aplicarás sin problemas las últimas funcionalidades de HTML5 en tus proyectos
  • Trabajarás fluidamente con Firebase
  • Podrás programar eficientemente integrando patrones de diseño
  • Tendrás la capacidad de integrarte en proyectos Full-Stack donde se requiera el uso de frameworks de testing
  • Automatizarás procesos de trabajo completos con Node.js
  • Conocerás los procesos de backend con Node.js
  • Dominarás el arte del «scraping» de contenidos de internet para enriquecer tus proyectos
  • Trabajarás eficientemente con Git/GitHub

Sobre el Curso

  • Horario: Lunes a Viernes de 17h a 19h
  • Fechas: 25/10/2017 - 26/06/2018
  • Observaciones:
    • Eventos
    • Viajes
    • Festivos
  • Dias no lectivos:
    • 01/11/2017
    • 09/11/2017
    • 10/11/2017
    • 06/12/2017
    • 07/12/2017
    • 08/12/2017
    • Navidad (25/12/2017 - 07/01/2018)
    • Semana Santa (26/03/2018 - 30/03/2018)
    • 30/04/2018
    • 01/05/2018
    • 02/05/2018
    • 08/05/2018 Google IO Extended
    • 15/05/2018
    • Open Expo 2018 (06/06/2018 - 07/06/2018)

Teoría y Recursos

Fecha Teoría Recursos Contenido
25/10/2017 Clase 1 Clase 1 Bienvenida
26/10/2017 Clase 2 Clase 2 Github
27/10/2017 Clase 3 Clase 3 Práctica de Github y Ginger Code
30/10/2017 Clase 4 Clase 4 Ejercicios con Ginger Code
31/10/2017 Clase 5 Clase 5 Ejercicios con Ginger Code
02/11/2017 Clase 6 Clase 6 Consola, variables, matemáticas, interacción con el usuario...
03/11/2017 Clase 7 Clase 7 Modo Estrcito y comparadores
06/11/2017 Clase 8 Clase 8 Condicionales
07/11/2017 Clase 9 Clase 9 Bucles
08/11/2017 Clase 10 Clase 10 Números, Math y Dates
13/11/2017 Clase 11 Clase 11 Strings
14/11/2017 Clase 12 Clase 12 Arrays
15/11/2017 Clase 13 Clase 13 Ejercicios de Arrays
16/11/2017 Clase 14 Clase 14 Objetos Literales
17/11/2017 Clase 15 Clase 15 Funciones
20/11/2017 Clase 16 Clase 16 BOM y DOM
21/11/2017 Clase 17 Clase 17 Vivir sin JQuery
22/11/2017 Clase 18 Clase 18 Eventos
23/11/2017 Clase 19 Clase 19 Introducción a AJAX
24/11/2017 Clase 20 Clase 20 Fuentes de información
27/11/2017 Clase 21 Clase 21 Práctica: NYTimes I
28/11/2017 Clase 22 Clase 22 Práctica: NYTimes II
04/12/2017 Clase 23 Clase 23 Soluciones y dudas
05/12/2017 Clase 24 Clase 24 Hagamos un proyecto express (Github
11/12/2017 Clase 25 Clase 25 Práctica: Buenos días, Madrid!
12/12/2017 Clase 26 Clase 26 Rendimiento, JSDocs, Guías de estilo y SEMVER
13/12/2017 Clase 27 Clase 27 Introducción al testing unitario
14/12/2017 Clase 28 Clase 28 Soluciones y dudas
15/12/2017 Clase 29 Clase 29 Proyecto Colectivo: Generador de Gifs
18/12/2017 Clase 30 Clase 30 Entrega de proyecto personal
19/12/2017 Clase 31 Clase 31 Empezamos JavaScript Avanzado
20/12/2017 Clase 32 Clase 32 POO
21/12/2017 Clase 33 Clase 33 ¡Invitado sorpresa!
22/12/2017 Clase 34 Clase 34 Tiempo de proyectos
08/01/2018 Clase 35 Clase 35 Entrega de proyecto personal
09/01/2018 Clase 36 Clase 36 LocalStorage & ContentEditable
10/01/2018 Clase 37 Clase 37 LocalStorage en la práctica
11/01/2018 Clase 38 Clase 38 WebSockets
12/01/2018 Clase 39 Clase 39 #OpenSourceFriday
15/01/2018 Clase 40 Clase 40 Soluciones y dudas
16/01/2018 Clase 41 Clase 41 Geolocalizacion
17/01/2018 Clase 42 Clase 42 Firebase I
18/01/2018 Clase 43 Clase 43 Practicas de Firebase
19/01/2018 Clase 44 Clase 44 #OpenSourceFriday
22/01/2018 Clase 45 Clase 45 Patrones I
23/01/2018 Clase 46 Clase 46 Patrones II
24/01/2018 Clase 47 Clase 47 Repaso Patrones
25/01/2018 Clase 48 Clase 48 Repaso Firebase
29/01/2018 Clase 49 Clase 49 Patrones III y Algoritmia
30/01/2018 Clase 50 Clase 50 Tiempo Proyecto Personal y ejercicios
31/01/2018 Clase 51 Clase 51 Patrones y Arquitecturas alternativas I
01/02/2018 Clase 52 Clase 52 Expresiones Regulares
02/02/2018 Clase 53 Clase 53 #OpenSourceFriday
05/02/2018 Clase 54 Clase 54 Tiempo Proyecto Personal
06/02/2018 Clase 55 Clase 55 Tiempo Proyecto Personal
07/02/2018 Clase 56 Clase 56 Tiempo Proyecto Personal
08/02/2018 Clase 57 Clase 57 Tiempo Proyecto Personal
09/02/2018 Clase 59 Clase 59 #OpenSourceFriday
12/02/2018 Clase 60 Clase 60 Soluciones y dudas
13/02/2018 Clase 61 Clase 61 ES6 (ES2015)
14/02/2018 Clase 62 Clase 62 ES6 (ES2015)
15/02/2018 Clase 63 Clase 63 Tiempo Proyecto Personal
16/02/2018 Clase 64 Clase 64 #OpenSourceFriday
19/02/2018 Clase 65 Clase 65 Nodejs I: Funcionamiento y ecosistema
20/02/2018 Clase 66 Clase 66 Nodejs II: Core
21/02/2018 Clase 67 Clase 67 NPM y YARN
22/02/2018 Clase 68 Clase 68 Tiempo Proyecto Personal
23/02/2018 Clase 69 Clase 69 #OpenSourceFriday
26/02/2018 Clase 70 Clase 70 Entrega de proyectos
27/02/2018 Clase 71 Clase 71 Entrega de proyectos
28/02/2018 Clase 72 Clase 72 Entrega de proyectos
05/03/2018 Clase 73 Clase 73 Soluciones y dudas
06/03/2018 Clase 74 Clase 74 Entrega de proyectos
07/03/2018 Clase 75 Clase 75 Express I
09/03/2018 Clase 76 Clase 76 #OpenSourceFriday
12/03/2018 Clase 77 Clase 77 Express II y Pug (Jade)
13/03/2018 Clase 78 Clase 78 Prácticas de Express I
14/03/2018 Clase 79 Clase 79 Firebase II
15/03/2018 Clase 80 Clase 80 Prácticas: Memezinga PinHead version
16/03/2018 Clase 81 Clase 80 #OpenSourceFriday e Invitados sorpresa: Lilxelo y Bifuer, creadores de Pillarsjs
19/03/2018 Clase 82 Clase 82 Prácticas: Memezinga PinHead version
20/03/2018 Clase 83 Clase 83 Prácticas: Memezinga PinHead version
21/03/2018 Clase 84 Clase 84 Prácticas: Memezinga PinHead version
22/03/2018 Clase 85 Clase 85 Prácticas: Memezinga PinHead version
23/03/2018 Clase 86 Clase 86 #OpenSourceFriday
02/04/2018 Clase 87 Clase 87 Socket.IO
03/04/2018 Clase 88 Clase 88 Bower
04/04/2018 Clase 89 Clase 89 Gulp, Grunt, NPM Scripts...
05/04/2018 Clase 90 Clase 90 Dudas y preguntas
06/04/2018 Clase 91 Clase 91 #OpenSourceFriday
09/04/2018 Clase 92 Clase 92 Prácticas: Memezinga PinHead version
10/04/2018 Clase 93 Clase 93 Browsefy y Webpack
11/04/2018 Clase 94 Clase 94 Yeoman
12/04/2018 Clase 95 Clase 95 Prácticas: Batimagen
13/04/2018 Clase 96 Clase 96 #OpenSourceFriday
16/04/2018 Clase 97 Clase 97 Deploy en Cloud, PM2, Nodemon...
17/04/2018 Clase 98 Clase 98 Offline, PWAs y Blob
18/04/2018 Clase 99 Clase 99 Fetch, Drag & Drop, Canvas, indexedDB y HTML5 Router
23/04/2018 Clase 100 Clase 100 ECMAScript Next (ES7, ES8, etc...)
24/04/2018 Clase 101 Clase 101 Intro a Frameworks de Frontend
25/04/2018 Clase 102 Clase 102 Angularjs I
26/04/2018 Clase 103 Clase 103 Angularjs II
27/04/2018 Clase 104 Clase 104 React y su Ecosistema con xDae
03/05/2018 Clase 105 Clase 105 Angularjs III
04/05/2018 Clase 106 Clase 106 Angularjs IV
07/05/2018 Clase 107 Clase 107 Empezamos NodeJS Avanzado
09/05/2018 Clase 108 Clase 108 Exec: Python I
10/05/2018 Clase 109 Clase 109 Exec: Python II
11/05/2018 Clase 110 Clase 110 Scraping I
14/05/2018 Clase 111 Clase 111 Exec: Python III
16/05/2018 Clase 112 Clase 112 Ejercicios de Python
21/05/2018 Clase 113 Clase 113 Phonegap, Cordova y apps híbridas
22/05/2018 Clase 114 Clase 114 Práctica cordova y app híbirida
23/05/2018 Clase 115 Clase 115 Práctica cordova y app híbirida
24/05/2018 Clase 116 Clase 116 Práctica cordova y app híbirida
25/05/2018 Clase 117 Clase 117 Práctica cordova y app híbirida
28/05/2018 Clase 118 Clase 118 Bases de datos no relacionales: MongoDB
29/05/2018 Clase 119 Clase 118 Bases de datos no relacionales: MongoDB
30/05/2018 Clase 120 Clase 120 Bases de datos: MySQL I
31/05/2018 Clase 121 Clase 121 Profesor Invitado: Jose Dongil (VUE)
01/06/2018 Clase 122 Clase 122 Trabajo en proyectos personales
04/06/2018 Clase 123 Clase 123 Bases de datos: MySQL II
05/06/2018 Clase 124 Clase 124 Ejercicios: MySQL
08/06/2018 Clase 125 Clase 125 #OpenSourceFriday
11/06/2018 Clase 126 Clase 126 Ejercicios: MySQL
12/06/2018 Clase 127 Clase 127 Internet of Things (IoT) y Robótica I
13/06/2018 Clase 128 Clase 128 Internet of Things (IoT) y Robótica II
14/06/2018 Clase 129 Clase 129 Internet of Things (IoT) y Robótica III
15/06/2018 Clase 130 Clase 130 #OpenSourceFriday
18/06/2018 Clase 131 Clase 131 Prácticas: MyBlog
19/06/2018 Clase 132 Clase 132 Prácticas: MyBlog
20/06/2018 Clase 133 Clase 133 Prácticas: MyBlog
21/06/2018 Clase 134 Clase 134 Prácticas: MyBlog
22/06/2018 Clase 135 Clase 135 #OpenSourceFriday
25/06/2018 Clase 136 Clase 136 Pillarsjs I
26/06/2018 Clase 137 Clase 137 Ejercicios con Pillarsjs II
27/06/2018 Clase 138 Clase 138 Aplicaciones CLI
28/06/2018 Clase 139 Clase 139 Ejercicios con Vorpal
29/06/2018 Clase 140 Clase 140 Ejercicios con Vorpal
02/07/2018 Clase 141 Clase 141 Electron: Aplicaciones de escritorio
03/07/2018 Clase 142 Clase 142 Tiempo Proyecto Personal
04/07/2018 Clase 143 Clase 143 Tiempo Proyecto Personal
05/07/2018 Clase 144 Clase 144 Tiempo Proyecto Personal
06/07/2018 Clase 145 Clase 145 Tiempo Proyecto Personal
09/07/2018 Clase 146 Clase 146 Tiempo Proyecto Personal
10/07/2018 Clase 147 Clase 147 Exec: Bash Scripting

Temario

JavaScript Básico

  • Control de versiones con Git y GitHub
  • Pseudocódigo
  • Lógica y abstracción aplicada a la programación
  • Fundamentos de JavaScript
  • Arrays
  • Objetos
  • Estructuras de control y flujo
  • Funciones
  • Operadores
  • Gestión dinámica del DOM con JavaScript
  • Modificación de CSS con JavaScript
  • Gestión de Eventos
  • AJAX y JSON
  • Flujos de trabajo eficientes

JavaScript Avanzado

  • Trabajando con motores de plantillas (Handelbars, Moustache, EJS…)
  • Asincronía
    • Promesas
    • Callbacks
  • Programación Orientada a Objetos (POO con prototipos)
  • Programación funcional
  • Programación Orientada a Eventos
  • HTML5 APIs
  • Aplicando filosofías NoBackend/Serverless
  • Firebase
    • Bases de datos en tiempo real - Hosting
    • Login Social
  • Ajax Avanzado
    • Verbos HTTP más utilizados
    • Modificación de cabeceras HTTP
    • JSON complejos
    • JSONP
    • Fetch
    • Recurrencia
    • Gestión de CORS
  • WebSockets
  • RegExp (Expresiones Regulares)
  • Programación avanzada
    • Patrones
    • Fundamentos de algoritmia
    • Metaprogramación
  • Testing
  • ECMA6
  • ECMA7
  • Buenas Prácticas y desarrollo ágil
  • Gestión avanzada de APIs desde cliente
  • Desarrollo de tus propias librerías para Front-End
  • Seguridad en el Front-End
  • Conociendo y diferenciando los frameworks más importantes de Javascript
    • React
    • Angularjs y ng2
    • Vue.js
    • Polymer

Dominando Node.js

  • Manejando la terminal
  • Modularización del código
  • Bash scripting
  • Módulos propios de Node.js
  • Extendiendo las funcionalidades con módulos de terceros
  • NPM, YARN y gestión de dependencias
  • Desarrollo de librerías isomórficas

Back-End con Node.js

  • Protocolos y especificaciones en el Back-End
  • Desarrollo en la nube con c9.io
  • Desplegando en cloud
    • Heroku
    • Google Cloud
    • Amazon Web Services
  • Express
    • Manejo de Rutas
    • Middelware
    • Arquitectura de APIs
    • MVC en Back-End
    • Patrones eficientes
    • Librerías para extender la funcionalidad de Express
  • Motores de plantillas para el Back-End
  • Desarrollo de tus propias librerías para Back-End
  • Fundamentos de seguridad en Back-End

Flujos de trabajo automatizados con Node.js

  • Automatización de tareas
    • Gulp
    • NPM Scripts
  • Yeoman

Internet of Things (IoT) y Robótica

  • Trabajando con comunicación serial (USB, Bluetooth)
  • Arduino y su ecosistema
  • Sensores (potenciómetros, lumínicos, sonoros, proximidad…)
  • Actuadores (motores, leds, servos…)
  • Trabajando desde Node.js con librerías como Johnny-Five, Cyclon.js…
  • Otras formas de trabajar con la electrónica

Integración de clientes y plataformas de mensajería

  • Slack
  • Hangouts
  • Telegram

Trabajando con otros lenguajes de programación desde Node.js

  • Integración de Python
  • Integración de Ruby
  • Integración de GoLang

Creación de aplicaciones CLI

  • Reusabilidad
  • Gestión de la información
  • Soporte multiplataforma

Scraping

  • Librerías propias de Node.js como «X-Ray», «Cheerio», etc...
  • Integración de librerías de otros lenguajes como «Beautiful Soup» de Python

Back-End to Back-End

  • Arquitectura de aplicaciones
  • Transferencia de datos
  • Gestión de protocolos
  • Gestión de autentificación

Gestión de tareas periódicas

  • Trabajando con fechas CRON
  • Scheduled

Nuevas arquitecturas y paradigmas de desarrollo

  • Pillars.js
  • GoblinDB
  • Otros

Creación de aplicaciones HTML5 de escritorio

  • Electron
  • Photon

Creación de Apps híbridas

  • Adobe PhoneGap
  • Apache Cordova