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 tus profesores Alejandro Reyes y 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: 2/10/19 - 29/06/20
- Observaciones:
- 12/10/19 Puente de la Hispanidad
- 01/11/19 Puente de Todos los Santos
- 06/12/19 Puente de la Constitución
- 09/12/19 Traslado de la Inmaculada Concepción
- 23/12/19 - 07/01/19 Navidad
- 4-12/04/20 Semana Santa
- 01-03/05/20 Puente Dia del trabajador + Dia de la Comunidad de Madrid
- 15/05/2020 San Isidro
Fecha | Teoría | Recursos | Contenido |
---|---|---|---|
02/10/19 | Clase 1 | Clase 1 | Intro al Curso |
04/10/19 | Clase 2 | Clase 2 | Git/Github/Gitlab/Bitbucket |
07/10/19 | Clase 3 | Clase 3 | Pseudocodigo y bases de algoritmia + Definición de Proyecto I |
09/10/19 | Clase 4 | Clase 4 | Chrome DevTools |
11/10/19 | Clase 5 | Clase 5 | JSDocs, Comparadores, Tipos de datos, Modo Estricto, etc... |
14/10/19 | Clase 6 | Clase 6 | Condicionales: If...else, Switch y Operador ternario |
16/10/19 | Clase 7 | Clase 7 | Bucles: For, While, Do...while, Break & Continue |
18/10/19 | Clase 8 | Clase 8 | Números, Math y Fechas |
21/10/19 | Clase 9 | Clase 9 | Cadenas y Arrays |
23/10/19 | Clase 10 | Clase 10 | Objetos y funciones |
25/10/19 | Clase 11 | Clase 11 | Práctica: Maquina Expendedora por consola |
28/10/19 | Clase 12 | Clase 12 | BOM y DOM I |
30/10/19 | Clase 13 | Clase 13 | BOM y DOM II: Manipulación y Frameworks |
04/11/19 | Clase 14 | Clase 14 | Eventos del DOM I |
06/11/19 | Clase 15 | Clase 15 | Práctica: Hacking Twitter |
08/11/19 | Clase 16 | Clase 16 | Ajax I: Ajax Básico |
13/11/19 | Clase 17 | Clase 17 | Ajax II: Ajax Avanzado y Seguridad |
13/11/19 | Clase 18 | Clase 18 | Ajax III: HTTP/2 & Fetch |
29/11/19 | Clase 19 | Clase 19 | Tiempo para proyecto personal |
2/12/19 | Clase 20 | Clase 20 | Rendimiento, JSDocs, Guías de estilo y SEMVER |
4/12/19 | Clase 21 | Clase 21 | Live Coding: Github |
11/12/19 | Clase 22 | Clase 22 | Live Coding: Buenos días, Madrid! |
13/12/19 | Clase 23 | Clase 23 | Intro a JS Avanzado y definición de proyecto |
16/12/19 | Clase 24 | Clase 24 | Navegadores y conceptos avanzados de JS... |
18/12/19 | Clase 25 | Clase 25 | Entrevistas técnicas para JavaScript Developers |
20/12/19 | Clase 26 | Clase 26 | ECMA6, es7, es8, es9 I: Teoria I |
08/01/20 | Clase 27 | Clase 27 | ECMA6, es7, es8, es9 II: Teoria II |
13/01/20 | Clase 28 | Clase 28 | ECMA6, es7, es8, es9 III: Ejercicios I |
17/01/20 | Clase 29 | Clase 29 | ECMA6, es7, es8, es9 III: Ejercicios II |
18/01/20 | Clase 30 | Clase 30 | Router Frontend + templates |
20/01/20 | Clase 31 | Clase 31 | Paradigmas: Programación orientada a Objetos |
22/01/20 | Clase 32 | Clase 32 | Patrones en JS I: Antipatrones |
24/01/20 | Clase 33 | Clase 33 | HTML5: Geo y mapas |
27/01/20 | Clase 34 | Clase 34 | Regex I: Teoría |
29/01/20 | Clase 35 | Clase 35 | Regex II: Ejercicios |
31/01/20 | Clase 36 | Clase 36 | HTML5: Programación creativa con Canvas, Gráficos y 3D |
01/02/20 | Clase 37 | Clase 37 | Paradigmas: Programación Funcional |
03/02/20 | Clase 38 | Clase 38 | HTML5: LocalStorage y contentEditor |
05/02/20 | Clase 39 | Clase 39 | Patrones en JS II: Metaprogramación y Patrones |
07/02/20 | Clase 40 | Clase 40 | HTML5: Offline |
08/02/20 | Clase 41 | Clase 41 | HTML5: WebWorkers, Blob y FileSystem |
10/02/20 | Clase 42 | Clase 42 | HTML5: PWA |
12/02/20 | Clase 43 | Clase 43 | Firebase I: Intro + Realtime Database |
14/02/20 | Clase 44 | Clase 44 | Firebase I: Autenticación y Hosting |
17/02/20 | Clase 45 | Clase 45 | Firebase I: Cloud Storage |
19/02/20 | Clase 46 | Clase 46 | Arquitectura en JS: Presentation Patters |
21/02/20 | Clase 47 | Clase 47 | Patrones de JS IV: Algoritmia y Estructuras de datos |
24/02/20 | Clase 48 | Clase 48 | Nodejs: Funcionamiento, ecosistema y ejemplos |
26/02/20 | Clase 49 | Clase 49 | Nodejs: Modularización y Librerías Core |
28/02/20 | Clase 50 | Clase 50 | NPM, NPX, YARN y Bower |
01/03/20 | Clase 51 | Clase 51 | Grunt y Gulp |
30/03/20 | Clase 52 | Clase 52 | Gulp: Ejercicios |
01/04/20 | Clase 53 | Clase 53 | Paradigmas: Programación Reactiva |
03/04/20 | Clase 54 | Clase 54 | NPM Scripts |
06/04/20 | Clase 55 | Clase 55 | Shell Scripting |
08/04/20 | Clase 56 | Clase 56 | Shell Scripting: Ejercicios |
10/04/20 | Clase 57 | Clase 57 | Tiempo para proyecto personal + dudas |
13/04/20 | Clase 58 | Clase 58 | JavaScript Modular: AMD, Requirejs y Browserify |
15/04/20 | Clase 59 | Clase 59 | Yeoman I |
17/04/20 | Clase 60 | Clase 60 | Yeoman II |
20/04/20 | Clase 61 | Clase 61 | Frameworks I: Anatomía y funcionalidades |
22/04/20 | Clase 62 | Clase 62 | Frameworks II: Ecosistema, soluciones y contextualización |
24/04/20 | Clase 63 | Clase 63 | WebSockets: Fundamentos |
27/04/20 | Clase 64 | Clase 64 | Intro al backend + def. PFM |
29/04/20 | Clase 65 | Clase 65 | Express I: Básicos y enrutamiento |
01/05/20 | Clase 66 | Clase 66 | Express II: Server Render y plantillas |
06/05/20 | Clase 67 | Clase 67 | Express III: Middleware y Patrones |
08/05/20 | Clase 68 | Clase 68 | Express: Resolviendo Ejercicios y repasando |
11/05/20 | Clase 69 | Clase 69 | Express IV: Mas allá de Express |
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