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

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

Dedika para empresas

Lo que vas a aprender:

Comenzarás configurando tu toolchain de Rust y aprendiendo la sintaxis básica, para luego pasar al modelo de ownership, las reglas de borrowing y los lifetimes. De ahí, trabajarás con structs, enums, pattern matching y manejo de errores robusto. Dominarás las colecciones, iteradores, closures, traits y genéricos antes de abordar la concurrencia con hilos, canales y async/await. El curso también cubre Rust inseguro, FFI, pruebas, perfilamiento de desempeño, 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

Introducción a 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

    Configura 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 • Uso de 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 reales del proyecto 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 bifurcació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 sola 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 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 con el 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 cual 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 de la orientación 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 de Rust.

  • Lección 4 • if let y Patrones Avanzados

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

  • Lección 5 • Definición y Uso de 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 aquellos con errores recuperables.

  • Lección 2 • Tipos de Error Personalizados

    Define enumeraciones de error personalizadas e implementa el trait Error. Permite que bibliotecas 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 versus biblioteca. Guía a los estudiantes en la elección de la estrategia correcta 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 sobre Ok y Err, y los combinadores comunes. Proporciona el mecanismo principal para propagar errores recuperables.

Capítulo 5Ver detalles

Colecciones, Iteradores y Closures

  • Lección 1 • Consumo de Iteradores

    Usa collect, fold, sum y otros consumidores para producir resultados a partir de iteradores. Completa el pipeline de iteradores desde el origen, 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 al 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 • Closures y Captura del Entorno

    Define closures, sus modos de captura y los límites de los traits 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 • Definición e Implementación de Traits

    Crea traits con métodos requeridos y predeterminados, y los implementa en tipos. Establece el mecanismo de comportamiento compartido del cual 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. Extiende el conocimiento de traits a escenarios sofisticados de diseño de API.

  • Lección 3 • Objetos Trait y Despacho Dinámico

    Utiliza apuntadores dyn Trait para polimorfismo en tiempo de ejecución y explica los costos de la vtable. Enseña cuándo el despacho dinámico es apropiado en comparación con el despacho 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 en muchos tipos manteniendo la seguridad de tipos.

Capítulo 7Ver detalles

Concurrencia y Rust Asíncrono

  • Lección 1 • Fundamentos de Async/Await

    Introduce futuros, funciones async y la palabra clave await con un runtime. Prepara a los estudiantes para E/S sin bloqueo y patrones de aplicación de alta concurrencia.

  • Lección 2 • Traits Send y Sync

    Explica los traits marcadores Send y Sync y su rol 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 las condiciones de carrera. Demuestra cómo las reglas de propiedad imponen la seguridad de hilos en tiempo de compilación.

  • Lección 4 • Patrones Asíncronos y Dificultades Comunes

    Cubre futuros concurrentes, generación de tareas y errores comunes de 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 Apuntadores Crudos

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

  • Lección 2 • Entornos Embebidos y No-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 a funciones C desde Rust y expone funciones Rust a C usando extern. Permite la integración con bibliotecas nativas y APIs del sistema existentes.

  • Lección 5 • Bloques y Funciones Inseguros

    Define qué 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 de C o C++: busca seguridad en tiempo de compilación sin sacrificar el control de bajo nivel.

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

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

  • Ingeniero 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 cursos y abordar el desarrollo en Rust del mundo real.

Lo que dicen nuestros alumnos

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... agradezco 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 Prompt

Principales capacitaciones

Preguntas frecuentes

¿Quién es Dedika?

¿El certificado es válido en México?

¿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