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
- 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)
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 |
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