Saltar al contenido
Logotipo de Trainontech Trainontech

Lenguajes y Fundamentos de Programación · LNG-180

Rust desde cero

Propiedad, préstamos y tiempos de vida explicados desde el problema que resuelven, con evcxr en cuaderno.

Bajo demanda Iniciación 8 módulos · 39 clases

Formato asíncrono Desarrollo, Ingeniería / Industria Rust, JupyterLab

Lo que aprenderás

  • Explicar las reglas de propiedad de Rust y prever cuándo un valor se mueve o se copia.
  • Tomar prestado un valor de forma compartida o mutable respetando las reglas del comprobador.
  • Anotar tiempos de vida en funciones y structs cuando el compilador no puede deducirlos.
  • Modelar datos con structs y enumerados y recorrerlos con match exhaustivo.
  • Tratar el fallo con Result y Option, y propagarlo con el operador de interrogación.
  • Crear y compilar un proyecto con Cargo, añadir dependencias y ejecutar pruebas.
  • Interpretar los mensajes del compilador de Rust y usarlos para corregir el diseño.

Contenido del curso

8 módulos · 39 clases en vídeo · práctica guiada en cada módulo

Módulo 1 · Presentación y entorno 4 clases
  • Qué problema vino a resolver Rust
  • Primera celda en JupyterLab con evcxr
  • rustup, cargo y la cadena de herramientas
  • Leer un mensaje de error del compilador
Módulo 2 · Tipos, variables y funciones 5 clases
  • Inmutabilidad por defecto y palabra clave mut
  • Enteros, coma flotante, booleanos y caracteres
  • Tuplas y arrays
  • Funciones, expresiones y valor de retorno
  • Sombreado de variables
Módulo 3 · Propiedad 5 clases
  • Pila y montón en Rust
  • Movimiento de valores y por qué se invalida el origen
  • Copia frente a clonación
  • Propiedad y funciones: entrada y salida
  • Ejercicio: seguir el rastro de un valor
Módulo 4 · Préstamos y referencias 5 clases
  • Referencias compartidas y mutables
  • La regla de un solo préstamo mutable
  • Slices de cadena y de array
  • Errores típicos del comprobador de préstamos
  • Reescribir código para que compile sin clonar
Módulo 5 · Structs, enums y patrones 5 clases
  • Definir structs y métodos con impl
  • Enumerados con datos asociados
  • Option y ausencia de valor sin nulos
  • match exhaustivo y if let
  • Derivar rasgos habituales
Módulo 6 · Errores y colecciones 5 clases
  • Result y propagación con el operador de interrogación
  • panic frente a error recuperable
  • Vec: crecimiento y acceso
  • HashMap y entradas
  • String y str: la diferencia que confunde
Módulo 7 · Tiempos de vida y organización 5 clases
  • Por qué existen las anotaciones de tiempo de vida
  • Anotarlas en funciones y en structs
  • Elisión: cuándo no hacen falta
  • Módulos, visibilidad y crates
  • Pruebas con cargo test
Módulo 8 · Caso práctico: herramienta de línea de comandos 5 clases
  • Lectura de argumentos y de ficheros
  • Modelo de datos con enums y structs
  • Errores propios con mensajes claros
  • Pruebas unitarias y de integración
  • Entrega: binario compilado con cargo build

Requisitos

  • Haber programado antes en algún lenguaje: variables, funciones, estructuras y control de flujo.
  • Basta con un navegador para los primeros módulos: se practica en JupyterLab con el kernel evcxr.
  • Para el bloque de proyectos conviene instalar Rust con rustup en el equipo.

Descripción

Rust tiene fama de difícil, y la dificultad se concentra en un punto muy concreto: el compilador rechaza programas que en otros lenguajes se aceptan y fallan después en ejecución. Quien llega de C ve prohibiciones donde antes había libertad, y quien llega de Python o Java se encuentra hablando de propiedad y préstamos sin saber para qué sirven.

El planteamiento de este curso es explicar antes el problema que la regla. Cada mecanismo del lenguaje aparece después de mostrar el error de memoria que evita: doble liberación, puntero colgante, acceso simultáneo. Se practica en cuaderno con evcxr para ver cada regla en acción sin esperar a compilar un proyecto, y se cierra con una herramienta real construida con Cargo.

Al terminar se lee y escribe Rust idiomático y, sobre todo, se sabe interpretar lo que el compilador está diciendo, que es la barrera donde más gente abandona. Abre paso al curso de Rust avanzado, con traits, macros y concurrencia, y al uso del lenguaje en sistemas embebidos, herramientas de línea de comandos y servicios de red.

¿Para quién es este curso?

  • Desarrolladores de C o C++ que quieren las mismas garantías de rendimiento sin errores de memoria.
  • Ingeniería de sistemas embebidos que evalúa Rust para firmware con requisitos de fiabilidad.
  • Programadores de lenguajes con recolector de basura que necesitan control explícito de recursos.
Bajo demanda

Curso diseñado con la ficha cerrada. Se produce al confirmarse un grupo o un contrato.

Código
LNG-180
Nivel
Iniciación
Público
Desarrollo, Ingeniería / Industria
Entorno
Rust, JupyterLab

Este curso incluye

  • 39 clases en vídeo bajo demanda
  • Práctica íntegramente en JupyterLab, solo con un navegador
  • Tutorización en el campus
  • Acceso desde móvil, tableta y ordenador
  • Actualizaciones cuando cambia la versión de la herramienta
  • Certificado de finalización

Sigue aprendiendo

Cursos relacionados

PY-101Lenguajes y Fundamentos de Programación

Python desde cero

Variables, tipos, operadores, condicionales, bucles y funciones con práctica continua en cuaderno.

PythonGoogle Colab

Iniciación 42 clases

PY-102Lenguajes y Fundamentos de Programación

Estructuras de datos en Python

Listas, tuplas, diccionarios y conjuntos: cuándo usa cada una un programador con oficio.

Python

Iniciación 33 clases

Bajo demanda

DEV-101Lenguajes y Fundamentos de Programación

Git y GitHub para equipos técnicos

Ramas, revisiones y resolución de conflictos con un flujo de trabajo que un equipo puede sostener.

Git

Iniciación 34 clases