---
# System prepended metadata

title: 'Intro a Rust :crab:'
tags: [español, zombienet]

---

# Intro a Rust :crab:

## Módulo 0 - [Intro]
- Qué es Rust?
    - Breve historia
    - Objectivos (por qué rust?)
    - Comunidad y recursos de aprendizaje
- Instalación y herramientas
    - Instalación
    - rustup, rustc y `toolchains`
    - cargo y [`creates`](https://crates.io)
    - IDEs y extensiones útiles
    - `Hello rust!`
    - `Debug` ?
- Ejercicio inicial

## Módulo 1 - [sintaxis]
- Sintaxis 1
    - Sistema de tipos
    - Variables
    - Funciones
    - Estructuras de control
    - Comentarios
    - Ejercicio 
- Sintaxis 2
    - Estructuras
    - `Impl` (implementaciones)
    - `Enums` (enumenraciones)
    - `Traits`
    - Ejercicio
- Ejercicio sintaxis

## Módulo 2 - [**Lo que hace a rust único**]
- `Ownership` and `borrowing` 
- `Lifetime`
- Ejercicio ownership

## Módulo 3 - [Estructura del proyecto y pruebas]
- Estructura de proyecto
    - Paquetes
    - Módulos
    - `crates`
- `Testing`
    - Cómo escribirlos?
    - Organización 
- Ejercicio con test

## Módulo 4 - [Manejo de errores, collecciones y genéricos]
- Manejo de Errores
    - `Result` 
    - Errores recuperables
    - Errores no recuperables
    - *Panic*
- Collecciones
    - `HashMap`s
    - Vectores
- Genéricos
    - Tipos de datos genéricos
- Ejercicio

## Módulo 5 - [concurrencia] ?
- Introducción
- Procesos / hilos
- Traits (Send/Sync)

## Apéndice 1 - [Macros]
