Skip to content

Latest commit

 

History

History
331 lines (283 loc) · 17.3 KB

File metadata and controls

331 lines (283 loc) · 17.3 KB

WideImg

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.

Sobre el Curso

  • 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

Teoría y Recursos

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
13/05/20 Clase 70 Clase 70 Express: Resolviendo Ejercicios y repasando
15/05/20 Clase 71 Clase 71 WebSockets Backend y MQTT
18/05/20 Clase 72 Clase 72 Nodejs: Conceptos Avanzados de Core (Child Process, C/C++ Addons, Cluster...)
20/05/20 Clase 73 Clase 73 Hablemos de Seguridad Web
22/05/20 Clase 74 Clase 74 Arquitectura (Monolito, Microservicios, serverless...)
25/05/20 Clase 75 Clase 75 Firebase II: Google Cloud Functions
27/05/20 Clase 76 Clase 76 Firebase II: Ejercicios de Cloud Functions
29/05/20 Clase 77 Clase 77 Firebase II: Cloud Messaging
01/06/20 Clase 78 Clase 78 Bases de datos: Fundamentos y GoblinDB
03/06/20 Clase 79 Clase 79 Bases de datos: Relacionales I
05/06/20 Clase 80 Clase 80 Bases de datos: Relacionales II
08/06/20 Clase 81 Clase 81 Bases de datos: No-relacionales I
10/06/20 Clase 82 Clase 82 Bases de datos: No-relacionales II
12/06/20 Clase 83 Clase 83 Firebase III: Cloud Firestore
15/06/20 Clase 84 Clase 84 Scraping con Puppeteer
17/06/20 Clase 85 Clase 85 CLI con Nodejs
19/06/20 Clase 86 Clase 86 Testing: Fundamentos
22/06/20 Clase 87 Clase 87 Testing: Unit Testing
24/06/20 Clase 88 Clase 88 Testing: E2E Testing & Específicos
26/06/20 Clase 89 Clase 89 Frameworks I: Introducción a Vue.js
27/06/20 Clase 90 Clase 90 Taller refactor Airemad I
29/06/20 Clase 91 Clase 91 Node funcionando con PM2, Nodemon, etc...
01/07/20 Clase 92 Clase 92 Frameworks II: Introducción a React
03/07/20 Clase 93 Clase 93 DevOps: CI y CD
04/07/20 Clase 94 Clase 94 Taller refactor Airemad II
06/07/20 Clase 95 Clase 95 Frameworks III: Introducción a Angular
08/07/20 Clase 96 Clase 96 Deploy en Cloud
10/07/20 Clase 97 Clase 97 Virtualización con Docker y Kubernetes
13/07/20 Clase 98 Clase 98 Entrevistas

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