CursosEmpresasBlogLiveConfPrecios

Closures

Clase 8 de 21 • Curso Profesional de Python

Clase anteriorSiguiente clase

Contenido del curso

Introducción
  • 1
    ¿Qué necesitas saber para tomar el curso?

    ¿Qué necesitas saber para tomar el curso?

    03:15
  • 2
    ¿Cómo funciona Python?

    ¿Cómo funciona Python?

    07:49
  • 3
    Cómo organizar las carpetas de tus proyectos

    Cómo organizar las carpetas de tus proyectos

    07:15
Static Typing
  • 4
    ¿Qué son los tipados?

    ¿Qué son los tipados?

    10:26
  • 5
    Tipado estático en Python

    Tipado estático en Python

    14:26
  • 6
    Practicando el tipado estático

    Practicando el tipado estático

    13:33
Conceptos avanzados de funciones
  • 7
    Scope: alcance de las variables

    Scope: alcance de las variables

    06:32
  • 8
    Closures

    Closures

    08:21
  • 9
    Programando closures

    Programando closures

    07:00
  • 10
    Decoradores

    Decoradores

    06:19
  • 11
    Programando decoradores

    Programando decoradores

    13:05
Estructuras de datos avanzadas
  • 12
    Iteradores

    Iteradores

    13:52
  • 13
    La sucesión de Fibonacci

    La sucesión de Fibonacci

    14:01
  • 14
    Generadores

    Generadores

    07:22
  • 15
    Mejorando nuestra sucesión de Fibonacci

    Mejorando nuestra sucesión de Fibonacci

    06:53
  • 16
    Sets

    Sets

    10:58
  • 17
    Operaciones con sets

    Operaciones con sets

    06:09
  • 18
    Eliminando los repetidos de una lista

    Eliminando los repetidos de una lista

    05:20
Bonus
  • 19
    Manejo de fechas

    Manejo de fechas

    08:44
  • 20
    Time zones

    Time zones

    08:46
