JS, Node.js, Frontend, Backend, Firebase, Express, Patrones, HTML5_APIs, Asincronía, Websockets, testing
Aprende con este Máster en Programación FullStack con JavaScript y Node.js todo lo necesario para desarrollar cualquier tipo de proyecto interactivo.
Aprenderás 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 y fundamentos de trabajo con Node.js lo que les permitirá integrarse en entornos de desarrollo modernos y eficientes.
A lo largo del Máster en Programación FullStack con JavaScript y Node.js también aprenderás 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 aprenderás 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.
Como metodología de trabajo durante el curso, desarrollarás como prácticas troncales diversas aplicaciones web que te servirá además de repositorio de todo lo aprendido. El Máster se gestiona íntegramente a través de GitHub, lo que te permitirá desarrollar las practicas en un entorno colaborativo y acorde a tu labor posterior en tu puesto de trabajo.
Durante este Máster en Programación FullStack con JavaScript y Node.js, irás aprendiendo mediante el desarrollo de ejercicios prácticos orientados a proyectos reales. También desarrollarás dos proyectos personales con tutorías individualizadas con tu profesor Ulises Gascón. Además, contribuirás a proyectos Open Source reales y, al final del programa de estudios, crearás un proyecto FullStack personal para afianzar todos lo aprendido.
- Horario: Lunes, Miercoles y Viernes de 16h a 19h
- Fechas: 1/10/18 - 02/07/19
- Observaciones:
- 11-12/10/18 Puente de la Hispanidad
- 01-02/11/18 Puente de Todos los Santos
- 09/11/2018 Fiesta de la Almudena
- 05-07/12/18 Puente de la Constitución
- 24/12/18 - 08/01/19 Navidad
- 15-29/04/19 Semana Santa
- 01-03/05/19 Puente Dia del trabajador + Dia de la Comunidad de Madrid
- 15/05/2019 San Isidro
Fecha | Teoría | Recursos | Contenido |
---|---|---|---|
01/10/18 | Clase 1 | Clase 1 | Intro al Curso |
03/10/18 | Clase 2 | Clase 2 | Git/Github/Gitlab/Bitbucket |
05/10/18 | Clase 3 | Clase 3 | Pseudocodigo y bases de algoritmia + Definición de Proyecto I |
08/10/18 | Clase 4 | Clase 4 | Chrome DevTools |
10/10/18 | Clase 5 | Clase 5 | JSDocs, Comparadores, Tipos de datos, Modo Estricto, etc... |
15/10/18 | Clase 6 | Clase 6 | Condicionales: If...else, Switch y Operador ternario |
17/10/18 | Clase 7 | Clase 7 | Bucles: For, While, Do...while, Break & Continue |
19/10/18 | Clase 8 | Clase 8 | Números, Math y Fechas |
22/10/18 | Clase 9 | Clase 9 | Cadenas y Arrays |
24/10/18 | Clase 10 | Clase 10 | Objetos y Funciones |
26/10/18 | Clase 11 | Clase 11 | Práctica: Maquina Expendedora por consola |
29/10/18 | Clase 12 | Clase 12 | BOM y DOM I |
31/10/18 | Clase 13 | Clase 13 | BOM y DOM II: Manipulación y Frameworks |
05/11/18 | Clase 14 | Clase 14 | Eventos del DOM I |
07/11/18 | Clase 15 | Clase 15 | Práctica: Hacking Twitter |
12/11/18 | Clase 16 | Clase 16 | Ajax I: Ajax Básico |
14/11/18 | Clase 17 | Clase 17 | Ajax II: Ajax Avanzado y Seguridad |
16/11/18 | Clase 18 | Clase 18 | Ajax III: HTTP/2 & Fetch |
19/11/18 | Clase 19 | Clase 19 | Rendimiento, JSDocs, Guías de estilo y SEMVER |
21/11/18 | Clase 20 | Clase 20 | Live Coding: Github |
23/11/18 | Clase 21 | Clase 21 | Live Coding: Buenos días, Madrid! |
26/11/18 | Clase 22 | Clase 22 | Trabajo en el proyecto personal |
28/11/18 | Clase 23 | Clase 23 | Intro a JS Avanzado y definición de proyecto |
30/11/18 | Clase 24 | Clase 24 | Navegadores y conceptos avanzados de JS... |
03/12/18 | Clase 25 | Clase 25 | Entrevistas técnicas para JavaScript Developers |
10/12/18 | Clase 26 | Clase 26 | ECMA6, es7, es8, es9 I: Teoria I |
12/12/18 | Clase 27 | Clase 27 | ECMA6, es7, es8, es9 II: Teoria II |
14/12/18 | Clase 28 | Clase 28 | ECMA6, es7, es8, es9 III: Ejercicios I |
17/12/18 | Clase 29 | Clase 29 | ECMA6, es7, es8, es9 IV: Ejercicios II |
19/12/18 | Clase 30 | Clase 30 | Router Frontend + templates |
21/12/18 | Clase 31 | Clase 31 | Paradigmas: Programación orientada a Objetos |
09/01/18 | Clase 32 | Clase 32 | Patrones en JS I: Antipatrones |
11/01/18 | Clase 33 | Clase 33 | HTML5: Geo y mapas |
14/01/19 | Clase 34 | Clase 34 | Regex I: Teoría |
16/01/19 | Clase 35 | Clase 35 | Regex II: Ejercicios |
21/01/19 | Clase 36 | Clase 36 | HTML5: Programación creativa con Canvas, Gráficos y 3D |
23/01/19 | Clase 37 | Clase 37 | Paradigmas: Programación Funcional |
25/01/19 | Clase 38 | Clase 38 | HTML5: LocalStorage y contentEditor |
28/01/19 | Clase 39 | Clase 39 | Patrones en JS II: Metaprogramación y Patrones |
30/01/19 | Clase 40 | Clase 40 | HTML5: Offline |
01/02/19 | Clase 41 | Clase 41 | HTML5: WebWorkers, Blob y FileSystem |
04/02/19 | Clase 42 | Clase 42 | HTML5: PWA |
06/02/19 | Clase 43 | Clase 43 | Firebase I: Intro + Realtime Database |
11/02/19 | Clase 44 | Clase 44 | Firebase I: Autenticación y Hosting |
13/02/19 | Clase 45 | Clase 45 | Firebase I: Cloud Storage |
15/02/19 | Clase 46 | Clase 46 | Arquitectura en JS: Presentation Patters |
18/02/19 | Clase 47 | Clase 47 | Patrones de JS IV: Algoritmia y Estructuras de datos |
20/02/19 | Clase 48 | Clase 48 | Nodejs: Funcionamiento, ecosistema y ejemplos |
22/02/19 | Clase 49 | Clase 49 | Nodejs: Modularización y Librerías Core |
25/02/19 | Clase 50 | Clase 50 | NPM, NPX, YARN y Bower |
27/02/19 | Clase 51 | Clase 51 | Grunt y Gulp |
01/03/19 | Clase 52 | Clase 52 | Gulp: Ejercicios |
04/03/19 | Clase 53 | Clase 53 | Paradigmas: Programación Reactiva |
06/03/19 | Clase 54 | Clase 54 | NPM Scripts |
08/03/19 | Clase 55 | clase 55 | Shell Scripting: Ejercicios |
11/03/19 | Clase 56 | Clase 56 | Shell Scripting |
13/03/19 | Clase 57 | Clase 57 | JavaScript Modular: AMD, Requirejs y Browserify |
18/03/19 | Clase 58 | Clase 58 | Yeoman I |
20/03/19 | Clase 59 | Clase 59 | Yeoman II |
22/03/19 | Clase 60 | Clase 60 | Frameworks I: Anatomía y funcionalidades |
25/03/19 | Clase 61 | Clase 61 | Frameworks II: Ecosistema, soluciones y contextualización |
27/03/19 | Clase 62 | Clase 62 | WebSockets: Fundamentos` |
29/03/19 | Clase 63 | Clase 63 | Intro al backend + def. PFM |
01/04/19 | Clase 64 | Clase 64 | Frameworks III: Angular con Jon Rojí |
03/04/19 | Clase 65 | Clase 65 | Frameworks IV: React con Javier Vidal |
05/04/19 | Clase 66 | Clase 66 | Frameworks V: Vue con Rubén Valseca |
08/04/19 | Clase 67 | Clase 67 | Express I: Básicos y enrutamiento |
10/04/19 | Clase 68 | Clase 68 | Express II: Server Render y plantillas |
12/04/19 | Clase 69 | Clase 69 | Express III: Middleware y Patrones |
22/04/19 | Clase 70 | Clase 70 | Resolviendo Ejercicios y repasando |
24/04/19 | Clase 71 | Clase 71 | Express IV: Mas allá de Express |
26/04/19 | Clase 72 | Clase 72 | Resolviendo Ejercicios y repasando |
29/04/19 | Clase 73 | Clase 73 | WebSockets Backend y MQTT |
06/05/19 | Clase 74 | Clase 74 | Nodejs: Conceptos Avanzados de Core (Child Process, C/C++ Addons, Cluster...) |
08/05/19 | Clase 75 | Clase 75 | Hablemos de Seguridad Web |
10/05/19 | Clase 76 | Clase 76 | Arquitectura (Monolito, Microservicios, serverless...) |
13/05/19 | Clase 77 | Clase 77 | Firebase II: Google Cloud Functions |
17/05/19 | Clase 78 | Clase 78 | Firebase II: Ejercicios de Cloud Functions |
20/05/19 | Clase 79 | Clase 79 | Firebase II: Cloud Messaging |
27/05/19 | Clase 80 | Clase 80 | Bases de datos: Fundamentos y GoblinDB |
29/05/19 | Clase 81 | Clase 81 | Bases de datos: Relacionales I |
31/05/19 | Clase 82 | Clase 82 | Bases de datos: Relacionales II |
03/06/19 | Clase 83 | Clase 83 | Bases de datos: No-relacionales I |
05/06/19 | Clase 84 | Clase 84 | Bases de datos: No-relacionales II |
07/06/19 | Clase 85 | Clase 85 | Firebase III: Cloud Firestore |
10/06/19 | Clase 86 | Clase 86 | Scraping con Puppeteer |
12/06/19 | Clase 87 | Clase 87 | CLI con Nodejs |
14/06/19 | Clase 88 | Clase 88 | Node funcionando con PM2, Nodemon, etc... |
Bases lógicas de la programación
- Aprende a pensar como un/a programador/a
- Algoritmos simples
- Anatomía de un programa informático
- Pseudocódigo
Fundamentos de JavaScript
- Variables
- Condicionales
- Tipos de dato
- Bucles
- Funciones
- Arrays
- Objetos
Trabajando con control de versiones
- Git
- GitHub, Gitlab y Bitbucket
- Pull Requests
- Gestión de issues y proyectos
- Trabajando con commits
- Trabajando con ramas
- Contribuyendo a repositorios de terceros
Gestión del DOM y Eventos
- Agregar y eliminar elementos
- Modificar atributos y contenido
- Modificación de CSS
- Getters y Setters
- El objeto window
- El objeto document
- El objeto navigator
- Gestión de eventos de usuario
Flujos de trabajo eficientes
- Documentación con JSDoc
- La consola
- Chrome DevTools
- Depuración de código
- Versionado semántico (SEMVER)
- Fundamentos de metodologías ágiles
- Fundamentos de DevOps
Dominando AJAX
- Verbos HTTP (GET, POST, DELETE…)
- Modificación de cabeceras HTTP
- JSON complejos
- JSONP
- XMLHttpRequest y Fetch
- Recurrencia
- Gestión de CORS y Proxies
- Seguridad
- Uso de clientes (Insomnia, Postman…)
- Manejando texto plano, CSV y XML
Trabajando con motores de plantillas (Handelbars, Moustache, EJS…)
HTML5 APIs
- Soporte offline
- Geolocalización y mapas
- Gráficas y visualización de datos
- WebWorkers y Blob API
Progressive Web Apps (PWA)
Filosofías NoBackend/Serverless
Asincronía
- Promesas
- Callbacks
- Async/Await
- Colas de ejecución
Programación orientada a objetos (POO con prototipos)
Fundamentos de la programación funcional
Programación orientada a Eventos
RegExp (expresiones regulares)
Patrones (Singleton, Factory, Prototype, Iterator…)
Profundizando en algoritmia
Metaprogramación
El «nuevo» JavaScript (ECMA&, ES7, ES8, ES9…)
Gestión avanzada de APIs desde cliente
Desarrollando tus propias librerías para Frontend
Gestión de dependencias con AMD, RequireJS y Browserify
Firebase
- Autenticación
- Realtime Database
- Cloud Storage
- Hosting
- Cloud Firestore
- Cloud Functions
- Predictions
- Cloud Messaging
- Dynamic Links
Testing en JavaScript y Node.js
- Unit Testing (Mocha, Chai, Jasmine, Karma)
- E2E (Puppeteer, Selenium)
Fundamentos de los frameworks más importantes de JavaScript
- React
- Angular
- Vue.JS
Dominando Node.js
- Manejando la terminal
- Modularización del código
- Módulos propios de Node.js (fs, http, url, cluster…)
- Extendiendo funcionalidades con módulos de terceros
- NPM, YARN y gestión de dependencias
- Desarrollo de librerías isomórficas
Flujos de trabajo Front-end automatizados con Node.js
- Automatización de tareas con Grunt, Gulp y NPM Scripts
- Creación de proyectos escalables con Yeoman
- Flujos eficientes con Webpack
WebSockets
- El paradigma del tiempo real
- Librerías WebSocket, ws, uWs…
Arquitecturas de sistemas
- los problemas de escalabilidad
- Arquitecturas monolíticas
- Arquitecturas de microservicios
- Serverless/Nobackend
- NGINX y Apache
- Gestión de caché
- Utilización de CDNs
Fundamentos de Cloud
- Software as a Service (SaaS)
- Platform as a Service (PaaS)
- Infraestructure as a Service (IaaS)
Desplegando en Cloud
- Extendiendo funcionalidades con servicios Cloud
- DialogFlow
- Mensajería
- Conociendo y diferenciando los proveedores principales
- IBM Bluemix
- Microsoft Azure
- Amazon Web Services
- Google Cloud
- Heroku
- Digital Ocean
- OVH
- Utilidades (PM2, Nodemon…)
Fundamentos de Docker y Kubernetes
Creación de aplicaciones CLI
- Reusabilidad
- Gestión de la información
- Soporte multiplataforma
Scraping
Bases de datos
- MySQL
- MongoDB
- El teorema CAP
- Fundamentos de los modelos de datos
- Esquemas relacionales (MySQL, Postgres…)
- Clave/Valor (Redis, MemcacheDB…)
- Columnar (Cassandra, BigTable…)
- Documentales ( MongoDB, SimpleDB, CouchDB)
- Grafos (Neo4j…)
Back-end con Node.js
- Protocolos y especificaciones en el Back-end
- Express
- Manejo de rutas
- Middleware
- Arquitectura de APIs
- MVC en Back-end
- Patrones eficientes
- Librerías para extender la funcionalidad de Express
- Motores de plantillas para Back-end
- Desarrollo de tus propias librerías para Back-end
- Fundamentos de Seguridad en Back-end