Recorrido
Aprende Lua
Aprende Lua 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.
49,057+ 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
3 secciones214 lecciones167 retos1,071 preguntas de quiz01Sección 1
Fundamentals
The first section in Lua for absolute beginners.EMPEZAR A APRENDERIntroducción
3 lecciones216- 01El lenguajeReto
- 02¡Hola mundo!RetoQuizAudio
- 03ComentariosQuizAudio
Variables y tipos de datos
8 lecciones754- 01¿Qué es una variable?RetoQuizAudio
- 02NúmerosRetoQuizAudio
- 03StringsRetoQuizAudio
- 04BooleanosRetoQuizAudio
- 05El valor 'nil'RetoQuizAudio
- 06La función type()RetoQuizAudio
- 07Convenciones de nomenclaturaQuizAudio
- 08Resumen - Perfil de personajeReto
Operadores 1: Aritmética y Concatenación
6 lecciones636- 01Operadores aritméticosRetoQuizAudio
- 02Operador de móduloRetoQuizAudio
- 03Operador de exponenciaciónRetoQuizAudio
- 04Concatenación de stringsRetoQuizAudio
- 05Precedencia de operadoresRetoQuizAudio
- 06Resumen: Cálculos sencillosReto
Operadores 2 Relacionales y Lógicos
8 lecciones651- 01Operadores de IgualdadRetoQuizAudio
- 02Operadores RelacionalesRetoQuizAudio
- 03El Operador 'and'RetoQuizAudio
- 04El Operador 'or'RetoQuizAudio
- 05El Operador 'not'RetoQuizAudio
- 06Evaluación de CortocircuitoQuizAudio
- 07Valores Truthy y FalsyQuizAudio
- 08Resumen - Lógica SimpleReto
Salida básica
9 lecciones954- 01Imprimir literalesRetoQuizAudio
- 02Imprimir variablesRetoQuizAudio
- 03Imprimir múltiples valoresRetoQuizAudio
- 04Combinar cadenas y variablesRetoQuizAudio
- 05La función tostring()RetoQuizAudio
- 06EntradaRetoQuizAudio
- 07Conversión de tipos (Cast)RetoQuizAudio
- 08Resumen - Informe de estadoReto
- 09Resumen - Hasta 120Reto
Proyecto: Mostrar estadísticas del personaje
Proyecto5 lecciones1- 01Mensaje de bienvenidaReto
- 02Declarar estadísticas del personajeProyecto
- 03Mostrar estadísticas básicasProyecto
- 04Añadir un flag booleanoProyecto
- 05Resumen finalProyecto
Lógica condicional básica
4 lecciones423- 01La sentencia if-thenRetoQuizAudio
- 02La sentencia if-then-elseRetoQuizAudio
- 03La sentencia elseifRetoQuizAudio
- 04Resumen - Cofre del tesoroReto
Fundamentos de manipulación de strings
6 lecciones638- 01string.len()RetoQuizAudio
- 02string.upper & string.lowerRetoQuizAudio
- 03string.sub()RetoQuizAudio
- 04string.rep()RetoQuizAudio
- 05string.find()RetoQuizAudio
- 06Repaso - Formatear nombre de usuarioReto
Fundamentos de las funciones
6 lecciones636- 01Declarar una funciónRetoQuizAudio
- 02Llamar a una funciónRetoQuizAudio
- 03Funciones con parámetrosRetoQuizAudio
- 04Funciones con múltiples parámetrosRetoQuizAudio
- 05La sentencia 'return'RetoQuizAudio
- 06Repaso - Calculadora de áreaReto
Tablas Parte 1: Estilo de lista
8 lecciones752- 01¿Qué es una tabla?QuizAudio
- 02Crear una tablaRetoQuizAudio
- 03Acceder a elementos por índiceRetoQuizAudio
- 04Modificar elementos por índiceRetoQuizAudio
- 05El operador de longitud '#'RetoQuizAudio
- 06table.insert()RetoQuizAudio
- 07table.remove()RetoQuizAudio
- 08Resumen - Gestionar miembros del grupoReto
Tablas 2: Estilo Diccionario
7 lecciones648- 01Pares Clave-ValorQuizAudio
- 02Creación de Tablas Estilo DiccionarioRetoQuizAudio
- 03Acceso - Notación de CorchetesRetoQuizAudio
- 04Acceso con Notación de PuntoRetoQuizAudio
- 05Añadir y Modificar ParesRetoQuizAudio
- 06Eliminar Pares con nilRetoQuizAudio
- 07Resumen - Propiedades de ElementosReto
Conceptos básicos de bucles
6 lecciones636- 01El bucle whileRetoQuizAudio
- 02El bucle repeat-untilRetoQuizAudio
- 03El bucle for numéricoRetoQuizAudio
- 04Bucle for con pasoRetoQuizAudio
- 05La sentencia 'break'RetoQuizAudio
- 06Resumen - Cuenta regresivaReto
Proyecto: Tienda de pociones sencilla
Proyecto6 lecciones1- 01Configuración del proyectoReto
- 02Añadir una pociónProyecto
- 03Mostrar el inventarioProyecto
- 04Calcular el valor total del stockProyecto
- 05Buscar una poción específicaProyecto
- 06Vender una pociónProyecto
Ámbito de las variables
5 lecciones330- 01Variables globalesQuizAudio
- 02Variables localesRetoQuizAudio
- 03¿Por qué usar variables locales?QuizAudio
- 04Ámbito y bloquesRetoQuizAudio
- 05Repaso - El acertijo del ámbitoReto
Desafíos finales
3 lecciones3- 01Repaso - Turno del jugadorReto
- 02Repaso - Base de datos simpleReto
- 03Repaso - Suma de números paresReto
02Sección 2
Logic & Flow
Develop problem-solving skills and create dynamic, interactive programsEMPEZAR A APRENDERIteración avanzada de tablas
4 lecciones423- 01Iterar con pairs()RetoQuiz
- 02Iterar con ipairs()RetoQuiz
- 03pairs() vs. ipairs()RetoQuiz
- 04Resumen - Ficha de personajeReto
Más funciones de la librería table
5 lecciones430- 01table.concat()RetoQuiz
- 02Construcción de tablas y unpack()RetoQuiz
- 03table.sort()RetoQuiz
- 04Ordenamiento personalizado con funcionesQuiz
- 05Repaso - Tabla de puntuaciones altasReto
Conceptos avanzados de funciones
6 lecciones539- 01Retorno de múltiples valoresQuiz
- 02Funciones variádicas (...)RetoQuiz
- 03Funciones como valores de primera claseRetoQuiz
- 04Funciones anónimasRetoQuiz
- 05¿Qué es un Closure?RetoQuiz
- 06Resumen - Manejador de eventos simpleReto
Introducción a las Metatablas
8 lecciones757- 01¿Qué es una Metatabla?Quiz
- 02setmetatable y getmetatableRetoQuiz
- 03El metamétodo __indexRetoQuiz
- 04El metamétodo __newindexRetoQuiz
- 05El metamétodo __tostringRetoQuiz
- 06Metamétodos aritméticos - Parte 1RetoQuiz
- 07Metamétodos aritméticos - Parte 2RetoQuiz
- 08Resumen - Tablas de solo lecturaReto
Proyecto: Motor de aventura de texto
Proyecto8 lecciones1- 01Configuración del proyecto: La habitaciónReto
- 02Conectar habitacionesProyecto
- 03Estado del jugadorProyecto
- 04El bucle del juegoProyecto
- 05Manejo de la entrada del usuarioProyecto
- 06Mover al jugadorProyecto
- 07Manejo de movimientos no válidosProyecto
- 08Mostrar las salidasProyecto
Manejo de errores
3 lecciones216- 01La función error()Quiz
- 02Llamadas protegidas con pcall()RetoQuiz
- 03Resumen - División seguraReto
Manipulación avanzada de cadenas
6 lecciones641- 01string.gsub() para sustituciónRetoQuiz
- 02Introducción a patrones de cadenasRetoQuiz
- 03string.find()RetoQuiz
- 04string.match()RetoQuiz
- 05Iteración con string.gmatch()RetoQuiz
- 06Resumen - Analizador de archivos LogReto
Proyecto: Lista de contactos
Proyecto7 lecciones1- 01Configuración del proyectoReto
- 02El bucle principalProyecto
- 03Añadir un contactoProyecto
- 04Listar todos los contactosProyecto
- 05Buscar un contactoProyecto
- 06Eliminar un contactoProyecto
- 07Manejo de entradas no válidasProyecto
Corrutinas para principiantes
7 lecciones638- 01¿Qué es una corrutina?Quiz
- 02coroutine create y resumeRetoQuiz
- 03Pausar con coroutine.yield()RetoQuiz
- 04resume y yieldRetoQuiz
- 05Comprobar el estado de la corrutinaRetoQuiz
- 06Resumen - Generador de númerosReto
- 07Resumen - Matemática de vectoresReto
03Sección 3
Object Oriented Programming
Discover how to organize code with classes, objects, and reusable structuresEMPEZAR A APRENDEREl concepto de 'self'
5 lecciones532- 01Tablas con funcionesRetoQuiz
- 02'self' explícitoRetoQuiz
- 03La sintaxis de dos puntosRetoQuiz
- 04Punto vs. dos puntosRetoQuiz
- 05Resumen - Punto en movimientoReto
Patrón de prototipo de clase
6 lecciones641- 01El concepto de prototipoRetoQuiz
- 02Vinculación con __indexRetoQuiz
- 03El constructor :new()RetoQuiz
- 04Inicialización de atributosRetoQuiz
- 05Instancias independientesRetoQuiz
- 06Resumen - Fábrica de cochesReto
Estado y Comportamiento de los Objetos
7 lecciones748- 01Variables de InstanciaRetoQuiz
- 02Métodos GetterRetoQuiz
- 03Métodos SetterRetoQuiz
- 04Propiedades CalculadasRetoQuiz
- 05Formateo de StringsRetoQuiz
- 06Comprobaciones de IgualdadRetoQuiz
- 07Resumen - Calificación del EstudianteReto
Proyecto: Banco Digital
Proyecto7 lecciones1- 01Configuración del proyectoReto
- 02Método de depósitoProyecto
- 03Método de retiroProyecto
- 04Obtener saldoProyecto
- 05Información de la cuentaProyecto
- 06Transferir fondosProyecto
- 07Prueba bancaria finalProyecto
Sobrecarga de operadores en POO
5 lecciones531- 01Sumar objetosRetoQuiz
- 02Restar objetosRetoQuiz
- 03Concatenar objetosRetoQuiz
- 04Comparar objetos (<, >)RetoQuiz
- 05Resumen - Matemáticas de la billeteraReto
Fundamentos de la herencia
6 lecciones643- 01Configuración de la herenciaRetoQuiz
- 02Herencia de métodosRetoQuiz
- 03Extender el constructorRetoQuiz
- 04Añadir métodos hijosRetoQuiz
- 05Compartido vs. ÚnicoRetoQuiz
- 06Resumen: Jerarquía de formasReto
Polimorfismo y Sobrescritura
6 lecciones640- 01Sobrescritura de métodosRetoQuiz
- 02Llamar a métodos del padreRetoQuiz
- 03Duck TypingRetoQuiz
- 04Interfaz comúnRetoQuiz
- 05Comprobación de tiposRetoQuiz
- 06Repaso - Roles de empleadosReto
Encapsulamiento
6 lecciones644- 01Convenciones de nomenclaturaRetoQuiz
- 02Closures para privacidadRetoQuiz
- 03Acceso mediante ClosuresRetoQuiz
- 04Tablas de solo lecturaRetoQuiz
- 05Lógica de validaciónRetoQuiz
- 06Resumen - Bóveda seguraReto
Composición y Mixins
6 lecciones642- 01Relación "Tiene-Un"RetoQuiz
- 02DelegaciónRetoQuiz
- 03Mixins simplesRetoQuiz
- 04Aplicación de múltiples MixinsRetoQuiz
- 05Mixins vs. HerenciaRetoQuiz
- 06Resumen - Ensamblaje de robotsReto
Proyecto: Gestor de formas
Proyecto7 lecciones1- 01Configuración del proyectoReto
- 02Clase RectánguloProyecto
- 03Clase CírculoProyecto
- 04Método de perímetroProyecto
- 05Colección de formasProyecto
- 06Área totalProyecto
- 07Filtrar formasProyecto
Patrones de diseño (Lite)
5 lecciones532- 01Funciones FactoryRetoQuiz
- 02Tabla SingletonRetoQuiz
- 03Patrón IteradorRetoQuiz
- 04Observer (Listener)RetoQuiz
- 05Resumen - Logger FactoryReto
Desafíos finales
4 lecciones4- 01Repaso - Sistema de inventarioReto
- 02Repaso - Gestor de usuariosReto
- 03Repaso - Seguimiento de puntuaciónReto
- 04Verificación final de OOPReto
Por qué aprender Lua con Coddy
- Curso de Lua 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 Lua 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 Lua, 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 Lua.
Preguntas frecuentes sobre aprender Lua
¿Lua es fácil de aprender?
Sí, puedes empezar con Lua 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 Lua?
Los fundamentos de Lua 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 Lua online gratis?
Coddy ofrece un curso online gratis de Lua con lecciones, retos de código, cuestionarios y proyectos. No necesitas instalar nada: todo funciona en el navegador.
¿Cómo puedo aprender Lua 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 Lua que mirando videos largos.
¿Recibo un certificado de Lua al terminar?
Sí. Al completar el curso de Lua 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 Lua?
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.