Conclusión
  • 21
    Completaste la trilogía. ¿Cómo seguir?

    Completaste la trilogía. ¿Cómo seguir?

    01:30
    Josue Antonio Juan

    Josue Antonio Juan

    student•
    hace 4 años

    reglas para encontrar un closure

    1. debemos tener una nested function
    2. la nested function debe referenciar un valor de un scope superior
    3. la función que envuelve la nested debe retornarla también

    cuando tenemos una clase que tiene solo un método cuando trabajamos con decoradores

      Reinaldo Mendoza

      Reinaldo Mendoza

      student•
      hace 4 años

      Estas reglas me lo aclararon mas, gracias

      Danilo Carrillo Correa

      Danilo Carrillo Correa

      student•
      hace 4 años

      esta 10/10 tu ayuda, me facilitaste los apuntes

    Fernando Garcia de la Cruz

    Fernando Garcia de la Cruz

    student•
    hace 4 años

    APORTE - Ejemplo Closure para request HTTP

    Me topé con un ejemplo que me parece genial para ver los closures en acción sustituyendo a una clase con 1 método:

    Clase original

    original-class.png

    Versión Closure

    closures.png
    :D
      David Jesús Rodríguez La Riva

      David Jesús Rodríguez La Riva

      student•
      hace 4 años

      muy buen ejemplo

      Oriol Fernando Palacios Durand

      Oriol Fernando Palacios Durand

      student•
      hace 4 años

      Muy buen ejemplo de clases con un solo método!

    David Campos

    David Campos

    student•
    hace 4 años

    Closures

    Es una forma de acceder a variables de otros scopes a través de una nested function. Se retorna la nested function y esta recuerda el valor que imprime, aunque a la hora de ejecutarla no este dentro de su alcance.

    def main(): a = 1 def nested(): print(a) return nested my_func = main() my_func()

    Reglas para encontrar un Closure

    • Debemos tener una nested function
    • La nested function debe referenciar un valor de un scope superior
    • La función que envuelve a la nested function debe retornarla también
      Carlos Celemín

      Carlos Celemín

      student•
      hace 4 años

      Gracias por el aporte

      Ángel Samuel Suesca Ríos

      Ángel Samuel Suesca Ríos

      student•
      hace 4 años

      Graciass bro

    Gabriel Missael Barco

    Gabriel Missael Barco

    student•
    hace 4 años

    Closures

    • Nested functions: Las funciones anidadas son simplemente funciones creadas dentro de otra función. Podemos hacer return de una función creada dentro de otra función 😵 y luego guardar esas funciones en variables que podemos utilizar.

      def main(): a = 1 def nested(): print(a) return nested my_func = main() my_func() # 1
    • Eso anterior es un closure 🤯 y es básicamente cuando una variable de un scope superior es recordada por una función de scope inferior (aunque luego se elimine la de scope superior).

      def main(): a = 1 def nested(): print(a) return nested my_func = main() my_func() # 1 del(main) my_func() # 1
    • Reglas para encontrar un closure: 🔥

      • Debemos tener una nested function.
      • La nested function debe referenciar un valor de un scope superior.
      • La función que envuelve a la nested function debe retornarla también.
    • Ejemplo de closures para crear funciones:

      def make_multiplier(x): def multiplier(n): return x*n return multiplier times10 = make_multiplier(10) times4 = make_multiplier(4) print(times10(3)) # 30 print(times4(5)) #20 print(times10(times4(2))) # 80
    • Los closure aparecen en dos casos particulares: cuando tenemos una clase corta (con un solo método), los usamos para que sean elegantes. El segundo caso, es cuando usamos decoradores 👀

      José Alberto Núñez Magadán

      José Alberto Núñez Magadán

      student•
      hace 4 años

      Gracias! Muy buen resumen!

      Yael Martínez

      Yael Martínez

      student•
      hace 4 años

      Buen aporte! c:

    Cesar Hernández Ramírez

    Cesar Hernández Ramírez

    student•
    hace 4 años

    Para que puedan recordar y memorizar esto con facilidad hagan una imágen mental de que al retornar una función anidada también se retornan las variables que estaban en su scope superior, no retornamos solo la función, nos traemos toodo lo demás convivía con esa función, nos traemos el contexto.

      Lucas abel cruz santana

      Lucas abel cruz santana

      student•
      hace 4 años

      buen dato.

    Santiago Prieto

    Santiago Prieto

    student•
    hace 4 años

    Cuando haces spoiler de las pruebas técnicas // but también haces que las empresas cambien la pregunta

    images.jpg

      Juan Pablo Cuenca Ludeña

      Juan Pablo Cuenca Ludeña

      student•
      hace 3 años

      JAJAJAJA buena

    Miguel Angel Reyes Moreno

    Miguel Angel Reyes Moreno

    student•
    hace 4 años

    Closures

    Nested Functions - Funciones anidadas

    def main(): a = 1 def nested(): print(a) nested() # 1 main()

    closure:

    def main(): a = 1 def nested(): print(a) return nested my_func = main() my_func() # 1

    Quiere decir que una variable que está en un scope superior, es recordada por una función de scope inferior.


    def main(): a = 1 def nested(): print(a) return nested my_func = main() my_func() # 1 del(main) # borramos la función my_func() # 1 🤯 debido a la nested function

    Reglas para encontrar un closure:

    • Debemos tener una nested function.
    • La nested function debe referenciar un valor de un scope superior.
    • La función que envuelve a la nested function debe retornarla también.
    def make_multiplier(x): def multiplier(n): return x * n return multiplier times10 = make_multiplier(10) times4 = make_multiplier(4) print(times10(3)) # => 10 * 3 = 30 print(times4(5)) # => 4 * 5 = 20 print(times10(times4(2))) # => 4 * 2 * 10 = 80

    ¿Dónde aparecen los closures?

    1. Clase con solo 1 método
    2. Cuando trabajamos con decoradores
      María Jimena Rodríguez Contreras

      María Jimena Rodríguez Contreras

      student•
      hace 4 años

      gracias

    Carlos Esteban Lara Gil

    Carlos Esteban Lara Gil

    student•
    hace 4 años

    Closures

    Tecnica mediante la cual los scope superiores son recordados por una función en un scope inferior

    Nested functions

    Las nested functions son funciones creadas dentro de otra función.

    def main(): a = 1 def nested(): print(a) return nested my_func = main() my_func() def(main) my_func() # 1 # 1

    Carácteristicas de un closure

    • Debemos tener una nested function
    • La nested function debe referenciar un valor de scope superior
    • La función que envuelve a la nested functión debe retornarla también
    def make_multiplier(x): def multiplier(n): return x * n return multiplier times10 = make_multiplier(10) times4 = make_multiplier(4) print(times10(3)) print(times4(3)) print(times10(times4(3)))
    1. Los closures aparecen para cuando hay una clase corta(con un solo método), se usa el closure para que parezca elegante
    2. Closures se usan para programar decoraores
      María Jimena Rodríguez Contreras

      María Jimena Rodríguez Contreras

      student•
      hace 4 años

      gracias

    Bruno Cornelio

    Bruno Cornelio

    student•
    hace 4 años

    Hola! Entendí cuándo se daba un closure pero dentro de los ejemplos, cuál es el closure? es decir, es la función principal que envuelve a otra? es la función nested? o es la variable que envuelve a la función nested después de retornada?

      Cesar Hernández Ramírez

      Cesar Hernández Ramírez

      student•
      hace 4 años

      Los closures == cierres, son las funciones que cumplen las 3 reglas que mencionaron en la clase. Osea, la función principal que devuelve otra.

    Luis Fernandez

    Luis Fernandez

    student•
    hace 4 años

    En el examen aparece una pregunta que dice Cuando aparecen los Clousures?, Facundo dice en el minuto 8:12 que aparecen cuando trabajamos con decoradores, yo respondi eso en el examen y me la puso mala!, creo que hay un error ahi

      Emiro José Chica Quiñones

      Emiro José Chica Quiñones

      student•
      hace 3 años

      La respuesta correcta es que ambas son correctas.

    Ángel Yasmani Viñamagua Cuenca

    Ángel Yasmani Viñamagua Cuenca

    student•
    hace 4 años

    Nested functions -> Son funciones dentro de otras funciones. Clousures -> Se da cuando una variable que está en un scope superior es recordada por una función que está en un scope inferior, aunque el scope superior sea eliminado. Ejemplo:

    def make_multiplier(x): def multiplier(n): return x * n return multiplier times10 = make_multiplier(10) times4 = make_multiplier(4) print(times10(3)) print(times4(5)) print(times10(times4(2)))

    Reglas para encontrar un clousure:

    • Debemos tener una nested function
    • La nested function debe referenciar un valor de un scope superior
    • La función que envuelve a la nested function debe retornarla también.

    ¿Dónde aparecen? -> En clases cortas y cuando trabajamos con decoradores.

    Luis Eduardo

    Luis Eduardo

    student•
    hace 4 años
    Closure.png
    oscar lopez

    oscar lopez

    student•
    hace 4 años

    En este tema tengo varias dudas:

    1. Cual es el objetivo de usar funciones anidadas? En que tipo de casos puede ser utilizada? Tener funciones anidadas permite que sea mas rapida la ejecicion de una aplicacion?
    2. Puede tener una funcion mas de una funcion anidada?
    3. Puedo invocar desde otra funcion una funcion que contiene nested function?
      Augusto Borromeo

      Augusto Borromeo

      student•
      hace 4 años

      Buenas! mmm No se me ocurre ahora una utilidad contundente para responder la 1. Pero con respecto a las últimas 2 si se pueden tener más funciones anidadas ya que no dejan de ser bloques de código que se abren y se cierran, y si podes invocar desde otra función la función con nested function. Lo que no se puede hacer es invocar desde otra función la nested function, ya que esta última esta definida dentro de una función y no en el programa principal.

      Ricardo Félix Díaz López

      Ricardo Félix Díaz López

      student•
      hace 4 años

      Creo que en uno de los casos en donde te pueden servir las funciones anidadas, seria cuando utilizas decoradores. por ejemplo tu tienes una función que sabe sumar dos números, esta función al mismo tiempo forma parte del comportamiento sumar números de la clase usuario y clase la desarrollo, posteriormente decides que quieres aplicar polimorfismo al comportamiento sumar números de la clase usuario . específicamente quieres que aparezca una leyenda de "solo suma numeros enteros de no mas de dos digitos", una solución puede ser usar decorar la función y esto a su ves de usar closure.

      Para hacer un programa mas velos me parece que puedes usar la big o notation, por ejemplo una función en donde tiene un ciclo dentro de otro ciclo, la forma de hacer este tipo de funciones mas veloces seria rescribir la función para que en lugar de usar ciclos use recursividad.

    Christopher Eder Chantres Justo

    Christopher Eder Chantres Justo

    student•
    hace 4 años

    ¿Qué extensión puedo poner en VSC para que tenga ligaduras en python?

      Héctor Eduardo López Carballo

      Héctor Eduardo López Carballo

      student•
      hace 4 años

      Hola!

      A qué te refieres con ligaduras? Tienes un ejemplo?

      Leandro Tenjo

      Leandro Tenjo

      student•
      hace 3 años

      Depende de la fuente que estés usando. Debes cambiarla. Te recomiendo usar:

      • JetBrains Mono
      • Fira Code
    Carlos Orejuela

    Carlos Orejuela

    student•
    hace 3 años

    El programa del palindromo utilizando closure:

    def palindrome(): word = input('Word: ').lower().replace(" ", "") def check_word() -> bool: return word == word[::-1] return check_word is_palindrome = palindrome() print(is_palindrome()) del(palindrome) if is_palindrome() == True: print("It's palindrome") else: print("It's not a palindrome")

    El programa de números primos:

    def prime_number(): number = int(input('Number: ')) def divisible_numbers() -> bool: list_divisible = [i for i in range(1, number+1) if number%i == 0] return len(list_divisible) == 2 return divisible_numbers is_primenumber = prime_number() print(is_palindrome()) del(prime_number) if is_primenumber() == True: print("It's a prime number") else: print("It's not a primer number")
    Luis Kennedy Saavedra Fuentes

    Luis Kennedy Saavedra Fuentes

    student•
    hace 4 años

    Hola buenas tardes! quise probar el último ejercicio de esta clase con static typing, pero me arroja lo siguiente cuando aplico el comando

    mypy closures_fucionado.py --check-untyped-defs

    error arrojado:

    clousures/closures_fucionado.py:8: error: Incompatible return value type (got "Callable[[int], int]", expected "int")clousures/closures_fucionado.py:16: error: "int" not callable clousures/closures_fucionado.py:17: error: "int" not callable clousures/closures_fucionado.py:20: error: "int" not callable Found 4 errors in 1 file (checked 1 source file)

    A pesar de que el algoritmo funciona cuando ejecuto el archivo con el coamndo: python3 clousures/closures_fucionado.py

    def make_multiplier(x: int) -> int: """Function make multiplier""" def multiplier(n: int) -> int: """Function multiplier""" return x * n return multiplier def run(): """Function start""" function10 = make_multiplier(10) function4 = make_multiplier(4) print(function10(4)) number2 = function4(4) print(f'Number2: {number2}') print(function10(function4(4))) if __name__ == '__main__': run()
      Javi Felices

      Javi Felices

      student•
      hace 4 años

      Ese fallo porque la función make_multiplier devuelve una función, no un entero, y por eso da esa salida.

      Revisando como poner que devuelve una función con def, feunction, al final en el propio mensaje de error estaba la clave, lo que devuelve es Callable.

      def make_multiplier(x: int) -> Callable: """Function make multiplier""" def multiplier(n: int) -> int: """Function multiplier""" return x * n return multiplier

      Un saludo.

      Pablo Cesar Micolta Mendez

      Pablo Cesar Micolta Mendez

      student•
      hace 3 años

      Gracias

    Danelia Sanchez Sanchez

    Danelia Sanchez Sanchez

    student•
    hace 4 años

    Reglas para saber cuando es un closure o no:

    1. Hay una nested function.
    2. La nested function debe referenciar un valor de un scoper superior.
    3. La función que envuelve la nested function debe retornarla.
    John Steven González

    John Steven González

    student•
    hace 4 años

    Aquí mi pequeño resumen en código

    def make_mutiplier(x): def multiplier(n): return x * n return multiplier #Cumple todas las reglas para ser un closure #Asignamos distintos parámetros en variables times10= make_mutiplier(10) times4=make_mutiplier(4) #Aquí estariamos asignando el parámetro de la nested function print(times10(3)) print(times4(5)) print(times10(times4(2))) >>> 30 >>> 20 >>> 80
    Luis Alejandro Vera Hernandez

    Luis Alejandro Vera Hernandez

    student•
    hace 4 años

    Closures

    Reglas para encontrar uno

    • Tener una nested function
    • La nested function debe referenciar un valor de un scope superior
    • La función que envuelve la nested debe retornarla también

    La usamos cuando:

    • Tenemos una clase que tiene solo un método

    • Trabajamos con decoradores .

      def make_multiplier(x): def multiplier(n): return x * n return multiplier times10 = make_multiplier(10) times4 = make_multiplier(4) print(times10(3)) # => 10 * 3 = 30 print(times4(5)) # => 4 * 5 = 20 print(times10(times4(2))) # => 4 * 2 * 10 = 80
    Hector Esau

    Hector Esau

    student•
    hace 4 años

    ¿Cómo sería el tipado de las variables que guardan a la función? Por ejemplo:

    def main(): a = 1 def nested(): print(a) return nested my_func = main()

    ¿Cuál sería eltipado de my_func?

      Alan Cabrera

      Alan Cabrera

      student•
      hace 4 años

      Solo como aclaración, la nested function debe ser retornada por la función que la envuelve, no dentro de si misma.

      Hector Esau

      Hector Esau

      student•
      hace 4 años

      A muchas gracias, solo la escribe de manera rapida para dar un contexto, de hecho ni la probe, pero realmente me gustaria saber cual es el tipado de my_func

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