PopularRecorrido
Aprende JavaScript
Aprende JavaScript desde cero con un curso online gratis e interactivo. Domina variables, condicionales, bucles, funciones, estructuras de datos y organización de proyectos con retos prácticos, proyectos reales, pistas de IA y un certificado al terminar.
238,854+ codders inscritos
Este recorrido incluye
Ayuda de codificación con IA
Lecciones interactivas prácticas
Narración de audio en cada lección
Cuestionarios para poner a prueba tu conocimiento
Certificado gratuito de finalización
Programa
4 secciones271 lecciones219 retos1,458 preguntas de quiz01Sección 1
Fundamentos
Construye una base sólida con conceptos esenciales y habilidades básicasEMPEZAR A APRENDERIntroducción
4 lecciones223- 01El lenguajeReto
- 02¡Hola, mundo!RetoQuizAudio
- 03ComentariosQuizAudio
- 04Estructura del códigoQuizAudio
Variables
7 lecciones1247- 01NúmerosRetoMaestríaQuizAudio
- 02StringRetoMaestríaQuizAudio
- 03BooleanRetoMaestríaQuizAudio
- 04Convenciones de nomenclaturaRetoMaestríaQuizAudio
- 05Variables vacíasRetoQuizAudio
- 06Resumen - Inicializar variablesReto
- 07ConstantesRetoMaestríaQuizAudio
Operadores Parte 1
6 lecciones1037- 01Operadores aritméticosRetoMaestríaQuizAudio
- 02Operador móduloRetoMaestríaQuizAudio
- 03Atajos aritméticosRetoMaestríaQuizAudio
- 04Operadores de comparaciónRetoMaestríaQuizAudio
- 05Igualdad estricta vs. débilRetoQuizAudio
- 06Resumen - Matemáticas simplesReto
Operadores Parte 2
5 lecciones831- 01Operadores lógicos Parte 1RetoMaestríaQuizAudio
- 02Operadores lógicos Parte 2RetoMaestríaQuizAudio
- 03Repaso - Lógica simpleReto
- 04Operadores lógicos Parte 3RetoMaestríaQuizAudio
- 05Coerción de tiposRetoQuizAudio
Toma de decisiones
5 lecciones729- 01Sentencia IfRetoMaestríaQuizAudio
- 02If - ElseRetoMaestríaQuizAudio
- 03Repaso - Calculadora simpleReto
- 04If - Else anidadosRetoQuizAudio
- 05Sentencia SwitchRetoQuizAudio
E/S Básica
6 lecciones931- 01SalidaRetoMaestríaQuizAudio
- 02Salida con variablesRetoMaestríaQuizAudio
- 03Conversión de tipos - Parte 1RetoMaestríaQuizAudio
- 04Conversión de tipos - Parte 2RetoQuizAudio
- 05Resumen - Hasta 120Reto
- 06Resumen - Verdadero o FalsoReto
Calculadora para dividir la cuenta
Proyecto4 lecciones1- 01Mensaje de bienvenidaReto
- 02Cálculo de la propina y el totalProyecto
- 03Dividir la cuentaProyecto
- 04Salida con formatoProyecto
Bucles
7 lecciones1345- 01Bucle ForRetoMaestríaQuizAudio
- 02Bucle WhileRetoMaestríaQuizAudio
- 03BreakRetoMaestríaQuizAudio
- 04ContinueRetoMaestríaQuizAudio
- 05Repaso - FactorialReto
- 06Bucle Do WhileRetoMaestríaQuizAudio
- 07Bucle anidadoRetoMaestríaQuizAudio
Funciones
8 lecciones1250- 01Declarar una funciónRetoMaestríaQuizAudio
- 02ArgumentosRetoMaestríaQuizAudio
- 03RetornoRetoMaestríaQuizAudio
- 04Repaso - Función SigmaReto
- 05Expresión de funciónRetoMaestríaQuizAudio
- 06Parámetros por defectoQuizAudio
- 07Funciones de flechaRetoMaestríaQuizAudio
- 08Repaso - Función de validaciónReto
FizzBuzz con un giro
Proyecto4 lecciones1- 01Descripción general del juegoReto
- 02La función FizzBuzzProyecto
- 03Iterando los númerosProyectoAudio
- 04Añadiendo el giroProyecto
Arrays Parte 1
6 lecciones1037- 01Declarar un ArrayRetoMaestríaQuizAudio
- 02Acceder a elementos de un ArrayRetoMaestríaQuizAudio
- 03Modificar ArraysRetoQuizAudio
- 04Métodos de Array Parte 1RetoMaestríaQuizAudio
- 05Métodos de Array Parte 2RetoMaestríaQuizAudio
- 06Resumen - Procesador de ArraysReto
Arrays Parte 2
8 lecciones1254- 01Iterar sobre ArraysRetoQuizAudio
- 02El método forEachRetoQuizAudio
- 03Bucle for...ofRetoMaestríaQuizAudio
- 04Resumen - Contador PReto
- 05Slicing de ArraysRetoMaestríaQuizAudio
- 06Métodos de Arrays Parte 3RetoMaestríaQuizAudio
- 07Métodos de Arrays Parte 4RetoMaestríaQuizAudio
- 08Comprobación de pertenenciaRetoQuizAudio
Rastreador de lista de compras
Proyecto4 lecciones1- 01Descripción general del proyectoReto
- 02Añadir elementoProyecto
- 03Eliminar elementoProyecto
- 04Ver listaProyecto
Desafíos finales
3 lecciones37- 01Pirámide de númerosRetoQuizAudio
- 02Duplicar los imparesReto
- 03Qué comprarReto
02Sección 2
Lógica y Flujo
Desarrolla habilidades de resolución de problemas y crea programas dinámicos e interactivosEMPEZAR A APRENDERStrings en profundidad
5 lecciones630- 01Fundamentos de stringsQuiz
- 02Iterar sobre stringsRetoMaestríaQuiz
- 03Template LiteralsRetoQuiz
- 04Métodos de stringsRetoMaestríaQuiz
- 05Resumen - String WeaverReto
Arreglos multidimensionales
9 lecciones1452- 01Conceptos básicos de arreglos 2DQuiz
- 02Acceso a elementos de arreglos 2DRetoMaestríaQuiz
- 03Bucles anidados con arreglos 2DRetoMaestríaQuiz
- 04Resumen - Arreglos 2DReto
- 05Suma y resta de matricesRetoMaestríaQuiz
- 06Arreglos irregulares (Jagged Arrays)RetoMaestríaQuiz
- 07Arreglos 3D y más alláRetoMaestríaQuiz
- 08Patrones comunes en arreglos 2DRetoMaestríaQuiz
- 09Resumen - Todo sobre arreglosReto
JSON Parte 1
7 lecciones944- 01¿Qué es un JSON?Quiz
- 02Comprobar si existe una claveRetoMaestríaQuiz
- 03Métodos de objetoRetoMaestríaQuiz
- 04El Spread Operator Parte 1Quiz
- 05El Spread Operator Parte 2RetoMaestríaQuiz
- 06Eliminar clavesRetoMaestríaQuiz
- 07Resumen - Manipular claves de JSONReto
JSON Parte 2
6 lecciones530- 01Iterar sobre JSONRetoQuiz
- 02JSON anidadoRetoQuiz
- 03Encadenamiento opcional en JSONQuiz
- 04Copia superficial y profundaRetoQuiz
- 05Resumen - Tienda de bicicletasReto
- 06Resumen - Sistema solarReto
Conjuntos Parte 1
8 lecciones749- 01¿Qué es un conjunto?RetoQuiz
- 02Iterar sobre conjuntosQuiz
- 03Añadir un elementoRetoQuiz
- 04Eliminar un elementoRetoQuiz
- 05Comprobar si un elemento existeRetoQuiz
- 06Tamaño y Is EmptyRetoQuiz
- 07Copy y ClearRetoQuiz
- 08Resumen - Conceptos básicos de conjuntosReto
Conjuntos Parte 2
6 lecciones637- 01Matemáticas - Unión de conjuntosRetoQuiz
- 02Matemáticas - Intersección de conjuntosRetoQuiz
- 03Matemáticas - Diferencia de conjuntosRetoQuiz
- 04Matemáticas - Diferencia simétricaRetoQuiz
- 05Subconjuntos y superconjuntosRetoQuiz
- 06Repaso - Agrupar amigosReto
Sistema de Gestión de Biblioteca
Proyecto5 lecciones1- 01Descripción general del proyectoReto
- 02Añadir librosProyecto
- 03Buscar por títuloProyecto
- 04Filtrar por géneroProyecto
- 05Marcar como leídoProyecto
Temas interesantes de Arrays
4 lecciones422- 01Desestructuración de ArraysRetoQuiz
- 02Sintaxis Spread en ArraysRetoQuiz
- 03Arrays dispersosRetoQuiz
- 04Resumen - Taller de ArraysReto
Métodos avanzados de Arrays
9 lecciones761- 01Los métodos Join y SplitQuiz
- 02El método MapRetoMaestríaQuiz
- 03El método FilterRetoQuiz
- 04El método ReduceRetoQuiz
- 05Encadenamiento de métodos de ArraysRetoQuiz
- 06¿Son iguales ForEach y Map?Quiz
- 07El método SortRetoQuiz
- 08Los métodos Find y FindIndexQuiz
- 09Resumen - El maestro del encadenamientoReto
Gestionar el sistema del festival
Proyecto6 lecciones1- 01Descripción general del proyectoReto
- 02Añadir películas y sedesProyecto
- 03Añadir proyeccionesProyecto
- 04Comprar entradasProyecto
- 05Calificar películasProyecto
- 06Cancelar proyeccionesProyecto
03Sección 3
Introducción a TypeScript
Introducción a TypeScript después de haber aprendido sobre JavaScriptEMPEZAR A APRENDERPrimeros pasos con TS
5 lecciones232- 01¿Qué es TypeScript?Quiz
- 02¿Por qué usar TypeScript?Quiz
- 03Tu primer código en TypeScriptRetoQuiz
- 04Proceso de compilación y erroresQuiz
- 05Resumen: Introducción a TSReto
Tipos principales
7 lecciones748- 01Tipos básicos: str, num, booleanRetoQuiz
- 02El tipo 'any': Vía de escapeRetoQuiz
- 03El tipo 'unknown'RetoQuiz
- 04Trabajando con 'null' y 'undef'RetoQuiz
- 05Inferencia de tipos en acciónRetoQuiz
- 06Anotaciones de tipo explícitasRetoQuiz
- 07Resumen: Práctica de tipos principalesReto
Estructura de datos: Arrays y Tuplas
9 lecciones862- 01Arrays tipadosRetoQuiz
- 02Modificador 'readonly' para ArraysRetoQuiz
- 03¿Qué es una Tupla?Quiz
- 04Declaración y acceso a TuplasRetoQuiz
- 05Desestructuración de TuplasRetoQuiz
- 06Tuplas ReadonlyRetoQuiz
- 07Arrays tipados multidimensionalesRetoQuiz
- 08Operador Spread con ArraysRetoQuiz
- 09Resumen: Arrays y TuplasReto
Trabajando con funciones
8 lecciones855- 01Tipado de parámetros y valores de retornoRetoQuiz
- 02Tipado de funciones de flechaRetoQuiz
- 03El tipo de retorno 'void'RetoQuiz
- 04Parámetros opcionales con '?'RetoQuiz
- 05Valores de parámetros por defectoRetoQuiz
- 06Tipado de parámetros restRetoQuiz
- 07Definición de tipos de funcionesRetoQuiz
- 08Repaso: Construcción de funciones tipadasReto
Tipos: Alias, Uniones e Intersecciones
7 lecciones751- 01Alias de tipos para primitivosRetoQuiz
- 02Tipos de unión ('|')RetoQuiz
- 03Trabajando con tipos de uniónRetoQuiz
- 04Tipos literalesRetoQuiz
- 05Tipos de intersección ('&')RetoQuiz
- 06Combinando alias de tiposRetoQuiz
- 07Repaso: Combinaciones de tipos avanzadasReto
Tipado de Objetos e Interfaces
8 lecciones757- 01Anotaciones de tipo de objeto en líneaRetoQuiz
- 02Alias de tipo para objetosRetoQuiz
- 03Introducción a las interfacesRetoQuiz
- 04Interfaces vs. Alias de tipoQuiz
- 05Propiedades opcionales y ReadonlyRetoQuiz
- 06Extensión de interfaces y tiposRetoQuiz
- 07Agregar métodos a interfacesRetoQuiz
- 08Repaso: Definición de estructuras de objetosReto
Proyecto: Una lista de tareas simple
Proyecto6 lecciones18- 01Proyecto: Definir la estructura TaskRetoQuiz
- 02Función para agregar una tareaProyecto
- 03Función para cambiar el estado de la tareaProyecto
- 04Función: Listar tareas por estadoProyecto
- 05Función: Imprimir resumen de tareasProyecto
- 06Poniéndolo todo juntoProyecto
Enums
6 lecciones638- 01¿Qué es un Enum numérico?RetoQuiz
- 02Uso de Enums numéricosRetoQuiz
- 03¿Qué es un Enum de string?RetoQuiz
- 04Uso de Enums de stringRetoQuiz
- 05Enums heterogéneosRetoQuiz
- 06Resumen: Uso de EnumsReto
Genéricos: Un primer vistazo
6 lecciones537- 01El problema que resuelven los genéricosQuiz
- 02Creación de una función de identidad genéricaRetoQuiz
- 03Uso de una función genéricaRetoQuiz
- 04Arrays genéricosRetoQuiz
- 05Interfaces genéricasRetoQuiz
- 06Repaso: Práctica de funciones genéricasReto
Proyecto: Gestión de inventario
Proyecto5 lecciones18- 01Proyecto: Ítem de inventario genéricoRetoQuiz
- 02Función: Agregar ítems al inventarioProyecto
- 03Función para buscar un ítem por IDProyecto
- 04Crear un tipo de inventario específicoProyecto
- 05Función para obtener detalles del ítemProyecto
Temas avanzados
6 lecciones642- 01Aserciones de tipoRetoQuiz
- 02Guardas de tipo: in & instanceofRetoQuiz
- 03El tipo 'never'RetoQuiz
- 04Tipos anulables ('strictNull')RetoQuiz
- 05Firmas de índice para objetosRetoQuiz
- 06Resumen: Ajuste de tiposReto
04Sección 4
Programación Orientada a Objetos
Descubre cómo organizar el código con clases, objetos y estructuras reutilizablesEMPEZAR A APRENDERObjetos y la palabra clave this
6 lecciones642- 01Repaso rápido: ObjetosRetoQuiz
- 02Agregar métodos a los objetosRetoQuiz
- 03Entendiendo la palabra clave thisRetoQuiz
- 04Funciones constructorasRetoQuiz
- 05La palabra clave newRetoQuiz
- 06Desafío de repasoReto
Organización del código
4 lecciones434- 01¿Qué son los módulos?RetoQuiz
- 02Exportar con exportRetoQuiz
- 03Importar con importRetoQuiz
- 04Exportaciones por defecto vs. nombradasRetoQuiz
Clases y Objetos
4 lecciones426- 01¿Qué es una Clase?RetoQuiz
- 02Crear InstanciasRetoQuiz
- 03Propiedades y MétodosRetoQuiz
- 04Desafío de RepasoReto
Métodos y gestión de estado
2 lecciones218- 01Métodos que modifican el estadoRetoQuiz
- 02Patrón de encadenamiento de métodosRetoQuiz
Encapsulamiento y Acceso
4 lecciones426- 01EncapsulamientoRetoQuiz
- 02Campos de clase públicos y privadosRetoQuiz
- 03Métodos privadosRetoQuiz
- 04Desafío de repasoReto
Proyecto: Una cuenta bancaria simple
Proyecto3 lecciones1- 01Clase BankAccountReto
- 02Depósitos y retirosProyecto
- 03Saldo como campo privadoProyecto
Herencia y la palabra clave extends
6 lecciones645- 01HerenciaRetoQuiz
- 02La relación "es-un"RetoQuiz
- 03La palabra clave extendsRetoQuiz
- 04El método super()RetoQuiz
- 05Heredar propiedades y métodosRetoQuiz
- 06Desafío de repasoReto
Organización del código OOP
1 lección19- 01Organizar clases en módulosRetoQuiz
Métodos y propiedades estáticos
4 lecciones425- 01Nivel de clase vs. Nivel de instanciaRetoQuiz
- 02Propiedades estáticasRetoQuiz
- 03Métodos de utilidad estáticosRetoQuiz
- 04Desafío de repasoReto
Polimorfismo
4 lecciones425- 01¿Qué es el polimorfismo?RetoQuiz
- 02Sobrescribir métodos heredadosRetoQuiz
- 03Uso de superRetoQuiz
- 04Desafío de repasoReto
Proyecto: Un renderizador de figuras
Proyecto4 lecciones1- 01Configuración: Clase Figura y exportaciónReto
- 02Herencia de la clase CírculoProyecto
- 03Sobrescritura y método de áreaProyecto
- 04Contador de figuras estáticoProyecto
Getters y Setters
4 lecciones426- 01Las palabras clave get y setRetoQuiz
- 02Propiedades computadasRetoQuiz
- 03Validación y efectos secundariosRetoQuiz
- 04Desafío de repasoReto
Composición vs. Herencia
3 lecciones328- 01La relación "tiene-un" vs. "es-un"RetoQuiz
- 02Los límites de la herencia profundaRetoQuiz
- 03Construcción de objetosRetoQuiz
Sistema de Gestión de Biblioteca
Proyecto3 lecciones1- 01Diseño de la BibliotecaReto
- 02Clase Libro con ComposiciónProyecto
- 03Validación del Autor del LibroProyecto
Desafíos finales
4 lecciones4- 01Creador de personajes de videojuegosReto
- 02Sistema de productos de E-commerceReto
- 03Sistema de gestión universitariaReto
- 04Sistema de dispositivos para el hogar inteligenteReto
Por qué aprender JavaScript con Coddy
- Curso de JavaScript online y gratis: sin instalación, sin configurar herramientas y sin barreras para empezar. Abre el navegador y practica desde la primera lección.
- Lecciones prácticas de JavaScript que van más allá de un tutorial: cada concepto viene con un reto para escribir código real y entenderlo haciendo.
- Las pistas de IA te ayudan cuando te bloqueas en un ejercicio de JavaScript, explicando el siguiente paso sin darte la solución completa.
- Certificado gratis de finalización para compartir en LinkedIn o añadir al CV como prueba de que completaste un curso interactivo de JavaScript.
Preguntas frecuentes sobre aprender JavaScript
¿JavaScript es fácil de aprender?
Sí, puedes empezar con JavaScript aunque no tengas experiencia previa. Coddy divide los conceptos en ejercicios cortos para que entiendas la sintaxis, practiques variables, condicionales, bucles, funciones, estructuras de datos y organización de proyectos y ganes confianza paso a paso.
¿Cuánto tiempo se tarda en aprender JavaScript?
Los fundamentos de JavaScript suelen aprenderse en una o dos semanas de práctica diaria. Para sentirte cómodo creando proyectos reales, reserva de uno a tres meses según tu ritmo y tu experiencia previa.
¿Dónde puedo aprender JavaScript online gratis?
Coddy ofrece un curso online gratis de JavaScript con lecciones, retos de código, cuestionarios y proyectos. No necesitas instalar nada: todo funciona en el navegador.
¿Cómo puedo aprender JavaScript rápido?
La forma más rápida es practicar todos los días. En Coddy alternas explicación breve, ejercicio inmediato y feedback con pistas de IA, así que pasas más tiempo escribiendo JavaScript que mirando videos largos.
¿Recibo un certificado de JavaScript al terminar?
Sí. Al completar el curso de JavaScript en Coddy recibes un certificado gratis de finalización que puedes compartir en LinkedIn o añadir a tu currículum.
¿Qué puedo crear después de aprender JavaScript?
Después del curso podrás crear scripts útiles, pequeñas apps, automatizaciones, juegos sencillos y proyectos que puedes mostrar en tu portfolio. También tendrás una base sólida para seguir con temas más avanzados.