CursosEmpresasBlogLiveConfPrecios

Funciones asíncronas

Clase 15 de 26 • Curso de Asincronismo con JavaScript

Clase anteriorSiguiente clase

Contenido del curso

Introducción
  • 1
    Lo que aprenderás en este curso

    Lo que aprenderás en este curso

    01:34
  • 2
    Qué es el asincronismo

    Qué es el asincronismo

    09:25
  • 3
    Event Loop

    Event Loop

    11:13
  • 4
    Iniciando a programar con JavaScript

    Iniciando a programar con JavaScript

    02:59
Callbacks
  • 5
    Configuración

    Configuración

    10:23
  • 6
    Qué son los Callbacks

    Qué son los Callbacks

    14:56
  • 7

    Playground: Ejecuta un callback con 2s de demora

    00:00
  • 8
    XMLHTTPRequest

    XMLHTTPRequest

    15:03
  • 9
    Fetch data

    Fetch data

    17:44
  • 10
    Callback hell

    Callback hell

    06:56
Promesas
  • 11
    Qué son las promesas

    Qué son las promesas

    11:54
  • 12

    Playground: Crea una función de delay que soporte asincronismo

    00:00
  • 13
    Fetch

    Fetch

    16:12
  • 14
    Fetch POST

    Fetch POST

    14:55
Async Await
  • 15
    Funciones asíncronas

    Funciones asíncronas

    10:07
  • 16
    Try and catch

    Try and catch

    11:51
  • 17

    Playground: Captura el error de una petición

    00:00
  • 18
    ¿Cómo enfrentar los errores?

    ¿Cómo enfrentar los errores?

    03:42
Generadores
  • 19
    Generators

    Generators

    08:06
Proyecto CV
  • 20
    Proyecto del curso

    Proyecto del curso

    11:48
  • 21
    Consumiendo API

    Consumiendo API

    19:24
  • 22
    Desplegando el proyecto

    Desplegando el proyecto

    16:45
  • 23

    Playground: Crea una utilidad para hacer peticiones

    00:00
