Máster en Programación FullStack con JavaScript y Node.js
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.
Sobre el Curso
- 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
Teoría y Recursos
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 |
Temario
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