Curso de Rust
Ownership, borrowing, structs y enums, Option/Result, colecciones, traits y genéricos, lifetimes, closures e iteradores, concurrencia sin miedo y testing — de cero a héroe con un capstone de línea de comandos.
- Paso 1
Por qué Rust, y lo básico de Cargo
Rust promete seguridad de memoria sin recolector de basura — descubre cómo, y conoce la herramienta que hace que todo proyecto Rust se sienta igual.
Leer lección - Paso 2
Variables, Mutabilidad y Tipos Escalares/Compuestos
En Rust, cada variable está bloqueada por defecto — tienes que pedir permiso para cambiarla, y esa sola regla evita toda una categoría de errores.
Leer lección - Paso 3
Ownership: Movimientos, Copy vs Clone
La idea más audaz de Rust es que cada valor tiene exactamente un dueño — entender qué pasa cuando ese dueño cambia abre el resto del lenguaje.
Leer lección - Paso 4
Referencias y Borrowing
Mover un valor cada vez que lo usas haría de Rust un lenguaje insoportable — las referencias te dejan tomar prestado el acceso sin tomar la propiedad, y el compilador lo garantiza gratis.
Leer lección - Paso 5
Structs y Métodos (bloques impl)
Los structs agrupan datos relacionados en campos con nombre, y los bloques impl les añaden comportamiento — la respuesta de Rust a una clase, sin herencia.
Leer lección - Paso 6
Enums y Pattern Matching
Los enums de Rust permiten que cada variante lleve sus propios datos, y match te obliga a manejar cada una antes de que tu código compile.
Leer lección - Paso 7
Manejo de Errores: Option, Result, ?, panic!
Option maneja valores que pueden estar ausentes, Result maneja operaciones que pueden fallar, y el operador ? te deja propagar cualquiera con limpieza.
Leer lección - Paso 8
Colecciones: Vec, String, HashMap
Vec, String y HashMap son las tres colecciones que usarás constantemente, y cada una esconde una trampa que vale la pena entender a tiempo.
Leer lección - Paso 9
Traits y Genéricos
Los traits describen comportamiento compartido entre tipos distintos, y los genéricos permiten que una sola función funcione con todos ellos sin sacrificar velocidad.
Leer lección - Paso 10
Lifetimes
Los lifetimes nunca hacen que algo viva más tiempo: son la forma de describirle al compilador una relación entre referencias que ya existía en tu código.
Leer lección - Paso 11
Closures e Iteradores
Los closures vienen en tres sabores —Fn, FnMut, FnOnce— y las cadenas de iteradores se mantienen perezosas hasta que se consumen, pero compilan tan rápido como un bucle escrito a mano.
Leer lección - Paso 12
Módulos, Crates y Workspaces
mod, pub y use convierten un proyecto Rust en crecimiento en uno con una API interna deliberada, y los workspaces de Cargo extienden esa misma disciplina a varios crates.
Leer lección - Paso 13
Punteros inteligentes: Box, Rc y RefCell
Las referencias comunes solo prestan; los punteros inteligentes poseen, cuentan referencias y a veces trasladan el chequeo de préstamos al tiempo de ejecución, permitiendo formas que los tipos por sí solos no pueden describir.
Leer lección - Paso 14
Concurrencia sin miedo: hilos, canales y Arc<Mutex<T>>
Rust te permite escribir código multihilo sin el miedo habitual, porque las mismas reglas de ownership que evitan use-after-free también evitan las carreras de datos, en tiempo de compilación.
Leer lección - Paso 15
Testing en Rust
Rust integra un ejecutor de tests directamente en el toolchain, así que un test es solo una función con un atributo encima — sin framework externo, sin archivo de configuración.
Leer lección - Paso 16
Capstone: una herramienta CLI de frecuencia de palabras
Todas las ideas de este curso — ownership, Result, HashMap, iteradores — convergen en un programa pequeño y real que lee texto, cuenta palabras y reporta las que más importan.
Leer lección