Elige tu idioma
Curso de programación en Rust
Más de 2 millones de estudiantes en todo el mundo

Curso de programación en Rust

Domine Rust desde cero — desde el ownership y el borrowing hasta la concurrencia asíncrona y la programación de sistemas. Este curso cubre todo lo que necesita para escribir código Rust rápido, seguro y listo para producción. Ya sea que esté construyendo servicios web, herramientas de CLI o software de sistemas de bajo nivel, adquirirá las habilidades para hacerlo correctamente.

Dedika para empresas

Qué vas a aprender:

Usted comenzará configurando su toolchain de Rust y aprendiendo la sintaxis básica, para luego pasar al modelo de ownership, las reglas de borrowing y las lifetimes de Rust. De ahí en adelante, trabajará con structs, enums, pattern matching y un manejo robusto de errores. Dominará las colecciones, los iteradores, los closures, los traits y los genéricos antes de abordar la concurrencia con hilos, canales y async/await. El curso también cubre Rust inseguro, FFI, testing, perfilamiento de rendimiento, macros, programación web con Axum y flujos de trabajo de despliegue de CI/CD.

Cómo estudias de forma práctica Curso de programación en Rust

Cómo practicas Curso de programación en Rust

Para ti que eres empresa y quieres capacitar a tu equipo

En Dedika para empresas, el curso incluye ejercicios y ejemplos adaptados a tu propio negocio y a las necesidades de tu empresa.

Haz clic aquí

Contenido del curso

8 Capítulos • 40 LeccionesDuración entre 4 y 360 horas (tú decides)

Capítulo 1Ver detalles

Primeros pasos con Rust

  • Lección 1 • Sintaxis de Rust y tipos básicos

    Cubre variables, tipos escalares y expresiones básicas. Proporciona el vocabulario sintáctico necesario para leer y escribir cualquier programa en Rust.

  • Lección 2 • Instalación y configuración de Rust

    Configure rustup, cargo y un editor de código para el desarrollo en Rust. Establece la base de herramientas de la que depende cada capítulo posterior.

  • Lección 3 • Usando Cargo y crates

    Explora los comandos de Cargo, la estructura del proyecto y la adición de crates externos. Conecta el conocimiento de sintaxis con los flujos de trabajo de proyectos reales utilizados a lo largo del curso.

  • Lección 4 • Fundamentos del flujo de control

    Enseña las construcciones if, loop, while y for en Rust. Permite a los estudiantes escribir programas con lógica de ramificación e iteración.

  • Lección 5 • Funciones y organización del código

    Define funciones con parámetros y tipos de retorno, e introduce módulos. Prepara a los estudiantes para estructurar programas más allá de una única función principal.

Capítulo 2Ver detalles

Propiedad, préstamo y tiempos de vida

  • Lección 1 • Anotaciones de tiempo de vida

    Enseña la sintaxis explícita de tiempo de vida para funciones y estructuras. Permite a los estudiantes resolver errores de tiempo de vida y diseñar APIs con datos prestados.

  • Lección 2 • Referencias y préstamo

    Introduce las referencias compartidas y mutables con las reglas del verificador de préstamos. Los estudiantes aprenden a pasar datos sin transferir la propiedad.

  • Lección 3 • Slices y tipos de cadena

    Cubre las referencias slice para arreglos y cadenas, y distingue str de String. Une los conceptos de propiedad con el manejo práctico de cadenas y colecciones.

  • Lección 4 • Patrones de propiedad en la práctica

    Aplica las reglas de propiedad y préstamo a escenarios de código realistas. Consolida la comprensión resolviendo conflictos comunes del verificador de préstamos.

  • Lección 5 • Reglas de propiedad y semántica de movimiento

    Explica la semántica de propietario único y cómo los valores se mueven entre vinculaciones. Forma el núcleo conceptual sobre el que se construyen todas las reglas de préstamo y tiempo de vida.

Capítulo 3Ver detalles

