PopularRecorrido
Aprende Java
Un curso de Java online, interactivo y gratis. Escribes Java en cada lección — sintaxis, clases y objetos, herencia, colecciones — con pistas de IA cuando algo no compila y un certificado gratis al terminar.
214,302+ codders inscritos
- Apto para principiantes
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
Sección 1
Fundamentos
Empezar secciónEmpezarExpandirContraerConstruye una base sólida con conceptos esenciales y habilidades básicasIntroduction
4 lecciones324- 01JavaReto
- 02Hello World!RetoQuizAudio
- 03CommentsQuizAudio
- 04Basic Program StructureRetoQuizAudio
Variables Part 1
5 lecciones940- 01NumbersRetoMaestríaQuizAudio
- 02StringRetoMaestríaQuizAudio
- 03BooleanRetoMaestríaQuizAudio
- 04charRetoMaestríaQuizAudio
- 05Type DeclarationRetoQuizAudio
Variables Part 2
5 lecciones333- 01ConstantsRetoQuizAudio
- 02Naming ConventionsQuizAudio
- 03Recap - Initialize VariablesReto
- 04Type Casting Part 1RetoQuizAudio
- 05Type Casting Part 2QuizAudio
Operators Part 1
7 lecciones956- 01Arithmetic OperatorsRetoMaestríaQuizAudio
- 02Modulo OperatorRetoMaestríaQuizAudio
- 03Increment/DecrementRetoMaestríaQuizAudio
- 04Post Increment/DecrementMaestríaQuizAudio
- 05Arithmetic ShortcutsRetoQuizAudio
- 06Comparison OperatorsRetoQuizAudio
- 07String ComparisonQuizAudio
Operators Part 2
5 lecciones834- 01Logical Operators Part 1RetoMaestríaQuizAudio
- 02Logical Operators Part 2RetoMaestríaQuizAudio
- 03Recap - Simple LogicReto
- 04Logical Operators Part 3RetoQuizAudio
- 05Logical Operators Part 4RetoMaestríaQuizAudio
Decision Making
6 lecciones1038- 01If StatementRetoMaestríaQuizAudio
- 02If - ElseRetoMaestríaQuizAudio
- 03Switch StatementRetoMaestríaQuizAudio
- 04Ternary OperatorRetoMaestríaQuizAudio
- 05Recap - If ElseReto
- 06Nested If - ElseRetoQuizAudio
Basic IO
5 lecciones723- 01System.out MethodsRetoMaestríaQuizAudio
- 02Formatting OutputRetoMaestríaQuizAudio
- 03Scanner ClassRetoQuizAudio
- 04Recap - Till 120Reto
- 05Recap - True or FalseReto
Calculator App
Proyecto4 lecciones1- 01Welcome MessageReto
- 02Getting NumbersProyecto
- 03Basic OperationsProyecto
- 04Formatted OutputProyecto
Loops
9 lecciones1362- 01For Loop Part 1RetoMaestríaQuizAudio
- 02While LoopRetoMaestríaQuizAudio
- 03Do While LoopRetoMaestríaQuizAudio
- 04BreakRetoMaestríaQuizAudio
- 05ContinueRetoMaestríaQuizAudio
- 06For Loop Part 2QuizAudio
- 07Nested LoopRetoMaestríaQuizAudio
- 08Infinite LoopQuizAudio
- 09Recap - Dynamic InputReto
Methods (Functions)
7 lecciones843- 01Declaring MethodsRetoMaestríaQuizAudio
- 02Method ParametersRetoQuizAudio
- 03Return TypesRetoQuizAudio
- 04Method OverloadingMaestríaQuizAudio
- 05Recap - Sigma FunctionReto
- 06Recap - Validation FunctionReto
- 07Void MethodsRetoQuizAudio
Arrays Basics
6 lecciones929- 01Declaring ArraysRetoQuizAudio
- 02Accessing ElementsRetoQuizAudio
- 03Modifying ArraysRetoMaestríaQuizAudio
- 04Array MethodsRetoMaestríaQuizAudio
- 05Recap - Product ArrayRetoMaestría
- 06Recap - Reversed ArrayReto
Iterating Over Arrays
3 lecciones423- 01Using For LoopRetoQuizAudio
- 02Enhanced For LoopRetoQuizAudio
- 03Common Array OperationsRetoMaestríaQuizAudio
String Operations
4 lecciones832- 01String Methods Part 1RetoMaestríaQuizAudio
- 02String Methods Part 2RetoMaestríaQuizAudio
- 03String FormattingRetoMaestríaQuizAudio
- 04String ComparisonRetoMaestríaQuizAudio
Final Challenges
3 lecciones38- 01Number PatternRetoQuizAudio
- 02Pattern FinderReto
- 03Student Grade CalculatorReto
Sección 2
Lógica y Flujo
Empezar secciónEmpezarExpandirContraerDomina la programación avanzada en Java con un enfoque en estructuras de datos y control de flujo. Aprende a trabajar con arrays complejos, collections, manejo de errores y gestión del tiempo.Arreglos Multidimensionales
9 lecciones1457- 01Básicos de Arreglos 2DRetoQuiz
- 02Accediendo a Elementos de Arreglos 2DRetoQuiz
- 03Bucles Anidados con Arreglos 2DRetoMaestríaQuiz
- 04Resumen - Arreglos 2DReto
- 05Suma y Resta de MatricesRetoMaestríaQuiz
- 06Arreglos IrregularesRetoMaestríaQuiz
- 07Arreglos 3D y Más AlláRetoMaestríaQuiz
- 08Patrones Comunes de Arreglos 2DRetoMaestríaQuiz
- 09Resumen - Todo Sobre ArreglosReto
HashMap Parte 1
6 lecciones637- 01¿Qué es un HashMap?Quiz
- 02Declarar un HashMapRetoQuiz
- 03Acceder a ValoresRetoQuiz
- 04Verificar si una Clave ExisteRetoMaestríaQuiz
- 05Modificar DiccionariosRetoQuiz
- 06Resumen - HashMapReto
HashMap Parte 2
6 lecciones1030- 01Métodos de HashMapRetoMaestríaQuiz
- 02Iterar con keySet()RetoMaestríaQuiz
- 03Iterar con entrySet()RetoMaestríaQuiz
- 04HashMap AnidadoRetoMaestríaQuiz
- 05Resumen - Gestionar AlmacénReto
- 06Resumen - Operaciones de HashMapReto
HashSet Parte 1
7 lecciones844- 01¿Qué es un HashSet?Quiz
- 02Agregando un elementoRetoQuiz
- 03Eliminando un elementoRetoQuiz
- 04Comprobando si existe un elementoRetoMaestríaQuiz
- 05Vacío y tamañoRetoMaestríaQuiz
- 06Limpiar y clonarRetoQuiz
- 07Resumen - HashSetReto
HashSet Parte 2
6 lecciones1146- 01Matemáticas - Unión de HashSetsRetoMaestríaQuiz
- 02Matemáticas - Intersección de HashSetRetoMaestríaQuiz
- 03Matemáticas - Diferencia de ConjuntosRetoMaestríaQuiz
- 04Matemáticas - Diferencia SimétricaRetoQuiz
- 05Subconjuntos y SuperconjuntosRetoMaestríaQuiz
- 06Iterando Sobre ConjuntosRetoMaestríaQuiz
Flujo de Control Avanzado
5 lecciones929- 01Sentencias EtiquetadasRetoMaestríaQuiz
- 02Expresión SwitchRetoMaestríaQuiz
- 03Coincidencia de PatronesRetoMaestríaQuiz
- 04Cláusulas de GuardiaRetoMaestríaQuiz
- 05Resumen - Flujo de ControlReto
Manejo Básico de Errores
4 lecciones630- 01Básicos de Try-CatchRetoMaestríaQuiz
- 02Bloque FinallyRetoQuiz
- 03Lanzamiento de ExcepcionesRetoMaestríaQuiz
- 04Excepciones PersonalizadasRetoQuiz
Operaciones Avanzadas con Cadenas
6 lecciones1145- 01Conceptos Básicos de StringBuilderRetoMaestríaQuiz
- 02Introducción a StringBufferRetoMaestríaQuiz
- 03Conceptos Básicos de Expresiones RegularesRetoMaestríaQuiz
- 04Coincidencia de Patrones con RegexRetoMaestríaQuiz
- 05Tokenizador de CadenasRetoMaestríaQuiz
- 06Formato Avanzado de CadenasRetoQuiz
Proyecto - Contador de Palabras Únicas
Proyecto4 lecciones123- 01Entrada y Almacenamiento de TextoReto
- 02Procesamiento de PalabrasProyectoQuiz
- 03Conteo de PalabrasProyectoQuiz
- 04Estadísticas AvanzadasProyectoQuiz
Fecha y Hora
6 lecciones646- 01Fundamentos de LocalDateRetoQuiz
- 02Operaciones con LocalTimeRetoQuiz
- 03Uso de LocalDateTimeRetoQuiz
- 04Period y DurationRetoQuiz
- 05Formato de fechasRetoQuiz
- 06Manejo de zonas horariasRetoQuiz
Sección 3
Programación Orientada a Objetos
Empezar secciónEmpezarExpandirContraerDescubre cómo organizar el código con clases, objetos y estructuras reutilizablesFundamentos de OOP
9 lecciones971- 01Archivos externosRetoQuiz
- 02Introducción a la OOPRetoQuiz
- 03Clases vs. ObjetosRetoQuiz
- 04La palabra clave thisRetoQuiz
- 05MétodosRetoQuiz
- 06Campos (Atributos)RetoQuiz
- 07Método constructorRetoQuiz
- 08Sobrecarga de constructoresRetoQuiz
- 09Resumen - Calculadora simpleReto
Modificadores de acceso y encapsulamiento
5 lecciones536- 01Visión general de los niveles de accesoRetoQuiz
- 02Métodos Getter y SetterRetoQuiz
- 03Ocultamiento de informaciónRetoQuiz
- 04La palabra clave finalRetoQuiz
- 05Resumen - Gestor de cuentas bancariasReto
Propiedades de clase y miembros estáticos
5 lecciones533- 01Variables de instancia vs. estáticasRetoQuiz
- 02Métodos estáticosRetoQuiz
- 03Bloques estáticosRetoQuiz
- 04Constantes (static final)RetoQuiz
- 05Repaso - Contador y utilidadReto
Herencia
8 lecciones862- 01Herencia básica (extends)RetoQuiz
- 02La palabra clave superRetoQuiz
- 03Sobrescritura de métodos (@Override)RetoQuiz
- 04Encadenamiento de constructoresRetoQuiz
- 05La clase ObjectRetoQuiz
- 06Herencia simple y multinivelRetoQuiz
- 07Por qué no hay herencia múltiple de clasesRetoQuiz
- 08Resumen - Jerarquía de empleadosReto
Polimorfismo
6 lecciones645- 01Fundamentos de sobrecarga de métodosRetoQuiz
- 02Sobrescritura de métodos (tiempo de ejecución)RetoQuiz
- 03Upcasting y DowncastingRetoQuiz
- 04El operador instanceofRetoQuiz
- 05Clases y métodos abstractosRetoQuiz
- 06Resumen - Calculadora de figurasReto
Interfaces y Clases Abstractas
7 lecciones754- 01Introducción a las InterfacesRetoQuiz
- 02Implementación de InterfacesRetoQuiz
- 03Implementación de Múltiples InterfacesRetoQuiz
- 04Métodos Default y Static en InterfacesRetoQuiz
- 05Clases Abstractas vs InterfacesRetoQuiz
- 06Interfaces FuncionalesRetoQuiz
- 07Resumen - Sistema de PagosReto
Métodos especiales y la clase Object
6 lecciones644- 01Método toString()RetoQuiz
- 02equals() y hashCode()RetoQuiz
- 03Método clone()RetoQuiz
- 04compareTo() y ComparableRetoQuiz
- 05Interfaz ComparatorRetoQuiz
- 06Resumen - Ordenamiento personalizadoReto
Conceptos avanzados de POO
6 lecciones653- 01Composición vs. HerenciaRetoQuiz
- 02Agregación vs. ComposiciónRetoQuiz
- 03Clases internas, anidadas y anónimasRetoQuiz
- 04Enums y métodos de EnumRetoQuiz
- 05Records (Java 16+)RetoQuiz
- 06Clases selladas (Java 17+)RetoQuiz
Genéricos
6 lecciones644- 01Introducción a los genéricosRetoQuiz
- 02Clases genéricasRetoQuiz
- 03Métodos genéricosRetoQuiz
- 04Parámetros de tipo delimitadosRetoQuiz
- 05Comodines (?, extends, super)RetoQuiz
- 06Resumen - Contenedor genéricoReto
Manejo de excepciones en POO
5 lecciones536- 01Jerarquía de clases de excepcionesRetoQuiz
- 02Excepciones personalizadasRetoQuiz
- 03Errores Checked vs UncheckedRetoQuiz
- 04Patrón Try With ResourcesRetoQuiz
- 05Resumen - Usuario validadoReto
Patrones de diseño - Parte 1
6 lecciones654- 01Introducción a los patrones de diseñoRetoQuiz
- 02Patrón SingletonRetoQuiz
- 03Patrón FactoryRetoQuiz
- 04Patrón BuilderRetoQuiz
- 05Patrón ObserverRetoQuiz
- 06Patrón StrategyRetoQuiz
Patrones de diseño Parte 2
7 lecciones763- 01Patrón CommandRetoQuiz
- 02Patrón AdapterRetoQuiz
- 03Patrón DecoratorRetoQuiz
- 04Patrón Template MethodRetoQuiz
- 05Patrón StateRetoQuiz
- 06Patrón CompositeRetoQuiz
- 07Patrón IteratorRetoQuiz
Proyecto: Gestión de biblioteca
Proyecto7 lecciones1- 01Descripción general del proyecto y diseño UMLReto
- 02Clases de Libro y UsuarioProyecto
- 03Sistema de préstamosProyecto
- 04Funcionalidad de búsquedaProyecto
- 05Interfaz de administradorProyecto
- 06Integración de manejo de excepcionesProyecto
- 07Pruebas e integraciónProyecto
Desafíos finales
4 lecciones437- 01Plataforma de E-LearningRetoQuiz
- 02Sistema bancarioRetoQuiz
- 03Desarrollo de personajes de videojuegosRetoQuiz
- 04Servicio de alquiler de vehículosRetoQuiz
Por qué aprender Java con Coddy
- Escribe y ejecuta código Java real en tu navegador. Sin instalar el JDK, sin configurar un IDE. El editor compila y corre tu programa Java en el servidor y muestra la salida al instante.
- Java orientado a objetos como se usa en el mundo real: clases, herencia, interfaces, polimorfismo, generics, manejo de excepciones. Cada concepto trae su propio ejercicio práctico.
- Las pistas de IA te ayudan a leer y corregir errores de Java, sobre todo los stack traces extensos, para que el lenguaje se sienta menos intimidante desde el primer día.
- Certificado de Java gratis al terminar el curso. Una señal creíble para puestos de backend, Android o enterprise donde manejar Java importa.
Preguntas frecuentes sobre aprender Java
¿Java es fácil de aprender?
Java es más verboso que lenguajes de scripting como Python o JavaScript. Cada programa necesita una clase, los métodos se declaran con tipos explícitos y hay que compilar antes de ejecutar. La ventaja es que esa rigidez te enseña buenos hábitos desde el principio. El curso explica por qué existe cada pieza, así que la verbosidad se siente menos arbitraria.
¿Cuánto tiempo se tarda en aprender Java?
Los fundamentos de Java 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.
¿Debería aprender Java o Python primero?
Elige según tu objetivo, no según la dificultad. Python es más breve de escribir y excelente para datos, scripting e IA. Java es el estándar para Android, backends empresariales y bases de código de equipos grandes, y su tipado estricto enseña fundamentos de OOP que sirven en cualquier lenguaje. Si no tienes un objetivo concreto, con Python te sientes productivo más rápido.
¿Puedo aprender Java gratis en línea?
Sí. El curso interactivo de Java es gratis — lecciones, ejercicios de código, cuestionarios y un certificado de finalización. El editor corre en el navegador, así que no necesitas instalar el JDK localmente para empezar a programar en Java.
¿Necesito instalar Java para usar este curso?
No. Cada ejercicio de Java se compila y se ejecuta del lado del servidor en un entorno aislado, y la salida aparece junto a tu código. Sin JDK, sin IDE, sin configuración de proyecto.
¿Recibo un certificado de Java al terminar?
Sí. Al terminar el curso de Java obtienes un certificado de finalización gratis. No es una acreditación universitaria, pero sí una señal verificable de que completaste un curso de Java estructurado e interactivo con ejercicios de código reales.