CursosEmpresasBlogLiveConfPrecios

Métodos

Clase 3 de 25 • Curso de TypeScript: Programación Orientada a Objetos y Asincronismo

Clase anteriorSiguiente clase

Contenido del curso

Introducción
  • 1
    ¿Ya tomaste el Curso de TypeScript: Tipos Avanzados y Funciones?

    ¿Ya tomaste el Curso de TypeScript: Tipos Avanzados y Funciones?

    05:16
Fundamentos de POO
  • 2
    Class

    Class

    12:19
  • 3
    Métodos

    Métodos

    08:44
  • 4
    Acceso público

    Acceso público

    05:16
  • 5
    Acceso privado

    Acceso privado

    10:20
  • 6
    Constructor

    Constructor

    08:00
  • 7
    Getters

    Getters

    11:48
  • 8
    Setters

    Setters

    07:55
POO Avanzada
  • 9
    Herencia

    Herencia

    10:18
  • 10
    Acceso protegido

    Acceso protegido

    08:02
  • 11
    Static

    Static

    12:01
  • 12
    Interfaces

    Interfaces

    13:45
  • 13
    Clases abstractas

    Clases abstractas

    06:14
  • 14
    Singleton: constructor privado

    Singleton: constructor privado

    10:36
Asincronismo y consumo de APIs
  • 15
    Promesas

    Promesas

    14:13
  • 16
    Tipando respuestas HTTP

    Tipando respuestas HTTP

    11:38
  • 17
    Proyecto: migración de funciones a clases

    Proyecto: migración de funciones a clases

    10:05
  • 18
    Consumiendo ProductMemoryService

    Consumiendo ProductMemoryService

    06:30
  • 19
    ProductHttpService

    ProductHttpService

    15:33
  • 20
    Consumiendo ProductHttpService

    Consumiendo ProductHttpService

    09:22
Genéricos
  • 21
    Generics

    Generics

    10:22
  • 22
    Generics en clases

    Generics en clases

    12:08
  • 23
    Generics en métodos

    Generics en métodos

    15:11
  • 24
    Decoradores

    Decoradores

    15:05