Estructuras, enumeraciones y coincidencia de patrones

  • Lección 1 • Métodos y funciones asociadas

    Agrega comportamiento a las estructuras mediante bloques impl y funciones asociadas. Conecta el modelado de datos con la encapsulación al estilo orientado a objetos en Rust.

  • Lección 2 • Enumeraciones y variantes

    Define enumeraciones con variantes que contienen datos e introduce Option. Permite modelar valores que pueden tomar una de varias formas distintas.

  • Lección 3 • Coincidencia de patrones con match

    Utiliza expresiones match para desestructurar enumeraciones, tuplas y estructuras. Enseña el manejo exhaustivo de patrones, central para el flujo de control idiomático en Rust.

  • Lección 4 • if let y patrones avanzados

    Introduce la coincidencia de patrones concisa con if let, while let y patrones anidados. Amplía las habilidades con patrones a escenarios condicionales y de bucle cotidianos.

  • Lección 5 • Definiendo y usando estructuras

    Cubre la definición de estructuras, instanciación y acceso a campos. Proporciona la herramienta principal para agrupar datos relacionados en programas Rust.

Capítulo 4Ver detalles

Manejo de errores en Rust

  • Lección 1 • Panics y errores irrecuperables

    Explica cuándo Rust entra en pánico, cómo desencadenarlos y capturarlos, y cuándo usarlos. Establece el límite entre escenarios que ameritan un panic y los de error recuperable.

  • Lección 2 • Tipos de error personalizados

    Define enumeraciones de error personalizadas e implementa el trait Error. Permite que las librerías y aplicaciones expongan información de error significativa y estructurada.

  • Lección 3 • Estrategias de manejo de errores

    Compara errores encajonados, tipos personalizados y anyhow para código de aplicación vs. librería. Guía a los estudiantes en la elección de la estrategia adecuada para cada contexto.

  • Lección 4 • El operador ? y propagación de errores

    Utiliza el operador ? para propagar errores hacia arriba en la pila de llamadas de manera concisa. Reduce el código repetitivo y hace que el código de manejo de errores sea legible e idiomático.

  • Lección 5 • El tipo Result

    Cubre la definición de Result<T, E>, la coincidencia en Ok y Err, y los combinadores comunes. Proporciona el mecanismo principal para propagar errores recuperables.

Capítulo 5Ver detalles

Colecciones, iteradores y cierres

  • Lección 1 • Consumiendo iteradores

    Utiliza collect, fold, sum y otros consumidores para producir resultados a partir de iteradores. Completa el pipeline del iterador desde la fuente, pasando por la transformación, hasta la salida.

  • Lección 2 • El trait Iterator y adaptadores

    Explora el trait Iterator, la evaluación perezosa y los métodos adaptadores. Enseña la transformación de datos de estilo funcional central para el Rust idiomático.

  • Lección 3 • Iteradores personalizados

    Implementa el trait Iterator en tipos personalizados para producir secuencias. Profundiza la comprensión de cómo funciona internamente la maquinaria de iteradores de Rust.

  • Lección 4 • Cierres y captura del entorno

    Define cierres, sus modos de captura y los límites del trait Fn. Permite pasar comportamiento como valores, lo cual requieren los iteradores y las funciones de orden superior.

  • Lección 5 • Vectores y colecciones comunes

    Cubre la creación, acceso y mutación de Vec<T>, String y HashMap<K, V>. Proporciona los contenedores de datos estándar utilizados en casi todos los programas Rust.

Capítulo 6Ver detalles

Traits, genéricos y polimorfismo

  • Lección 1 • Definiendo e implementando traits

    Crea traits con métodos requeridos y predeterminados, y los implementa en tipos. Establece el mecanismo de comportamiento compartido del que dependen los genéricos y el polimorfismo.

  • Lección 2 • Técnicas avanzadas de traits

    Cubre tipos asociados, sobrecarga de operadores y el patrón Newtype. Amplía el conocimiento de traits a escenarios sofisticados de diseño de API.

  • Lección 3 • Objetos trait y despacho dinámico

    Utiliza punteros dyn Trait para polimorfismo en tiempo de ejecución y explica los costos de vtable. Enseña cuándo es apropiado el despacho dinámico frente al estático.

  • Lección 4 • Límites de trait y cláusulas where

    Restringe los tipos genéricos con límites de trait y cláusulas where. Permite que el código genérico llame a métodos de trait manteniendo las firmas legibles.

  • Lección 5 • Funciones y tipos genéricos

    Parametriza funciones, estructuras y enumeraciones con parámetros de tipo. Permite escribir código que funciona con muchos tipos manteniéndose seguro en cuanto a tipos.

Capítulo 7Ver detalles

