CursosEmpresasBlogLiveConfPrecios

Programando decoradores

Clase 11 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
    Luis Lira

    Luis Lira

    student•
    hace 4 años

    Seguramente también han visto decoradores que reciben parámetros, para esto solo tiene que anidar una función más para que esta reciban los parámetros del decorador y la siguiente es la que recibe la función a la que decora.

    decorator.png
      Sebastián Andrade

      Sebastián Andrade

      student•
      hace 4 años

      Justo me preguntaba como funcionaban este tipo de decoradores, muchas gracias

      Reinaldo Mendoza

      Reinaldo Mendoza

      student•
      hace 4 años

      wow

    Román Ripari

    Román Ripari

    student•
    hace 4 años

    Este es el código, solo funciona con texto, no hice lo de *args.

    Y este sería el resultado XD

      Eliaz Bobadilla

      Eliaz Bobadilla

      student•
      hace 4 años

      Inspirado en tu código cree boxie: https://github.com/UltiRequiem/boxie Me gustaria que lo revises!

      Esneider Vélez Peña

      Esneider Vélez Peña

      student•
      hace 4 años

      Este me encantó <3.<3

    Gary Torres Martínez

    Gary Torres Martínez

    student•
    hace 4 años

    Acá el mío jejeje

    decorator_gary.png
    decorator_gary2.png
      Fabricio González Guasque

      Fabricio González Guasque

      student•
      hace 4 años

      Simple pero efectivo ja saludos

      Reinaldo Mendoza

      Reinaldo Mendoza

      student•
      hace 4 años

      Ya que lo entiendo mejor se parece a los callbacks en js

    Mitchell Mirano

    Mitchell Mirano

    student•
    hace 4 años

    Hola compañeros esta es mi aplicación de decoradores, pues sucede que soy Data Scientist y estoy entrenando un modelo de IA que es capaz de generar texto, y actualmente funciona como un chatbot, pero aun no esta perfecto y comete ciertos erres y a veces dice palabras que no quiero xdxd ... entonces debo hacer una limpieza y formatear el texto una vez terminada la predicción:

    entonces la lógica para hacer la limpieza la cree dentro de un decorador:

    Selección_092.png
    y luego lo importo el decorador para utilizarlo al momento de generar texto:
    Selección_090.png
    y ahora le cuento a Kate que estoy aprendiendo decoradores con Facundo(Kate se llama mi modelo) :)
    Selección_091.png

      Sebastián Andrade

      Sebastián Andrade

      student•
      hace 4 años

      Wow, se ve super interesante, precisamente estoy aprendiendo programacion porque mi objetivo a largo plazo es trabajar en AI y ML (apenas ando dando mis primeros pasos xd) me inspira bastante lo que hiciste :).

      Reinaldo Mendoza

      Reinaldo Mendoza

      student•
      hace 4 años

      Excelente practica amigo

    Fabricio González Guasque

    Fabricio González Guasque

    student•
    hace 4 años

    Yo realice el juego de piedra, papel o Tijera, donde la maquina selecciona su jugada de manera random y nosotros utilizamos la función mi_turno para pasarle la jugada desde una variable global. Y la función wrapper se encarga de analizar quien gana.

    juego.jpg

    Al ejecutar:

    resultado.jpg
      fidel angel ochoa

      fidel angel ochoa

      student•
      hace 4 años

      que divertido! buen aporte!

      Nestor Jesus Rodriguez Rodriguez

      Nestor Jesus Rodriguez Rodriguez

      student•
      hace 4 años

      Wow, nunca había visto un código tan resumido de ese juego 🤩

    Andrés Gutiérrez Arcia

    Andrés Gutiérrez Arcia

    student•
    hace 4 años

    Hice un decorador para poner en memoria cache consultas de SQL para evitar conexiones hacia la base de datos

    decorator.png

      Eliaz Bobadilla

      Eliaz Bobadilla

      student•
      hace 4 años

      Estas usando Neovim?

      Cesar Hernández Ramírez

      Cesar Hernández Ramírez

      student•
      hace 4 años

      Buena implementación

    Erick  Ricardo Mantilla Bolano

    Erick Ricardo Mantilla Bolano

    student•
    hace 4 años

    Agregué un decorador a mi juego del ahorcado donde ahora muestra lo que demoro en ganar el juego, lo mas sorprendente es que me funcionó jaja 😀

    Sin título.jpg
      Aura Casas

      Aura Casas

      student•
      hace 4 años

      Qué tema de vscode usas? está cool jaja pd. Buen ejemplo!

      Brichedl Rojas Gonzalez

      Brichedl Rojas Gonzalez

      student•
      hace 3 años

      Qué bueno, también estaba pensando realizarlo en el juego.

    Pedro Alvarado Garcia

    Pedro Alvarado Garcia

    student•
    hace 4 años

    Hola, aquí mi reto que decidí hacer. Básicamente lo que hace es obtener la distancia euclidiana entre dos puntos, que es la que todos conocen. Pero aparte la decore con una función para obtener la distancia de manhattan.

    Captura de Pantalla 2021-07-28 a la(s) 15.58.30.png
    Captura de Pantalla 2021-07-28 a la(s) 15.58.54.png
      Miguel Angel Reyes Moreno

      Miguel Angel Reyes Moreno

      student•
      hace 4 años

      Gracias por compartir tu código, me sirvió para manejar los parámetros que veían de otra función :D

      Pedro Alvarado Garcia

      Pedro Alvarado Garcia

      student•
      hace 4 años

      @miguelangelre28 Excelente, que bueno que te sirvió.

    Iván Mauricio Jaimes Niño

    Iván Mauricio Jaimes Niño

    student•
    hace 4 años

    Reto Libre

    El siguiente programa consiste en encriptar un texto por medio del cifrado César, que consiste en correr la posición de los caracteres que componen el texto a través del alfabeto o un listado alfanumérico.

    Caesar_cipher_left_shift_of_3.svg.png

    La función encrypt cifra el texto mediante el número de posiciones a correr, estos son datos ingresados por el usuario (text, shift_number).

    El decorador entrega una función que permite descifrar el texto.

    def decrypt(func): def wrapper(text: str, shift_number: int) -> str: shift_number = shift_number * (-1) return func(text, shift_number) return wrapper def encrypt(string: str, shift_number: int) -> str: alphabet_lower = "abcdefghijklmnñopqrstuvwxyz" alphabet_upper = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ" numbers = "0123456789" encrypted = "" # Encrypted string for charact in string: if charact.islower() and (charact in alphabet_lower): index = alphabet_lower.find(charact) index = (index + shift_number) % 27 encrypted += alphabet_lower[index] elif charact.isupper() and (charact in alphabet_upper): index = alphabet_upper.find(charact) index = (index + shift_number) % 27 encrypted += alphabet_upper[index] elif charact in numbers: index = numbers.find(charact) index = (index + shift_number) % 10 encrypted += numbers[index] else: encrypted += charact # for special characters return encrypted if __name__ == "__main__": text = input("Enter the text to encrypt: ") shifts_number = int(input("Enter the number of shifts: ")) encrypted_text = encrypt(text, shifts_number) print("\n Encrypted text: " + encrypted_text) # Decrypt process decrypt_function = decrypt(encrypt) decrypt_text = decrypt_function(encrypted_text, shifts_number) print("\n Decrypted text: " + decrypt_text)
    Selection_814.png
      Cesar Hernández Ramírez

      Cesar Hernández Ramírez

      student•
      hace 4 años

      I love it

      Heberto Nicolás Hernández Andrade

      Heberto Nicolás Hernández Andrade

      student•
      hace 4 años

      Super!

    Miguel Rodríguez

    Miguel Rodríguez

    student•
    hace 4 años

    Hice que el mío tomara una función que lee un archivo csv, y me devuelva una pequeña descripción de los datos leídos.

    def describe_df(func): def wrapper(): func() print(f'El tamano del data set es: {func().shape}') print(f'Los tipos de datos del dataset son:\n{func().dtypes}') return wrapper @describe_df def data_csv(): df = pd.read_csv('Direccion archivo csv') return df
    decorators.png
      Harold Giovanny Uribe Romero

      Harold Giovanny Uribe Romero

      student•
      hace 4 años

      Ufff para DS está excelente

    Isabel Yepes

    Isabel Yepes

    student•
    hace 4 años

    😆 Yo hice un decorador que contara las palabras más comunes de una canción. 🎶🎶🎶 👉 Repositorio Completo

    import urllib.request from collections import Counter def word_counter(func): def counter(*args, **kwargs): data = func(*args, **kwargs) total_words = data.split() stopwords = ['y','Y','la','de','una','los','me','No','con','que','el','un','es','en','Que','muy','al','a','él','le','quiere','A','da','faltan','Mas','bien'] words = [word for word in total_words if word not in stopwords] wordcount = Counter(words) print('\n>>> TOP FIVE WORDS IN THIS SONG <<<\n') for w in wordcount.most_common(5): print(f"{w[0]}: {w[1]}") return counter @word_counter def text_reader(url): data = urllib.request.urlopen(url).read().decode('utf_8') return data chilanga_banda = 'https://raw.githubusercontent.com/isabelyb/word_counter/main/chilanga_banda_lyrics.txt' p_to = 'https://raw.githubusercontent.com/isabelyb/word_counter/main/pto.txt' ciclon = 'https://raw.githubusercontent.com/isabelyb/word_counter/main/ciclon.txt' # Output text_reader(chilanga_banda) # >>> TOP FIVE WORDS IN THIS SONG <<< # bailan: 8 # tibiritábara: 8 # Pachucos: 4 # cholos: 4 # chundos: 4 text_reader(p_to) # >>> TOP FIVE WORDS IN THIS SONG <<< # Puto,: 26 # machino: 8 # Marica: 4 # nena: 4 # putino: 4 text_reader(ciclon) # >>> TOP FIVE WORDS IN THIS SONG <<< # rueda: 8 # vueltas: 7 # flecha: 6 # Gira: 6 # Dios: 3
      fidel angel ochoa

      fidel angel ochoa

      student•
      hace 4 años

      que genial!!! GRACIAS POR EL APORTE

      Gustavo Esquivel Sosa

      Gustavo Esquivel Sosa

      student•
      hace 4 años

      Me encanto tu codigo, literal me pase dias revisando canciones y algunos temas de una alta cultura: Discursos politicos, Debates de YouTube y comentarios de Twitter... :) . Solo tengo una pregunta ¿De donde sacaste la idea del codigo?

    Alfredo José Sensente Cortez

    Alfredo José Sensente Cortez

    student•
    hace 4 años

    Muy interesante y divertido!

    carbon.png

      Edward Fernandez

      Edward Fernandez

      student•
      hace 4 años

      Me encantó! :D

    Ricardo Andres Diaz Guevara

    Ricardo Andres Diaz Guevara

    student•
    hace 4 años

    Reto Bart say

    def bart_say(func): def wrapper(text): func(text) print(' |/') print("|\/\/\/|") print("| |") print("| |") print("| (o)(o)") print("C _)") print("| ,___|") print("| /") print("/____|") print("/ |") return wrapper @bart_say def print_text(input_text): text_len = len(input_text) print("⌈" + text_len * "¯" + "⌉") print("⁞" + input_text + "⁞") print("⌊" + text_len * "_" + "⌋") def run(): input_text = str(input("Input a text: ")) print_text(input_text) if __name__ == '__main__': run()
    py_prof_chal3.png
    Carlos Felipe Saldarriaga Bejarano

    Carlos Felipe Saldarriaga Bejarano

    student•
    hace 4 años

    Realicé un pequeño programa al que podemos ingresarle el hábito que queremos desarrollar y la cantidad de minutos al día que le vamos a dedicar, aplicando lo que aprendimos de decoradores y closures. cuentenmé qué tal les parece y qué puedo mejorarle. 😁

    def year_of_daily_effort(func): def wrapper(*args, **kwargs): func(*args, **kwargs) habit_and_time = args total_yearly = int(habit_and_time[1])*365 print('At the end of the year you will practice ' + str(habit_and_time[0])+' a total of '+str(total_yearly)+' minutes!') return wrapper @year_of_daily_effort def daily_habit(habit: str, minutes: int) -> str: print(f"your habit is {habit} for {minutes} minutes daily") daily_habit("yoga",25) #OUTPUT #your habit is yoga for 25 minutes daily #At the end of the year you will practice yoga a total of 9125 minutes!

    Como pueden notar, descubrí que podemos hacer operaciones conlor args dentro del wrapper accediendo a ellos como componentes de una lista según fueron ingresados.

    Jesús Zelaya Contreras

    Jesús Zelaya Contreras

    student•
    hace 4 años

    Buenas comparto mi código, hice un decorador que te devuelve el nombre de la función que ingresas en formato ASCII artístico para ello debes instalar pyfiglet con pip install pyfiglet. Codigo:

    import pyfiglet def print_name(func): def wrapper(): name = func.__name__ ascii_banner = pyfiglet.figlet_format(name) print(ascii_banner) func() return wrapper @print_name def Platzi(): print("Running function...") Platzi()

    Resultado:

    Captura de pantalla (28).png

    Carlos José Tun Pinzón

    Carlos José Tun Pinzón

    student•
    hace 4 años

    Cowsay con Decoradores - Reto de la Clase:

    Hice la vaquita que vimos en el curso de terminal, permite poner el texto que deseemos, siempre que sea de una línea para que lo diga la vaquita cow, espero les guste (y sirva de guía para lo que podemos hacer con decoradores):

    # Decorador para usar Cowsay con cualquier texto (a 1 línea) from datetime import date, datetime def cowsay(func): def wrapper(text): lenght = len(text) print(" _" + lenght*"_" + "_ ") print("< " + text + " > ") print(" -" + lenght*"-" + "- ") print(" \ ^__^ ") print(" \ (oo)\_______ ") print(" (__)\ )\/\ ") print(" ||----w | ") print(" || || ") return wrapper @cowsay def mytext(text): print(text) mytext("No pares de aprender!")
      fidel angel ochoa

      fidel angel ochoa

      student•
      hace 4 años

      que gracioso y divertido!

    Josue Antonio Juan

    Josue Antonio Juan

    student•
    hace 4 años

    este es el mío, sencillo pero funciona

    import os def decorator(func): def wrapper(): os.system('cls') print('❤❤❤ ⭐⭐⭐') func() return wrapper @decorator def gereetings(): greeting = input('intruduce tu nombre: ') print('hola un gusto conocerte', greeting.capitalize(), 'nos alegra mucho conocerte') def run(): gereetings() if __name__=='__main__': run()
      fidel angel ochoa

      fidel angel ochoa

      student•
      hace 4 años

      'cls' para que sirve? corri el codigo pero ese parametro parace no hacer nada, lo demas trabaja muy bien, gracias por el aporte

      Cristian Alejandro Portela Rivera

      Cristian Alejandro Portela Rivera

      student•
      hace 4 años

      Fidel, 'cls' es el comando en la consola de Windows para limpiar la pantalla. Saludos!

    Miguel Angel Reyes Moreno

    Miguel Angel Reyes Moreno

    student•
    hace 4 años

    Creo que se entiende además de ser divertido :D

    retoDecorador.jpg

      Lucas Ramos

      Lucas Ramos

      student•
      hace 3 años

      Te tomaste muy literal lo de que los decoradores POTENCIAN la función jaja buen ejemplo!

    Wilson Delgado

    Wilson Delgado

    student•
    hace 4 años

    Haciendo un web scraper a https://news.ycombinator.com/ , tome el título y el link de cada artículo y al final usando un decorador coloque un emoji que se escoge aleatoriamente.

    import requests import lxml.html as html import datetime import emoji import random HOME_URL = 'https://news.ycombinator.com/' XPATH_LINK_TO_ARTICLE = '//td[@class="title"]/a/@href' XPATH_TITLE = '//td[@class="title"]/a/text()' def random_emoji(): list_emojis = ["💚","🐍","🚀","🐱‍👤","🏛","🗺","🤣","👌","🐱‍🐉", "🐲", "🐘", "🦘", "🐳", "🧠", "🦾", "💅", "🎈", "📗", "🟨"] rand = random.choice(list_emojis) return rand def put_emoji(parse_home): def wrapper(*args, **kwargs): parse_home() today = datetime.date.today().strftime('%d-%m-%Y') with open(f'{today}.txt', 'a', encoding='utf-8') as f: f.write(f'\n\t\tThe emoji of today is: {args[0]}\n') return wrapper @put_emoji def parse_home(): try: response = requests.get(HOME_URL) if response.status_code ==200: home = response.content.decode("utf-8") parsed = html.fromstring(home) links_to_articles = parsed.xpath(XPATH_LINK_TO_ARTICLE) title_of_articles = parsed.xpath(XPATH_TITLE) today = datetime.date.today().strftime('%d-%m-%Y') with open(f'{today}.txt', 'w', encoding='utf-8') as f: for i in range(0,len(title_of_articles)-1): f.write(f'Title description: {title_of_articles[i]}') f.write(f'\n\t Link: {links_to_articles[i]}') f.write('\n\n') else: raise ValueError(f"Error: {response.status_code}") except ValueError as ve: print(ve) def run(): rand=random_emoji() parse_home(rand) if __name__ == '__main__': run()
      Wilson Delgado

      Wilson Delgado

      student•
      hace 4 años

      Este es el Curso de Fundamentos de Web Scraping con Python y Xpath

    Rubén Cuello

    Rubén Cuello

    student•
    hace 4 años

    Hice una función que duplica un número y quise decorarla para ver si me salía. Me devuelve None. Si le quito el decorador funciona. No veo el error. Alguno lo ve?

    Captura de pantalla de 2021-08-07 16-57-01.png
      Sebastián Andrade

      Sebastián Andrade

      student•
      hace 4 años

      Hola, lo que pasa con tu codigo es que tu decorador llama la funcion decorada pero en ningun momento le hace un print al valor que dicha funcion retorna o retorna dicho valor

      def deco(func): def wrapper(*args, **kwargs): f_result = func(*args, **kwargs) print('dupliquè el valor inicial') return f_result return wrapper @deco def duplicador(num): num*=2 #es lo mismo que hace tu funcion pero con otra logica nada mas return num print(duplicador(7))

      SI te fijas aqui yo asingne el valor retornado a una variable 'f_result' hice el print, y despues retornè dicha variable (en el wrapper del decorador). Espero haber ayudado :)

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