Próximos pasos
  • 25
    ¿Quieres más cursos de TypeScript?

    ¿Quieres más cursos de TypeScript?

    01:20
    William Cortes

    William Cortes

    student•
    hace 4 años

    Entendí que: métodos => Funciones dentro de una clase. propiedades ó atributos => Variables (ó constantes) dentro de una clase.

      Luis Ariza

      Luis Ariza

      student•
      hace 3 años

      ¡¡Entendiste bien!! 👍

      Josue Cerron Tuesta

      Josue Cerron Tuesta

      student•
      hace 3 años

      Así es bro!

    Axel Enrique Galeed Gutierrez

    Axel Enrique Galeed Gutierrez

    student•
    hace 4 años

    Les comparto mis apuntes. :D

    ¿Qué hacen los métodos?

    Describen el comportamiento de los objetos.

    Sintaxis

    class nameClass { constructor (parameters) { statements } methodName (parameters: dataTypes): dataType { statements } }
      Eduardo Esteban Álvarez Castañeda

      Eduardo Esteban Álvarez Castañeda

      student•
      hace un año

      Ojo que una buena práctica, es crear los nombres de las clases en formato PascalCase

      Axel Enrique Galeed Gutierrez

      Axel Enrique Galeed Gutierrez

      student•
      hace un año

      Hola, @Proskynete, tenés toda la razón, se me escapó ese typo.

    Jordy Mairena Montoya

    Jordy Mairena Montoya

    student•
    hace 4 años

    Mi solucion

    export type formatDate = 'days' | 'months' | 'years'; class MyDate { year: number; month: number; day: number; leapYear: boolean = false; // by deafault the year is not leap year private _months: { [key: number]: string; } = { 1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June', 7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December' }; private _month31: number[] = [1, 3, 5, 7, 8, 10, 12]; // list of months that have 31 days constructor(year: number, month: number, day: number) { this.year = this._validYear(year); this._leapYear() this.month = this._validMonth(month); this.day = this._validDay(day); } printFormat(format: string = 'dd / mm / yy'): string { if (this._validError() == null) { // if validError returns null then there are no errors format = format.replace('yy', this.year.toString()); format = format.replace('dd', this.day.toString()); format = format.replace('mm', this.month.toString()); format = format.replace('mn', this._months[this.month]); return format; } else { return this._validError()!; // notation ! tells typescript that the programmer is in control } } private _validError(): string | null { // if any attribute has the value of zero then it is out of range and there is an error let error: string = '#outRange!'; // out of tange error indicator if (this.year == 0) { return `${error} year`; // error message } if (this.month == 0) { return `${error} month`; // error message } if (this.day == 0) { return `${error} day`; // error message } return null; // whithout errors } private _validYear(year: number) { // if the year is greater than zero it is valid if(year > 0) { return year; } else { return 0; } } private _validDay(day: number) { // validate the day if (day > 0) { if (this.month === 2) { // if the month is february let evaluateDay: number = 28; if (this.leapYear) { // if leap year evaluateDay++; } if (day <= evaluateDay) { return day; } else { return 0; } } else { // if it is any month except february let evaluateDay: number = 30; if (this._month31.includes(this.month)) { // if the month has 31 days evaluateDay++; } if (day <= evaluateDay) { return day; } else { return 0; } } } else { return 0 } } private _validMonth(month: number) { // Validated that the month is between 1 and 12 if (month > 0 && month < 13) { return month; } else { return 0; } } private _leapYear() { /** * @ Check if the year is a leap year */ let result: number; result = (this.year / 4) % 2; // formula if ((n/4) % 2 == 0) if(result == 0) { this.leapYear = true; } } add(amount: number, format: formatDate) { if (this._validError() == null) { if (format == 'days') { for (let i = 0; i < amount; i++) { this.day += 1; if (this._validDay(this.day) == 0) { // Validated the day based on the month and year /* if _validDay returns 0 the valid days for the current month were exceeded then the month is increased and day is restarted */ this.month++; if (this.month == 13) { this.year++; this.month = 1; } this.day = 1; } } } else if (format == 'months') { for (let i = 0; i < amount; i++) { this.month++; if (this.month > 12) { this.year++; this.month = 1; } } } else if (format == 'years') { if (amount > 0) { this.year += amount; } } } } } const myDate = new MyDate(2000, 2, 29); console.log(myDate.printFormat('dd of mn of yy')); myDate.add(36, 'days'); console.log(myDate.printFormat()); myDate.add(40, 'months'); console.log(myDate.printFormat('mm - dd - yy'));
      Ronaldo Delgado

      Ronaldo Delgado

      student•
      hace 2 años

      Genial!

    CHRISTIAN OLIVER SOLANO NUÑEZ

    CHRISTIAN OLIVER SOLANO NUÑEZ

    student•
    hace 3 años

    mi solución para sumar fechas considerando años bisiestos :

    add(amount:number, type: 'days' | 'months' | 'years') { if(type === 'days') { if(this.month === 4 || this.day === 6 || this.day === 9 || this.day === 11) { this.sumByDays(amount, 30); }else if(this.month === 2){ if(this.isLeapYear(this.year)){ this.sumByDays(amount, 29); } else { this.sumByDays(amount, 28); } }else { for(let x = 1; x <= amount; x++){ if(this.day < 31){ this.day++; }else { this.day = 0; this.day++; if(this.month === 12){ this.month = 1; this.year += 1; }else { this.month += 1; } } } } } if(type === 'months') { for(let x = 1; x <= amount; x++){ if(this.month < 12){ this.month++; }else { this.month = 0; this.month++; this.year += 1; } } } if(type === 'years') { this.year += amount; } }; sumByDays(sum: number, days: number){ for(let x = 1; x <= sum; x++){ if(this.day < days){ this.day++; }else { this.day = 0; this.day++; this.month += 1; } } }; isLeapYear(year: number){ //calculo año bisisesto return ((year % 4) === 0 && (year % 100) != 0 || ((year % 400) === 0)); };
    Kevin Daniel Guzman Delgadillo

    Kevin Daniel Guzman Delgadillo

    student•
    hace 2 años

    ¿Y si añado por ejemplo 100 días o 24 meses? ... si se lo preguntaron aquí está el código:

    export class MyDate { year: number; month: number; day: number; constructor(year: number, month: number, day: number) { this.year = year; this.month = month; this.day = day; } printFormattedDate(): string { return `${this.year}/${this.month}/${this.day}`; } add(amount: number, type: 'd' | 'm' | 'y') { const funcOperators = { d: (amount: number) => { this.day += amount; if (this.day > 30) this.day = this.day % 365 % 30; return Math.floor(amount / 30); }, m: (amount: number) => { this.month += amount; if (this.month > 12) this.month = this.month % 12; return Math.floor(amount / 12); }, y: (amount: number) => { this.year += amount; return 0; }, }; let found = false; Object.keys(funcOperators).forEach((key) => { if (key === type) found = true; if (found) amount = funcOperators[key as 'd' | 'm' | 'y'](amount); }); } } const date = new MyDate(2021, 1, 1); console.log(date.printFormattedDate()); date.add(365, 'd'); date.add(12, 'm'); date.add(1, 'y'); console.log(date.printFormattedDate()); ```export class MyDate { year: number; month: number; day: number; &#x20; constructor(year: number, month: number, day: number) { this.year = year; this.month = month; this.day = day; } &#x20; printFormattedDate(): string { return `${this.year}/${this.month}/${this.day}`; } &#x20; add(amount: number, type: 'd' | 'm' | 'y') { const funcOperators = { d: (amount: number) => { this.day += amount; if (this.day > 30) this.day = this.day % 365 % 30; &#x20; return Math.floor(amount / 30); }, m: (amount: number) => { this.month += amount; if (this.month > 12) this.month = this.month % 12; &#x20; return Math.floor(amount / 12); }, y: (amount: number) => { this.year += amount; return 0; }, }; &#x20; let found = false; Object.keys(funcOperators).forEach((key) => { if (key === type) found = true; if (found) amount = funcOperators\[key as 'd' | 'm' | 'y']\(amount); }); }} const date = new MyDate(2021, 1, 1);console.log(date.printFormattedDate());date.add(365, 'd');date.add(12, 'm');date.add(1, 'y');console.log(date.printFormattedDate());
    Jesus Abel Jimenez Bracho

    Jesus Abel Jimenez Bracho

    student•
    hace 4 años

    " Los metodos definen el comportamiento de los objetos."

    Javier Alejandro Albornoz Pérez

    Javier Alejandro Albornoz Pérez

    student•
    hace 3 años

    Solución tomando en cuenta los meses de 30 días:

    addDate(amount: number, type: 'YY' | 'DD' | 'MM') { if (type === 'DD') { this.day += amount; if (this.day > 30) { this.day -= 30; this.month += 1; } } if (type === 'MM') { this.month += amount; if (this.month > 12) { this.month -= 11; this.year += 1; } } if (type === 'YY') { this.year += amount; } return `${this.year}/${this.month}/${this.day}`; } }
    Kellbis Salazar

    Kellbis Salazar

    student•
    hace un año

    Este fue lo que me puse a implementar, hice una validacion para que al momento de crear una fecha el mes no sea mayor a 12 y dia no sea mayor a 31 solo para implementar algo de innovacion al codigo.

    Tambien aproveche de usar el inusable switch y agregar logica de suma de dias, meses y years:

    Victor Perozo

    Victor Perozo

    student•
    hace 2 años
    class Dte {    year: number;    month: number;    day: number;        constructor(year: number, month: number, day: number) {        this.year = year;        this.month = month;        this.day = day;    }     toString(): string {        return ${this.day}-${this.month}-${this.year};    }     add(amount: number, type: 'days' | 'months' | 'years') {        if(type === 'days') {            this.day += amount;        }        if(type === 'months') {            this.month += amount;        }        if(type === 'years') {            this.year += amount;        }         const newyear = () => {            if(this.month === 13) {                this.month = 1;                this.year += 1;            }            return this;        }                if(this.day === 32) {            this.day = 1;            this.month += 1;            newyear();        }    };            } const dte = new Dte(2022, 12, 31);dte.add(1, 'days');console.log(dte.toString());
    Andrés Corral

    Andrés Corral

    student•
    hace un año

    Para hacer el add mas eficiente y escalable

    add(amount: number, type: 'day' | 'month' | 'year'){       

    if (['day', 'month', 'year'].includes(type)) {            this[type] += amount;        } else {           

    throw new Error('Invalid type provided');        }            }

    Paula Catalina Delgado Almendrales

    Paula Catalina Delgado Almendrales

    student•
    hace 3 años

    Mi solución:

    export class MyDate{ year: number; month: number; day: number;

    constructor(year: number,month: number,day: number){ this.year= year; this.month =month; this.day = day; }

    printFormat(): string{ return ${this.day}/${this.month}/${this.year}; } add(amount: number, type: 'days'|'months'|'years'){ if(type==='days'){ if (this.month == 12) { let diaMayor = 31; let diasRestantes = diaMayor - this.day; let diferencia = amount - diasRestantes if(diferencia != 0 ){ this.day -= this.day; this.day += diferencia; this.month=0 this.month+=1; this.year+=1; } if(diferencia==0){ this.day += amount ; } if(diferencia >=32){ this.day = diferencia - diaMayor; this.day =this.day + 1; // this.month=0 this.month+=1; return this.day ; } return this.day; return this.month; return this.year

    } if (this.month == 2) { let diaMayor = 28; let diasRestantes = diaMayor - this.day; let diferencia = amount - diasRestantes if(diferencia != 0 ){ this.day -= this.day; this.day += diferencia; this.month+=1; } if(diferencia==0){ this.day += amount ; } if(diferencia >=29){ this.day = diferencia - diaMayor; this.day =this.day + 1; this.month+=2; return this.day ; } return this.day; return this.month; return this.year } if(this.month==12 && this.day<31){ let diaMayor=31; let diasRestantes = diaMayor - this.day; let diferencia = amount - diasRestantes if(diferencia != 0 ){ this.day -= this.day; this.day += diferencia; this.month=0; this.month+=1; this.year +=1; } if(diferencia==0){ this.day += amount ; } if(diferencia >=32){ this.day = diferencia - diaMayor; this.day =this.day + 1; this.month+=2; return this.day ; } return this.day; return this.month; return this.year } let diaMayor=31; let diasRestantes = diaMayor - this.day; let diferencia = amount - diasRestantes console.log(diaMayor,diasRestantes,diferencia,this.day); if(diferencia > 0){ if(diferencia >=32){ this.day = diferencia - diaMayor; this.day =this.day + 1; this.month+=2; return this.day ; } if(diferencia != 0 ){ this.day -= this.day; this.day += diferencia; this.month+=1; } if(diasRestantes == 0){ this.day =0; this.day + amount; this.month +=0 } if (this.month==12 && this.day>=31) { this.day = 0 this.month = 0; this.month +=1 this.year += 1 this.day += amount; } }else if(diferencia < 0){ this.day += amount; } } if(type==='months'){ if(this.month>=12){ this.year += 1; for (let index = 0; this.month>=12; index++) { this.month = 0; this.month+=1; } return this.month; } this.month+=amount; } if(type==='years'){ this.year+=amount; }

    } } const myDate = new MyDate(2020,2,25);

    console.log('Mi fecha de nacimiento es: ' ,myDate.printFormat());

    myDate.add(10,'days');

    console.log('Mi fecha final1 es: ', myDate.printFormat()); const myDate2 = new MyDate(2020,2,25); myDate2.add(10,'months');

    console.log('Mi fecha final2 es: ', myDate2.printFormat()); const myDate3 = new MyDate(2020,2,25); myDate3.add(10,'years');

    console.log('Mi fecha final3 es: ', myDate3.printFormat());

    Jose Gregorio  Sarabia Lugo

    Jose Gregorio Sarabia Lugo

    student•
    hace 3 años
    export class MyDate { year : number; month: number; day: number; constructor(year: number, month: number, day: number) { this.year = year; this.month = month; this.day = day; } monthArray = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] printFormat(): string { return `${this.day}-${this.monthArray[this.month]}-${this.year}`; } add(amount: number, type: 'day' | 'month' | 'year') { this[type]+= amount; return this.printFormat(); } } const date = new MyDate(2013,11, 6); console.log(date.printFormat()); // 6-December-2013 console.log(date.add(-4, 'month')); // 6-August-2013
    Johan Sebastian

    Johan Sebastian

    student•
    hace 3 meses
    class MyDate { year: number; month: number; day: number; constructor(year: number, month: number, day: number) { this.year = year; this.month = month; this.day = day; } printFormat(): string { return `${this.day}/${this.month}/${this.year}`; } add(amount: number, type: 'days' | 'months' | 'years') { if (type === 'days') { if (amount < 31) { this.day += amount; } else if (amount >= 31) { amount = 1; this.day = amount; this.month += amount; } } else if (type === 'months') { if (amount < 12) { this.month += amount; } else if (amount >= 12) { amount = 1; this.year += amount; this.day = amount; this.month = amount; } } else if (type === 'years') { this.year += amount; } } } const myDate = new MyDate(2002, 4, 10); console.log('Date =>', myDate.printFormat()); myDate.add(2, 'days'); console.log('Date =>', myDate.printFormat()); myDate.add(31, 'days'); console.log('Date =>', myDate.printFormat()); myDate.add(11, 'months'); console.log('Date =>', myDate.printFormat()); myDate.add(12, 'months'); console.log('Date =>', myDate.printFormat());
    Pedro Carreño

    Pedro Carreño

    student•
    hace 3 años

    Cuando resulta mas conveniente usar clases sobre usar funciones?

      Jose Ever Muñoz Muñoz

      Jose Ever Muñoz Muñoz

      student•
      hace 2 años

      Las clases son para usarse como moldes cuando necesites crear muchas veces una programación o una programación muy similar vas a poder reutilizar las clases, las funciones se usan para cosas más específicas como convertir un string a entero o sumar dos números, cosas menos complejas

    Valentina Hernández

    Valentina Hernández

    student•
    hace 6 meses

    ¿Qué es un método?

    Un método es como una acción que puede hacer un objeto. Es una función que vive dentro de una clase y le dice al objeto qué hacer.

    Juan David Marin Rodriguez

    Juan David Marin Rodriguez

    student•
    hace 8 meses

    De esta manera se puede validar si llegamos a un mes máximo se suma el año y un día máximo se suma mes.

    Diego Raciel Ortega Hernandez

    Diego Raciel Ortega Hernandez

    student•
    hace 3 años

    Los constructores son los que definen los parámetros de la clase. Es decir, cuando creamos una instancia los argumentos que le pasamos van dirigidos al constructor y luego esos parámetros guardados en los atributos se utilizan en los métodos de la clase.

    Corriganme si estoy mal o entendí mal.

      oscar.rusinque

      oscar.rusinque

      student•
      hace 2 años

      Según lo que que entiendo, el constructor es un método especial donde se inicializan los parármetros de de la clase , cuando se irealiza una nueva instancia se llama automaticamente el constructor para inicializar dichos parametros de la clase con los valores proporcionados por la nueva instancia y así ya se puede usar en los demás métodos de la clase. En el constructor no necesariamente se tienen que inicializar los parámetros, se pueden inicializar al declararlos o en otros métodos tmbien los constructores como un método tiene su visibilidad

    Winslow Taylor Geldres Oliveros

    Winslow Taylor Geldres Oliveros

    student•
    hace 2 años
    Ronaldo Delgado

    Ronaldo Delgado

    student•
    hace 2 años

    excelente video

    Michael Martinez

    Michael Martinez

    company_admin•
    hace 3 años

    Esta libreria es muy util para fechas y monedas.. 100% recomendada. https://www.npmjs.com/package/moment

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