Concurrencia y Rust asíncrono

  • Lección 1 • Fundamentos de Async/Await

    Introduce futures, funciones async y la palabra clave await con un tiempo de ejecución. Prepara a los estudiantes para patrones de I/O no bloqueante y aplicaciones de alta concurrencia.

  • Lección 2 • Traits Send y Sync

    Explica los traits marcadores Send y Sync y su papel en la seguridad de hilos. Permite a los estudiantes razonar sobre qué tipos pueden cruzar los límites de los hilos.

  • Lección 3 • Hilos y estado compartido

    Genera hilos del SO, comparte datos con Arc y Mutex, y evita condiciones de carrera. Demuestra cómo las reglas de propiedad imponen la seguridad de hilos en tiempo de compilación.

  • Lección 4 • Patrones y trampas de async

    Cubre futures concurrentes, generación de tareas y errores comunes en async. Capacita a los estudiantes para construir programas asíncronos correctos y eficientes en contextos de producción.

  • Lección 5 • Paso de mensajes con canales

    Utiliza canales mpsc para comunicarse entre hilos sin memoria compartida. Introduce el modelo de concurrencia de paso de mensajes como alternativa al bloqueo.

Capítulo 8Ver detalles

Programación de sistemas y Rust inseguro

  • Lección 1 • Diseño de memoria y punteros crudos

    Examina cómo Rust organiza los datos en memoria e introduce la sintaxis de punteros crudos. Proporciona la base de bajo nivel necesaria para las operaciones inseguras.

  • Lección 2 • Entornos embebidos y sin std

    Configura Rust para objetivos no_std y utiliza los crates core y alloc. Extiende las habilidades de Rust a microcontroladores y entornos sin un sistema operativo.

  • Lección 3 • Asignadores personalizados y gestión de memoria

    Implementa el trait Allocator y explora la asignación por arena y pool. Aborda escenarios críticos de rendimiento donde la asignación predeterminada es insuficiente.

  • Lección 4 • Interfaz de función foránea

    Llama funciones de C desde Rust y expone funciones de Rust a C usando extern. Permite la integración con librerías nativas existentes y APIs del sistema.

  • Lección 5 • Bloques y funciones inseguras

    Define lo que permite unsafe y cómo minimizar su alcance. Enseña el uso responsable de unsafe para extender capacidades sin sacrificar la corrección.

Certificación

Tu certificado válido de finalización

Este curso es para ti:

  • Desarrollador backend: quiere reemplazar servicios lentos o inseguros con alternativas en Rust.

  • Programador en C o C++: busca seguridad en tiempo de compilación sin sacrificar el control de bajo nivel.

  • Constructor aficionado: entusiasmado por crear herramientas CLI y proyectos de sistemas en Rust.

  • Persona en cambio de trayectoria profesional: apunta a roles de ingeniería de alta demanda que requieren habilidades de programación de sistemas.

  • Ingeniero de DevOps: necesita escribir herramientas confiables y de alto rendimiento para pipelines de infraestructura.

  • Estudiante de ciencias de la computación: listo para ir más allá de los trabajos del curso y abordar el desarrollo en Rust en el mundo real.

Lo que dicen nuestros estudiantes

Sus clases son perfectas. Adquirí el paquete de un año y, finalmente, tengo la oportunidad de seguir diversos temas de mi interés sin necesidad de cambiar de plataforma... les agradezco por todo lo que hacen, ya los he recomendado a otras personas...
Giulio Carlo
Giulio CarloEstudiante de Marketing Digital
Me gusta cómo las lecciones van directo al grano y cómo puedo cambiar capítulos y saltar contenidos que no necesito.
Mariana Ferres
Mariana FerresEstudiante de Fotografía
Me gusta el contenido y la forma de presentación y transcripción de videos, ¡lo que acelera el proceso!
Luciana Alvarenga
Luciana AlvarengaEstudiante de Diseño de Uñas
La plataforma es rápida, simple de usar. La diversidad de contenido y los videos complementarios ayudan mucho en el aprendizaje.
André Felipe
André FelipeEstudiante de Ingeniería de Prompts

Principales capacitaciones

Preguntas frecuentes

¿Quién es Dedika?

¿El certificado es válido en Ecuador?

¿Los cursos son gratuitos?

¿Cuál es la carga horaria del curso?

¿Cómo son los cursos?

¿Cómo funcionan los cursos?

¿Cuál es la duración de los cursos?

¿Cuál es el costo o precio de los cursos?

¿Qué es un curso EAD u online y cómo funciona?

Curso en PDF