Nunca pares de crear
  • 24
    Conclusión

    Conclusión

    03:09
  • 25
    ¿Qué camino tomar para seguir aprendiendo?

    ¿Qué camino tomar para seguir aprendiendo?

    04:12
  • 26

    Autoevaluación de Proyecto: Creación de Landing Page

    00:44
    Maria Gabriela Rodriguez Cuevas

    Maria Gabriela Rodriguez Cuevas

    student•
    hace 3 años

    🎢 𝗖𝗹𝗮𝘀𝗲 #𝟭𝟯: 𝗙𝘂𝗻𝗰𝗶𝗼𝗻𝗲𝘀 𝗮𝘀í𝗻𝗰𝗿𝗼𝗻𝗮𝘀 𝟭𝟯/𝟮𝟭 🎢 . 🔁 ++¿Qué es una función asíncrona?++ . La declaración de función ++async++ define una función asíncrona que devuelve un objeto, lo cual permite a un programa correr una función sin congelar todo la compilación. Dada que la finalidad de las funciones async/await es simplificar el comportamiento del uso síncrono de promesas, se hace más fácil escribir promesas. . 🔏 La estructura se compone por las palabras reservadas async y await: .

    1. La palabra async antes de la función, hace que la función devuelva una promesa.
    2. La palabra await se utiliza dentro de las funciones async, lo que hace que el programa espere hasta que la variable(promesa) se resuelva para continuar. .

    ✏️ ++Ejemplo con código:++ .

    • Ir a VSC, crear dentro de la carpeta src una carpeta llamada ++async++.
    • En la ruta src/async crear el archivo ++index.js++

    Dentro del archivo index.js, se crea la promesa y luego se valida si la promesa se resolverá, también se hace el llamado de la misma y luego se busca mostrar como se desenvuelve con await. En el ejemplo se usa el if ternario. .

    🚥 ++¿Qué es un operador if ternario?++ . El operador ternario consta de 3 partes: condición ? expresión1 : expresión2;

    1. La primera es la lógica, se evalúa una condición.
    2. La segunda parte está después del signo de cierre de interrogación ?, ésta se ejecuta solo si la condición es verdadera true.
    3. La tercera parte está después del símbolo de dos puntos :, ésta se ejecuta solo si la condición resulta falsa false.

    Fuente: aquí Ejemplo:

    var a = 5; var b = 3; var c = a > b ? "Es mayor" : "Es menor"; //Si la condición después del símbolo igual (=) se cumple, entonces se tendrá el valor: “Es mayor”, de lo contrario tomará el valor: “Es menor”.

    El código en src/async/index.js queda así:

    const fnAsync = () =>{ return new Promise((resolve, reject) =>{ (true) //se usó operador ternario y se está forzando con true que se cumpla la condición ? setTimeout(() => resolve('Async!!', 2000)) : reject(new Error('Error!')); //arroja "error" en caso de que la condición sea false }); } const anotherFn = async () => { //la palabra async es para el cuerpo de la función //la palabra await estará dentro de la lógica a implementar const something = await fnAsync(); //aquí nos está regresando una promesa console.log(something); //se imprime mientras se espera console.log('Hello!'); } console.log('Before'); //al ser la primera orden con solo console.log, 'Before' se imprime primero anotherFn();//es el segundo en llamar, pero aún así no se imprimen los console de su lógica y tarda 2 s en ser ejecutada console.log('After'); //aparece justo después de 'Before' porque anotherFn() está esperando una promesa y aún así el programa no se detiene, sino que sigue y así tenemos 'After' de segundo al imprimir /*La salida al correr con Run Code queda: Before After Async!! Hello! */
      David Horacio Duarte Angulo

      David Horacio Duarte Angulo

      student•
      hace 3 años

      Gracias por tus apuntes, son geniales! Un pequeño error en el setTimeout, el paréntesis de cierre está mal ubicado

      setTimeout(() => resolve('Async!!'), 2000)
      Mateo Arias Correa

      Mateo Arias Correa

      student•
      hace 3 años

      No sabes todo lo que me has ayudado a este curso

    German Cavani

    German Cavani

    student•
    hace 3 años
      Cristobal Nyram

      Cristobal Nyram

      student•
      hace 3 años

      Resumen de la imagen: como hacer código asíncrono en JS

      -callbacks -promises -Asyns

      Antonio Rafael González Ferrer

      Antonio Rafael González Ferrer

      student•
      hace 3 años

      Pyramid of Doom! suena hardcore 😆

    Fabian Bejarano González

    Fabian Bejarano González

    student•
    hace 3 años

    Creo que para quienes tal vez les cueste un poco entender, pueden intentar agregar un console antes de el llamado a await fnAsync para que sea un poco más visual el proceso interno de la función que está usando Async.

    const fnAsync = () => { return new Promise((resolve, reject) => { (true) ? setTimeout(() => resolve('Async resolved!'), 2000) : reject(new Error('Error!')); }); } const anotherFn = async () => { console.log('Ya la llamamos, ahora llamaremos fnAsync y esperaremos a que se resuelva') const something = await fnAsync(); console.log(something); console.log('Listo, ya se resolvió el proceso asincrono'); } console.log('Antes de llamar anotherFn'); anotherFn(); console.log('Holaaa, me llamaron y no tengo que esperar a que termine el proceso asincrono');

    El output sería:

    Antes de llamar anotherFn Ya la llamamos, ahora llamaremos fnAsync y esperaremos a que se resuelva Holaaa, me llamaron y no tengo que esperar a que termine el proceso asincrono Async resolved! Listo, ya se resolvió
      Deniss Bonilla Paredes

      Deniss Bonilla Paredes

      student•
      hace 3 años

      Muy bueno tu ejemplo para entender qué es lo que realmente está sucediendo

      Lisbeth Quintero

      Lisbeth Quintero

      student•
      hace 3 años

      Muchas gracias

    Edgar López Laynez

    Edgar López Laynez

    student•
    hace 3 años

    El profesor explica muy mal, no le entendi a lo que decia pero si entendi el codigo porque vi videos de YOUTUBE. Se extrañan los cursos de Diego De Granda

      Jessica García

      Jessica García

      student•
      hace 3 años

      Pensé que era la única que pensaba así :c

    Andrea Carolina Mora López

    Andrea Carolina Mora López

    student•
    hace 3 años

    Quiero compartir mi exploración

    result.png
    async.png

    Juan Ramirez

    Juan Ramirez

    student•
    hace 3 años

    📍 Async / Await:

    Permite crear funciones asíncronas sin bloqueo de una manera similar a una función sincrónica ordinaria

    ⭐ Async, la usamos siempre al inicio de la función, y lo que hace es definir que esa función será asincrona

    ⭐ Await, la usamos básicamente para indicar por cuales líneas de código se deben esperar a que terminen de ejecutarse antes de seguir ejecutando la función.

    // Creamos una Promesa const fnAsync = () => { return new Promise((resolve, reject) => { (true) ? setTimeout(()=> resolve('Async!!'), 2000) : reject(new Error('Error!')); }) } // Creamos nuesta Función Asincrona const anotherFn = async () => { const somethig = await fnAsync(); console.log(somethig); console.log('Hello!') } console.log ('Before'); // 1 anotherFn(); // 3 console.log('After') // 2

    Async & Await no bloquean la ejecución de nuestro programa, en el ejemplo, anotherFn requiere 2 segundos para devolver su resultado, pero JS no espera esos 2 segundos, sino que sigue con la ejecución, y una vez anotherFn está lista, pues continua el flujo normal.

    Max Andy Diaz Neyra

    Max Andy Diaz Neyra

    student•
    hace 3 años

    Async/Await:

    • La palabra clave async declara una función como asíncrona e indica que una promesa será automáticamente devuelta, lo cual permite a un programa correr una función sin congelar todo la compilación.
    • Podemos declarar como async tanto funciones con nombre, anónimas, o funciones flecha.
    • La palabra clave await debe ser usado siempre dentro de una función declarada como async y esperará automáticamente (de forma asíncrona y no bloqueante) a que una promesa se resuelva.
    • Las palabras clave async y await surgieron para simplificar el manejo de las promesas.
    • Son puro azúcar para hacer las promesas más amigables, escribir código más sencillo, reducir el anidamiento y mejorar la trazabilidad al depurar.
    • async \ await y las promesas son lo mismo en el fondo.

    Manejo de errores

    • Si una promesa gestionada por await es rechazada o un error se dispara dentro de la función declarada como async, la promesa que automáticamente devuelve la función async también será rechazada.
    • Con try catch se puede manejar los errores.
      Porfirio González López

      Porfirio González López

      student•
      hace 3 años

      Gracias por la aclaración!

      Diego Boyatjian

      Diego Boyatjian

      student•
      hace 3 años

      me sirvio mucho tu aporte! gracias!!

    Carlos Andres Alavez Santiago

    Carlos Andres Alavez Santiago

    student•
    hace 3 años

    Es el maestro que mas me cuesta entender, entiendo y agradezco al diversidad de maestros, lo malo en mi caso es que no soy compatible con la forma de enseñanza de todos y me toca leer e investigar mas, como consejo si alguien se siente así, es recurrir a los libros y la documentación y hacer al menos 10 ejemplos de aplicaciones simples antes de aplciarlos en proyectos personales.

      Tomas Langer Duran

      Tomas Langer Duran

      student•
      hace 3 años

      te entiendo siento que no entendi absolutamente nada de esta clase

      Felipe Duarte De la Espriella

      Felipe Duarte De la Espriella

      student•
      hace 2 años

      100% de acuerdo, el profesor y yo no entendemos la cosas de la misma manera. Y la respuesta de muchos es "busca material en otro lado", pero entonces yo pienso: entonces para qué estoy pagando?

    Laura Daniela Aponte Beltrán

    Laura Daniela Aponte Beltrán

    student•
    hace 3 años

    Hice un resumen con las funciones asíncronas que llevamos hasta ahora, espero te sirva de resumen ✨

    Beige Brown Minimal How To Practice Mindfulness Infographic.png

    Luis Hernando Sendoya Serrato

    Luis Hernando Sendoya Serrato

    student•
    hace 3 años

    me gustan mas las promesas, pero bueno. Hay que aprender esta característica de JavaScript

    Max Andy Diaz Neyra

    Max Andy Diaz Neyra

    student•
    hace 3 años

    Datos generales sobre async await:

    • Este nuevo enfoque de ES para trabajar asincronía.
    • El async/await es sólo syntax sugar de una promesa, por debajo es exactamente lo mismo.
    • Son preferibles sobre las promesas porque hace que nuestro código se comporte síncrono.
    • En lugar de usar then usamos await obtendremos un código más fácil de leer, depurar y mantener.
    • Para convertir de then a async debemos indicar que la función es asíncrona con async. Esto nos va a permitir usar await.
    • Se usa await para esperar que una promesa se resuelva.
    Fernando Andrés García Muñoz

    Fernando Andrés García Muñoz

    student•
    hace 2 años

    Me ha costado entender este curso, pero leyendo los aportes de otros compañeros, investigando y practicando esto es lo que puedo concluir.

    API (Application Programming interface): Es una interfaz que permite la comunicación con recursos de otras aplicaciones construidas o no por nosotros. Existen diferentes tipos y arquitecturas. El tipo de API que estamos viendo en el curso es una API WEB y La arquitectura que estamos utilizando es REST API.

    REST (Representational State Transfer) : Es un estándar para consumir servicios en la web y tiene un formato específico para devolver los datos, es el formato JSON.

    JSON(Javascript Object Notation):Es un formato que tiene estructurada la información de forma clave-valor.

    Para consumir esos recursos se requiere un tipo de comunicación asincrónica, ya que la respuesta que nos envía el servidor tarda un tiempo en llegar.

    En el curso hemos visto diferentes maneras de acceder a la FAKE API de Platzi, desde la más “engorrosa” hasta la más simple:

    1. Utilizando directamente el objeto XMLHttpRequest, que es el encargado de realizar las peticiones asincrónicas.
    2. Utilizando del objeto Promise, que es una manera más simple de realizar las peticiones asíncronas.
    3. Implementando Fetch. Es una manera más cómoda de realizar las peticiones con promesas.
    4. Sync – await. Es también una manera de realizar las peticiones con promesas, pero con un código más entendible.

    Si estoy equivocado en algo, por fa me envían el comentario 😉

    Jherom Chacon

    Jherom Chacon

    student•
    hace 3 años

    Diferencias en la secuencia cuando se usan funciones asíncronas y cuando no se usan:

    Captura de Pantalla 2022-08-08 a la(s) 19.40.24.png

    Stephany Plaza

    Stephany Plaza

    student•
    hace 3 años

    Lo que hace await es esperar a que se resuelva la promesa, mientras permite continuar ejecutando otras tareas que puedan realizarse. Por eso en este caso, aunque el console.log de before y after se ejecutaron, el "hello" no se pudo ejecutar sino hasta despues de la respuesta por parte de la promesa something

    Waldir Leonardo Jesus Lopez Peve

    Waldir Leonardo Jesus Lopez Peve

    student•
    hace 3 años

    Espero que este tipo de ejemplo les sirva a entender mejor la logica del async await:

    const ingredientes = true; const cocinar = () => { return new Promise((resolve, reject) => { (ingredientes) ? setTimeout(() => resolve('Se termino de preparar el pedido'), 2000) : reject(new Error('No se pudo prepara el pedido por que no se tiene los ingredientes')); }); }; const prepararPedido = async () => { const pedido = await cocinar(); console.log(pedido); console.log('Entrega tu pedido'); }; console.log('recibir tu pedido'); prepararPedido(); console.log('Entregando pedido al cliente anterior ')
    Joao Ivan Garduño Salgado

    Joao Ivan Garduño Salgado

    student•
    hace 3 años

    Recordar también... ¿Como utilizar Async en diferentes estructuras?

    async function funcionObjeto(parameter){}

    Otra forma:

    const otherFunction = async(parameter) => {}
      Federico Ivan Llano

      Federico Ivan Llano

      student•
      hace 3 años

      me gusta mas el primer metodo, y ahora en la version es13 no es necesario escribir el async. await en ES13 YT

    Duvan Alexis Palomino Ramirez

    Duvan Alexis Palomino Ramirez

    student•
    hace 3 años

    Comunidad porque en el ejemplo de la clase si cambio la condicion a false me genera error en new Error y no genera la promesa?

    Ramsés Castañeda

    Ramsés Castañeda

    student•
    hace 3 años

    ¿Cuántos "Await" se pueden colocar dentro de una función asíncrona, solamente dos o los que necesite?

      Kevin J. Zea Alvarado

      Kevin J. Zea Alvarado

      student•
      hace 3 años

      Hola, Ramsés. 👋 En mi experiencia, pueden ser tantos como se necesiten. Quizás haya un límite, pero muy probablemente es un número grande.

      Sunjing Lama

      Sunjing Lama

      student•
      hace 3 años

      No hay limite.

      Pero si algunas de estos procesos asincronos son independientes, es decir await # 2 no depende del resultado de await #1 entonces podrias revisar este ejemplo en la documentacion de MDN

      la diferencia en el tiempo de ejecucion para add1 y add2 esta determinada por donde colocamos el await

    Luis Alfredo Suarez

    Luis Alfredo Suarez

    student•
    hace 2 años

    15/26 Curso de Asincronismo: Funciones asíncronas

    En JavaScript, las funciones asíncronas son una característica que te permite escribir código que se ejecuta de manera asíncrona, lo que significa que no bloquea la ejecución del programa principal. Esto es especialmente útil cuando se trabaja con operaciones que pueden llevar tiempo, como solicitudes de red, lecturas/escrituras de archivos o cualquier tarea que pueda ser bloqueante.
    Para declarar una función asíncrona, simplemente agrega la palabra clave async antes de la palabra clave function al definir la función. Aquí tienes un ejemplo de una función asíncrona:

    async function miFuncionAsincrona() { // Código asíncrono aquí }


    Dentro de una función asíncrona, puedes utilizar la palabra clave await para esperar la finalización de una promesa. Las promesas son objetos que representan valores que pueden estar disponibles ahora, en el futuro o nunca. Al usar await dentro de una función asíncrona, la ejecución de la función se pausará hasta que la promesa se resuelva o se rechace.
    Aquí hay un ejemplo que muestra cómo usar await dentro de una función asíncrona para esperar la resolución de una promesa:

    async function obtenerDatos() { try { const respuesta = await fetch('https://api.ejemplo.com/datos'); const datos = await respuesta.json(); console.log(datos); } catch (error) { console.error('Ocurrió un error:', error); } } obtenerDatos();


    En este ejemplo, fetch es una función que devuelve una promesa para realizar una solicitud HTTP. Usamos await para esperar a que la solicitud se complete y luego usamos await nuevamente para esperar a que se resuelva la promesa que devuelve response.json().
    Es importante tener en cuenta que solo puedes usar await dentro de una función declarada como async. Además, las funciones asíncronas siempre devuelven una promesa, por lo que puedes usar .then() y .catch() para manejar el resultado o el error cuando se llama a una función asíncrona.
    En resumen, las funciones asíncronas y await son una forma poderosa de trabajar con código asíncrono en JavaScript, lo que hace que sea más fácil manejar operaciones que requieren tiempo, como llamadas a la red o lecturas/escrituras de archivos, de manera más legible y mantenible.


    Veamos el ejemplo de la clase paso a paso:

    const fnAsync = () => { return new Promise((resolve, reject) => { true ? setTimeout(() => resolve("Async!!"), 2000) : reject(new Error("Error!")); }); }; const anotherFn = async () => { const something = await fnAsync(); console.log(something); console.log("Hello!"); }; console.log("Before"); anotherFn(); console.log("After");
    1. Tienes una función llamada fnAsync que devuelve una promesa. Dentro de esta función, hay un temporizador (setTimeout) que resuelve la promesa después de 2000 milisegundos (2 segundos) con la cadena "¡Async!" si la condición true se cumple o la rechaza con un error si la condición es false.

    2. Luego, tienes otra función llamada anotherFn que es una función asíncrona. Dentro de esta función, se espera a que la promesa devuelta por fnAsync se resuelva. Cuando la promesa se resuelve, el valor resultante se almacena en la variable something. Luego, se imprime something en la consola y se muestra "¡Hello!" en la consola.

    3. Fuera de las funciones, tienes tres líneas de código que imprimen "Before", "After" y llaman a anotherFn. Notarás que "Before" se imprimirá antes de que anotherFn se ejecute, y "After" se imprimirá antes de que anotherFn complete su ejecución. Esto se debe a la naturaleza asíncrona de las promesas y las funciones asíncronas en JavaScript.


    En resumen, el orden de salida en la consola será:

    Before After Async!! Hello!


    Esto se debe a que "Before" y "After" se imprimen de inmediato, mientras que "Async!!" se imprime después de que la promesa en fnAsync se resuelve (2 segundos después) y "Hello!" se imprime después de eso, ya que es parte de la función anotherFn que se llama después.

    Imgur

    Espero sea de utilidad. 👨‍💻

    Antonio Ramón Molina Simancas

    Antonio Ramón Molina Simancas

    student•
    hace 2 años

    Con todo respeto, el profe me recuerda a Cantinflas, no puede colar tantas palabras incoherentes en la explicación! Confunde muchísimo!!!

      Cristian Damaso Calderon Rojas

      Cristian Damaso Calderon Rojas

      student•
      hace un año

      Estamos peor, pero estamos mejor. Porque antes estábamos bien, pero era mentira. No como ahora que estamos mal, pero es verdad.

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads