Recorrido
Aprende Rust
Un curso de Rust online, gratis e interactivo. Escribes Rust en cada lección — sintaxis, ownership y borrowing, lifetimes, traits, pattern matching — con pistas de IA cuando el borrow checker se te pone difícil, y un certificado gratis al terminar.
16,687+ 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
Fundamentals
Empezar secciónEmpezarExpandirContraerBuild a strong foundation with essential concepts and basic skillsIntroducción
4 lecciones324- 01RustReto
- 02¡Hola, mundo!RetoQuiz
- 03ComentariosQuiz
- 04Estructura básica del programaRetoQuiz
Variables Parte 1
5 lecciones539- 01NúmerosRetoQuiz
- 02CharRetoQuiz
- 03StringRetoQuiz
- 04BooleanRetoQuiz
- 05Variables mutablesRetoQuiz
Variables Parte 2
5 lecciones433- 01Declaración de tiposRetoQuiz
- 02Convenciones de nomenclaturaQuiz
- 03Inferencia de tiposRetoQuiz
- 04Resumen - Inicializar variablesReto
- 05Conversión de tiposRetoQuiz
Operadores Parte 1
5 lecciones438- 01Operadores aritméticosRetoQuiz
- 02Operador de móduloRetoQuiz
- 03Atajos aritméticosRetoQuiz
- 04Operadores de comparaciónRetoQuiz
- 05Comparación de stringsQuiz
Operadores Parte 2
4 lecciones424- 01Operadores lógicos Parte 1RetoQuiz
- 02Operadores lógicos Parte 2RetoQuiz
- 03Repaso - Lógica simpleReto
- 04Operadores lógicos Parte 3RetoQuiz
Toma de decisiones
5 lecciones532- 01Expresiones IfRetoQuiz
- 02If-ElseRetoQuiz
- 03Sentencia MatchRetoQuiz
- 04Resumen - If ElseReto
- 05If - Else anidadosRetoQuiz
E/S básica
4 lecciones417- 01Imprimir en consolaRetoQuiz
- 02Leer entrada del usuarioRetoQuiz
- 03Repaso - Hasta 120Reto
- 04Repaso - Verdadero o FalsoReto
Aplicación de calculadora
Proyecto4 lecciones1- 01Mensaje de bienvenidaReto
- 02Obtener númerosProyecto
- 03Operaciones básicasProyecto
- 04Salida con formatoProyecto
Bucles
8 lecciones851- 01For sobre seriesRetoQuiz
- 02Bucle WhileRetoQuiz
- 03BreakRetoQuiz
- 04ContinueRetoQuiz
- 05Bucle anidadoRetoQuiz
- 06Etiquetas de bucleRetoQuiz
- 07Bucle infinitoRetoQuiz
- 08Resumen - Entrada dinámicaReto
Vinculación de variables
4 lecciones230- 01ÁmbitoQuiz
- 02Sombreado - Parte 1RetoQuiz
- 03Vinculación de variablesQuiz
- 04Sombreado - Parte 2RetoQuiz
Funciones
6 lecciones634- 01Declaración de funcionesRetoQuiz
- 02Parámetros y argumentosRetoQuiz
- 03Valores de retornoRetoQuiz
- 04Múltiples valores de retornoRetoQuiz
- 05Repaso: Función SigmaReto
- 06Repaso: Función de validaciónReto
Fundamentos de Arrays
5 lecciones430- 01Declaración de ArraysRetoQuiz
- 02Arrays como parámetrosQuiz
- 03Acceso a elementosRetoQuiz
- 04Modificación de ArraysRetoQuiz
- 05Resumen - Pretty Print de ArraysReto
Arrays: Continuación
5 lecciones423- 01Arrays de referencia mutablesRetoQuiz
- 02Métodos de arraysRetoQuiz
- 03Resumen: Array de productosReto
- 04Resumen: Array invertidoReto
- 05Impresión mejoradaQuiz
Iterar sobre Arrays
4 lecciones333- 01Guía de RangeRetoQuiz
- 02Bucle for mejoradoRetoQuiz
- 03Borrow en buclesQuiz
- 04Operaciones comunes con arraysRetoQuiz
Operaciones con Strings
4 lecciones424- 01Métodos de StringRetoQuiz
- 02Macro format!RetoQuiz
- 03Conversión de StringsRetoQuiz
- 04Repaso - FormatReto
Proyectos finales
3 lecciones37- 01Patrones numéricosRetoQuiz
- 02Buscador de patronesReto
- 03Calculadora de calificacionesReto
Sección 2
Logic & Flow
Empezar secciónEmpezarExpandirContraerDevelop problem-solving skills and create dynamic, interactive programsFlujo de control avanzado
6 lecciones640- 01La expresión 'match'RetoQuiz
- 02Coincidencia de múltiples valoresRetoQuiz
- 03Coincidencia de rangosRetoQuiz
- 04La expresión 'if let'RetoQuiz
- 05Bucles como expresionesRetoQuiz
- 06Resumen - Analizador de comandos simpleReto
Introducción a los vectores
8 lecciones756- 01¿Qué es un vector?Quiz
- 02Crear un vectorRetoQuiz
- 03Añadir elementos con pushRetoQuiz
- 04Acceder a los elementos de un vectorRetoQuiz
- 05Iterar sobre un vectorRetoQuiz
- 06Iteración mutableRetoQuiz
- 07Eliminar elementosRetoQuiz
- 08Resumen: Rastreador de puntuación básicoReto
Lista de tareas en la línea de comandos
5 lecciones5- 01Configuración del proyectoReto
- 02Añadir una tareaReto
- 03Ver todas las tareasReto
- 04Eliminar una tareaReto
- 05Código finalReto
Agrupando datos con Structs
7 lecciones650- 01¿Qué es un Struct?Quiz
- 02Visión general de los StructsRetoQuiz
- 03Acceso a los campos de un StructRetoQuiz
- 04Structs mutablesRetoQuiz
- 05Structs como parámetros de funcionesRetoQuiz
- 06Structs de tuplaRetoQuiz
- 07Resumen - Crear un Struct de LibroReto
Pares clave-valor con Hash Maps
8 lecciones653- 01¿Qué es un Hash Map?Quiz
- 02Crear un Hash MapQuiz
- 03Insertar pares clave-valorRetoQuiz
- 04Acceder a los valoresRetoQuiz
- 05Iterar sobre un Hash MapRetoQuiz
- 06Actualizar un valorRetoQuiz
- 07Eliminar un parRetoQuiz
- 08Repaso: Contador de palabrasReto
Manejo de ausencia con 'Option'
7 lecciones645- 01¿Qué es un 'Option'?Quiz
- 02Uso de 'match' con 'Option'RetoQuiz
- 03is_some() e is_none()RetoQuiz
- 04Desempaquetar un 'Option'RetoQuiz
- 05El método expectRetoQuiz
- 06Proporcionar un valor por defecto: unwrap_orRetoQuiz
- 07Resumen - Encontrar un elementoReto
Manejo de errores con 'Result'
7 lecciones648- 01¿Qué es un 'Result'?Quiz
- 02Uso de 'match' con 'Result'RetoQuiz
- 03is_ok() e is_err()RetoQuiz
- 04Atajos: unwrap y expectRetoQuiz
- 05El operador de signo de interrogación '?'RetoQuiz
- 06Parsing de Strings a númerosRetoQuiz
- 07Resumen - Función de división seguraReto
Proyecto: Inventario simple de artículos
5 lecciones5- 01Configuración del proyectoReto
- 02Agregar un artículoReto
- 03Verificar el stockReto
- 04Vender un artículoReto
- 05Uniendo todoReto
Slices de String y más
5 lecciones432- 01String vs. &strQuiz
- 02Creación de Slices de StringRetoQuiz
- 03Slices como parámetros de funciónRetoQuiz
- 04Otros SlicesRetoQuiz
- 05Resumen - Encontrar la primera palabraReto
Closures y funciones anónimas
5 lecciones431- 01¿Qué es un Closure?Quiz
- 02Definir un Closure simpleRetoQuiz
- 03Closures con parámetrosRetoQuiz
- 04Capturar el entornoRetoQuiz
- 05Resumen - Closure sumador simpleReto
Desafíos finales
3 lecciones3- 01Repaso - Elementos únicosReto
- 02Repaso - Validador de perfiles de usuarioReto
- 03Repaso - Resumidor de calificacionesReto
Sección 3
Object Oriented Programming
Empezar secciónEmpezarExpandirContraerDiscover how to organize code with classes, objects, and reusable structuresMétodos y Comportamiento
7 lecciones748- 01Intro a Bloques de ImplementaciónRetoQuiz
- 02El Parámetro SelfRetoQuiz
- 03Métodos MutablesRetoQuiz
- 04Funciones AsociadasRetoQuiz
- 05Múltiples Bloques de ImplementaciónRetoQuiz
- 06Encadenamiento de MétodosRetoQuiz
- 07Resumen - Acciones de RectánguloReto
Encapsulamiento y módulos
6 lecciones543- 01Conceptos básicos de módulosQuiz
- 02La palabra clave PublicRetoQuiz
- 03Campos privadosRetoQuiz
- 04GettersRetoQuiz
- 05SettersRetoQuiz
- 06Repaso - Casillero seguroReto
Enums avanzados
5 lecciones535- 01Enums con datosRetoQuiz
- 02Métodos en EnumsRetoQuiz
- 03Coincidencia de variantes de datosRetoQuiz
- 04El Enum Option revisitadoRetoQuiz
- 05Resumen - Enum ShapeReto
Proyecto: Mascota virtual
Proyecto5 lecciones1- 01Definir la mascotaReto
- 02Alimentar a la mascotaProyecto
- 03Jugar con la mascotaProyecto
- 04Reporte de estadoProyecto
- 05Interacción finalProyecto
Genéricos
5 lecciones533- 01Estructuras genéricasRetoQuiz
- 02Métodos genéricosRetoQuiz
- 03Múltiples tipos genéricosRetoQuiz
- 04Funciones genéricasRetoQuiz
- 05Resumen - Punto de coordenadasReto
Definición de Traits
6 lecciones641- 01¿Qué es un Trait?RetoQuiz
- 02Implementación de TraitsRetoQuiz
- 03Implementaciones por defectoRetoQuiz
- 04Sobrescribir valores por defectoRetoQuiz
- 05Traits con parámetrosRetoQuiz
- 06Resumen - Reproductor multimediaReto
Traits estándar
5 lecciones536- 01El trait DebugRetoQuiz
- 02El trait DisplayRetoQuiz
- 03Clone y CopyRetoQuiz
- 04Traits de igualdadRetoQuiz
- 05Resumen - Punto imprimibleReto
Traits como límites
5 lecciones534- 01Sintaxis de límites de traitsRetoQuiz
- 02Límites múltiplesRetoQuiz
- 03La cláusula whereRetoQuiz
- 04Retornar tipos con traitsRetoQuiz
- 05Resumen: Impresora genéricaReto
Objetos de Trait
4 lecciones425- 01Despacho dinámicoRetoQuiz
- 02Vectores de TraitsRetoQuiz
- 03Iteración de objetos de TraitRetoQuiz
- 04Repaso - Gestor del zoológicoReto
Proyecto: Sistema de documentos
Proyecto5 lecciones1- 01El Trait DrawReto
- 02Componente de textoProyecto
- 03Componente de botónProyecto
- 04El Struct ScreenProyecto
- 05Ejecución de la pantallaProyecto
Patrones de diseño en Rust
5 lecciones531- 01Patrón NewtypeRetoQuiz
- 02ComposiciónRetoQuiz
- 03El Trait DropRetoQuiz
- 04From e IntoRetoQuiz
- 05Resumen - Mock de Smart PointerReto
Desafíos finales
3 lecciones3- 01Pila genéricaReto
- 02Catálogo de bibliotecaReto
- 03Calculadora de área de figurasReto
Por qué aprender Rust con Coddy
- Escribe y ejecuta código Rust real en tu navegador. Sin instalar rustup, sin configurar Cargo. Cada lección compila tu programa de Rust en el servidor y muestra la salida (y cualquier error del compilador) al instante.
- Lo que hace único a Rust: ownership, borrowing, lifetimes, traits, enums y pattern matching, manejo de errores con
Result. Las bases de Rust que todo programador de sistemas necesita. - Las pistas de IA te guían a través de los famosamente estrictos errores del compilador de Rust, para que el borrow checker se convierta en un profesor en lugar de un muro cuando recién estás empezando.
- Certificado gratis de Rust al terminar el curso. Una señal creíble para puestos de sistemas, infraestructura, blockchain y embedded, donde Rust se está volviendo el lenguaje elegido.
Preguntas frecuentes sobre aprender Rust
¿Rust es fácil de aprender?
Rust tiene fama de difícil, sobre todo por ownership y el borrow checker, conceptos que la mayoría de los otros lenguajes ni siquiera muestran. La contraparte es que el compilador atrapa una enorme cantidad de bugs en tiempo de compilación. El curso introduce ownership y borrowing de a poco, con ejercicios cortos que convierten al borrow checker en un maestro en vez de un muro.
¿Para qué se usa Rust?
Programación de sistemas, infraestructura (partes del kernel de Linux, Cloudflare, Discord, Dropbox), herramientas de línea de comandos, trabajo embebido, WebAssembly y una porción cada vez mayor de código de blockchain y cripto. Apunta a los mismos nichos que C y C++, pero con garantías de seguridad mucho más fuertes.
¿Cuánto tiempo toma aprender Rust?
Los fundamentos de Rust —sintaxis, control de flujo, funciones, structs, enums— toman entre dos y cuatro semanas de práctica diaria. Sentirte cómodo con ownership, borrowing, lifetimes y traits suele llevar otros dos a seis meses. La maestría (lifetimes avanzados, async, unsafe Rust) es un camino más largo y se logra mejor trabajando en proyectos reales.
¿Aprender Rust o Go?
Ambos son lenguajes modernos y de tipado estático orientados a servidores e infraestructura, pero hacen concesiones distintas. Go apunta a tiempos de compilación rápidos, concurrencia simple y una especificación pequeña — más fácil de aprender. Rust apunta a rendimiento y seguridad de memoria sin garbage collector — más difícil, pero llega a un nivel más bajo. Elige Go para backends y herramientas de cloud; elige Rust para trabajo de sistemas, código crítico en rendimiento o cualquier cosa que antes se hacía en C/C++.
¿Puedo aprender Rust online gratis?
Sí. El curso interactivo de Rust es gratis — lecciones completas, ejercicios de código, cuestionarios y un certificado. Rust se compila en el servidor, así que no necesitas instalar rustup ni Cargo localmente para empezar a escribir Rust de verdad.
¿Recibo un certificado al terminar el curso de Rust?
Sí. Al terminar el curso de Rust recibes un certificado de finalización gratis. Una señal verificable que puedes agregar a tu currículum o compartir en LinkedIn junto con los proyectos en Rust, herramientas de CLI o contribuciones open-source que hayas hecho.