<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Héctor David Leiva Gamboa</title>
    <description>The latest articles on Forem by Héctor David Leiva Gamboa (@rustarch).</description>
    <link>https://forem.com/rustarch</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2642349%2Fd367876e-6545-4a61-be39-c0412957073c.jpg</url>
      <title>Forem: Héctor David Leiva Gamboa</title>
      <link>https://forem.com/rustarch</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rustarch"/>
    <language>en</language>
    <item>
      <title>Día 6/365. Control de flujo: if, else, y expresiones.</title>
      <dc:creator>Héctor David Leiva Gamboa</dc:creator>
      <pubDate>Mon, 06 Jan 2025 22:06:55 +0000</pubDate>
      <link>https://forem.com/rustarch/dia-6365-control-de-flujo-if-else-y-expresiones-37d4</link>
      <guid>https://forem.com/rustarch/dia-6365-control-de-flujo-if-else-y-expresiones-37d4</guid>
      <description>&lt;p&gt;En esta ocasión, aprendí a realizar &lt;code&gt;if&lt;/code&gt; y &lt;code&gt;else&lt;/code&gt;, y cuál es la diferencia entre una expresión y una declaración.&lt;/p&gt;

&lt;p&gt;Primero, ¿cómo es la estructura básica de un &lt;code&gt;if&lt;/code&gt; y un &lt;code&gt;else&lt;/code&gt;?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if condicion {
} else {
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En la parte que dice &lt;code&gt;condicion&lt;/code&gt;, hay que realizar cualquier tipo de comparación o pasar un booleano. Ahora bien, en lenguajes como C++ había que poner paréntesis &lt;code&gt;()&lt;/code&gt; para hacer la comparación, pero en Rust no hace falta. Es algo que extraño, pero hay que acostumbrarse. El uso de un condicional es muy intuitivo, ya que se utilizan los mismos comparadores de siempre.&lt;/p&gt;

&lt;p&gt;Además, estudié una cosa más: las expresiones y la diferencia con una declaración. Cuando declaras una variable, lo haces directamente, por ejemplo: &lt;code&gt;x = 1&lt;/code&gt;. Pero en Rust (no sé si en otros lenguajes también), una variable puede tener un valor asignado como resultado de una comparación:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let y = if x == 1 { true } else { false };
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esto puede ser útil, aunque en otros lenguajes que no tienen esta funcionalidad se puede hacer con una función, lo cual consume más espacio. Este enfoque, en cambio, es más compacto.&lt;/p&gt;

&lt;p&gt;Ahora bien, esta parte fue un poco complicada, ya que tuve algunos errores al hacerlo, pero el compilador me ayudó a resolverlos. Se trata de las funciones. Como todavía no sé mucho sobre ellas, se me complicó un poco. Aquí dejo dos ejemplos y sus diferencias:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fn main() {
   let x = true;
   println!("{} Rust", mensaje(x));
}

fn mensaje(comparacion: bool) -&amp;gt; &amp;amp;'static str {
   if comparacion {
      "Hola"
   } else {
      "Adiós"
   }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esta es solo una función que devuelve un string (&lt;code&gt;-&amp;gt; &amp;amp;'static str&lt;/code&gt;) y que recibe como entrada una variable. Esto es muy importante, ya que depende de la entrada de la variable. En este caso, la terminal nos devuelve: &lt;code&gt;Hola Rust.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Ahora, con el siguiente ejemplo, que tomó un poco más de tiempo hacerlo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fn main() {
   println!("{} Rust", mensaje(&amp;amp;false));
}

fn mensaje(comparacion: &amp;amp;bool) -&amp;gt; &amp;amp;'static str {
   if *comparacion {
      "Hola"
   } else {
      "Adiós"
   }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;La principal diferencia es que la entrada es directamente un parámetro por referencia y no una variable. Por esta razón, Rust nos obliga a no duplicar este parámetro. ¿Por qué duplicar un parámetro si podemos usarlo en el mismo espacio en la memoria RAM? Por esto, debemos usar tanto los &lt;code&gt;&amp;amp;&lt;/code&gt; como el &lt;code&gt;*&lt;/code&gt;. El &lt;code&gt;&amp;amp;&lt;/code&gt; evita duplicar el valor en un espacio de memoria, mientras que el &lt;code&gt;*&lt;/code&gt; permite acceder al valor almacenado en la RAM.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Día 5/365. Variables, mutabilidad y sombras.</title>
      <dc:creator>Héctor David Leiva Gamboa</dc:creator>
      <pubDate>Sun, 05 Jan 2025 16:48:35 +0000</pubDate>
      <link>https://forem.com/rustarch/dia-5365-variables-mutabilidad-y-sombras-511a</link>
      <guid>https://forem.com/rustarch/dia-5365-variables-mutabilidad-y-sombras-511a</guid>
      <description>&lt;p&gt;Ahora vamos a hablar del comportamiento de un dato dentro de la memoria. Como bien sabe un programador, creamos datos dentro de la memoria, y algunas veces tenemos acceso total a ella. Rust, al tener esta característica, nos permite crear variables y modificarlas a nuestro placer, siguiendo algunas reglas, como el tipo de variable que estamos utilizando. En este caso, hay tres tipos de variables que pude observar:&lt;/p&gt;

&lt;h2&gt;
  
  
  Variables Inmutables
&lt;/h2&gt;

&lt;p&gt;Estas variables no se pueden cambiar de una forma fácil, ya que son inmutables por razones de seguridad.&lt;br&gt;
&lt;code&gt;let x = 5;&lt;/code&gt;&lt;br&gt;
En este caso, &lt;code&gt;x&lt;/code&gt; es igual a &lt;code&gt;5&lt;/code&gt;, pero si intentamos cambiarlo a &lt;code&gt;x = 6&lt;/code&gt;, el programa nos dará un error por motivos de seguridad.&lt;/p&gt;

&lt;h2&gt;
  
  
  Variables Mutables
&lt;/h2&gt;

&lt;p&gt;Ahora vamos con las variables que se pueden cambiar sin ningún tipo de problema: las variables mutables. La forma de declarar estas variables es la siguiente:&lt;br&gt;
&lt;code&gt;let mut y = 'a';&lt;/code&gt;&lt;br&gt;
Aquí usamos la palabra clave mut, que indica que la variable puede mutar. Sin embargo, hay una regla: debe permanecer del mismo tipo. Es decir, si es un &lt;code&gt;char&lt;/code&gt;, no se puede cambiar a un &lt;code&gt;i8&lt;/code&gt; (entero de 8 bits).&lt;br&gt;
Por ejemplo:&lt;br&gt;
&lt;code&gt;y = 'b';&lt;/code&gt;&lt;br&gt;
Ahora es intuitivo ver cómo podemos cambiar el valor de la variable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sombras
&lt;/h2&gt;

&lt;p&gt;Este tipo de variables es un poco especial, y aún no estoy seguro de dónde se podría usar exactamente. Por ejemplo, tenemos una variable inmutable llamada x (como hicimos anteriormente) con el valor 5. Si quisiéramos cambiar este valor, podríamos crear otra variable con el mismo nombre, sobrescribiéndola:&lt;br&gt;
&lt;code&gt;let x = 6;&lt;/code&gt;&lt;br&gt;
Ahora, &lt;code&gt;x&lt;/code&gt; tiene el valor &lt;code&gt;6&lt;/code&gt;, y el valor anterior &lt;code&gt;(5)&lt;/code&gt; ha desaparecido. Es como si hubiéramos sobrescrito la variable. Sin embargo, parece que este proceso de sobrescribir una variable es más costoso que simplemente cambiar su valor.&lt;/p&gt;

&lt;p&gt;La razón por la que se llama "sombra" es porque, si este cambio ocurre dentro de un bloque (por ejemplo, un if o un while), fuera del bloque la variable &lt;code&gt;x&lt;/code&gt; seguirá teniendo su valor original &lt;code&gt;(5)&lt;/code&gt;, no el nuevo valor &lt;code&gt;(6)&lt;/code&gt;. Esto puede proporcionar un punto adicional de seguridad.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Día 4/365. Tipos de datos en Rust: Escalares y compuestos.</title>
      <dc:creator>Héctor David Leiva Gamboa</dc:creator>
      <pubDate>Sun, 05 Jan 2025 04:57:48 +0000</pubDate>
      <link>https://forem.com/rustarch/dia-4365-tipos-de-datos-en-rust-escalares-y-compuestos-3k11</link>
      <guid>https://forem.com/rustarch/dia-4365-tipos-de-datos-en-rust-escalares-y-compuestos-3k11</guid>
      <description>&lt;p&gt;Rust organiza los tipos de datos en dos categorías principales: Escalares y Compuestos. Este diseño busca maximizar la seguridad y eficiencia en el manejo de datos. Aquí te explico brevemente cada categoría y algunas funcionalidades clave.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tipos escalares
&lt;/h2&gt;

&lt;p&gt;Los tipos escalares representan un solo valor. Rust incluye cuatro tipos principales:&lt;br&gt;
Enteros &lt;code&gt;(i8, u8, i32, etc.)&lt;/code&gt;: Valores positivos o negativos con tamaños específicos.&lt;br&gt;
Punto flotante &lt;code&gt;(f32, f64)&lt;/code&gt;: Para números decimales.&lt;br&gt;
Booleanos &lt;code&gt;(bool)&lt;/code&gt;: Representan true o false.&lt;br&gt;
Caracteres &lt;code&gt;(char)&lt;/code&gt;: Representan un carácter Unicode, como 'a' o '😊'.&lt;/p&gt;

&lt;p&gt;Son ideales para cálculos simples o datos básicos.&lt;/p&gt;
&lt;h2&gt;
  
  
  Tipos compuestos
&lt;/h2&gt;

&lt;p&gt;Los tipos compuestos agrupan múltiples valores:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tuplas&lt;/strong&gt;: Colecciones de valores heterogéneos, útiles para agrupar datos relacionados.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let persona: (&amp;amp;str, i32) = ("Juan", 30);
println!("Nombre: {}, Edad: {}", persona.0, persona.1);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Arreglos&lt;/strong&gt; ([T; N]): Almacenan valores homogéneos con tamaño fijo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numeros = [1, 2, 3];
println!("Primer número: {}", numeros[0]);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Vectores&lt;/strong&gt; (Vec): Una colección dinámica para valores del mismo tipo. Perfectos cuando el tamaño de los datos es variable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let mut vec = Vec::new();
vec.push(10);
vec.push(20);
println!("{:?}", vec);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Día 3/365. Estructura básica de un programa en Rust.</title>
      <dc:creator>Héctor David Leiva Gamboa</dc:creator>
      <pubDate>Fri, 03 Jan 2025 20:28:52 +0000</pubDate>
      <link>https://forem.com/rustarch/dia-3365-estructura-basica-de-un-programa-en-rust-3df</link>
      <guid>https://forem.com/rustarch/dia-3365-estructura-basica-de-un-programa-en-rust-3df</guid>
      <description>&lt;p&gt;Primero que todo, Rust es un lenguaje de bajo nivel si no estoy equivocado, y si no se han dado cuenta, es parecido a C o C++. Esto es porque los programadores pueden modificar la memoria en el programa. Sin embargo, Rust tiene un compilador superior, ya que permite realizar pruebas antes de mover el programa. Esto nos evita problemas futuros como segmentos de memoria no válidos, un inconveniente común en C++ u otros lenguajes. Rust nos indica dónde están esos problemas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comentarios
&lt;/h2&gt;

&lt;p&gt;Los comentarios son fundamentales en Rust, como se mencionó el día 2. Rust puede generar su propia documentación a partir de los comentarios dentro de las funciones. La forma de escribir comentarios es la siguiente: &lt;code&gt;// Comentarios&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Funciones
&lt;/h2&gt;

&lt;p&gt;No profundizaremos en cómo se hacen las funciones o módulos, solo su estructura básica.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fn main(){
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esta es la estructura básica de una función en Rust. Por ahora, no sé si hay tipos de funciones como en C++, donde al crear una función hay que devolver un parámetro del mismo tipo que la función. Por ejemplo, si la función es de tipo booleano, es obligatorio retornar un booleano.&lt;/p&gt;

&lt;h2&gt;
  
  
  Variables
&lt;/h2&gt;

&lt;p&gt;Solo sé cómo declarar un tipo de variable, que es &lt;code&gt;let&lt;/code&gt;. Esta variable puede ser un string, un número, un carácter, etc. A mi parecer, es similar a Python, ya que se puede definir una variable sin especificar su tipo. Un ejemplo sería:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let palabra="Hola";
let numero="2025";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Declaré dos variables, pero no especifiqué su tipo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Imprimir en la terminal
&lt;/h2&gt;

&lt;p&gt;Esto es básico para mostrar información en una terminal: &lt;code&gt;println!();&lt;/code&gt;. Su estructura es similar a la de Python con &lt;code&gt;print&lt;/code&gt;, y el &lt;code&gt;ln&lt;/code&gt; significa &lt;strong&gt;line next&lt;/strong&gt; (siguiente línea), lo cual es muy útil a mi parecer. Al final, se debe añadir un &lt;code&gt;;&lt;/code&gt;, como en Java o C++. Si no se coloca este &lt;code&gt;;&lt;/code&gt; al final de cada instrucción, no se realizará la compilación y se mostrará un error.&lt;/p&gt;

&lt;h2&gt;
  
  
  Funciones y Macros
&lt;/h2&gt;

&lt;p&gt;Hay una diferencia entre funciones y macros, ya que hay un símbolo extraño en &lt;code&gt;println!&lt;/code&gt;, que es &lt;code&gt;!&lt;/code&gt;. Este símbolo significa que la función que estamos llamando es una macro. Una macro puede recibir una cantidad variable de parámetros: 1, 6, o los que se necesiten. Por otro lado, las funciones normales requieren que se introduzca la cantidad exacta de parámetros; de lo contrario, se generará un error. Esto puede ser útil, pero también es posible hacer que las funciones normales reciban una lista, lo que permite realizar algo similar a una macro en una función normal.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Día 2/365. Cargo?</title>
      <dc:creator>Héctor David Leiva Gamboa</dc:creator>
      <pubDate>Thu, 02 Jan 2025 23:04:12 +0000</pubDate>
      <link>https://forem.com/rustarch/dia-2365-cargo-5ag</link>
      <guid>https://forem.com/rustarch/dia-2365-cargo-5ag</guid>
      <description>&lt;p&gt;Ayer descubrí un comando que no conocía: cargo. Me pregunté qué significaba y para qué servía. Hoy quiero explicar qué es Cargo desde mi perspectiva, basándome en la documentación oficial de Rust y en foros de programación.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué es Cargo?
&lt;/h2&gt;

&lt;p&gt;Cargo es un gestor de proyectos y dependencias para Rust. Si has trabajado con herramientas como npm en Node.js o pip en Python, Cargo cumple un rol similar. Se encarga de gestionar tareas clave en el desarrollo con Rust, como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crear proyectos.&lt;/li&gt;
&lt;li&gt;Administrar dependencias.&lt;/li&gt;
&lt;li&gt;Compilar el código.&lt;/li&gt;
&lt;li&gt;Ejecutar pruebas.&lt;/li&gt;
&lt;li&gt;Generar documentación.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Empezar con Cargo&lt;/p&gt;

&lt;p&gt;Para crear un nuevo proyecto en Rust, utiliza el comando:&lt;br&gt;
&lt;code&gt;cargo new "nombre"&lt;/code&gt;&lt;br&gt;
Esto genera una estructura de carpetas básica para comenzar tu proyecto.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comandos útiles de Cargo
&lt;/h2&gt;

&lt;p&gt;A continuación, presento una lista de comandos esenciales que puedes usar en la terminal. Aunque Cargo no tiene una interfaz gráfica, su uso en la terminal es intuitivo y fácil de aprender con la práctica.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;cargo new "nombre"&lt;/code&gt;: Crea un nuevo proyecto.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cargo build&lt;/code&gt;: Compila tu proyecto.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cargo run&lt;/code&gt;: Compila y ejecuta tu programa.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cargo test&lt;/code&gt;: Ejecuta pruebas para verificar errores en tu código.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cargo fmt&lt;/code&gt;: Formatea tu código para mantener un estilo limpio y consistente.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cargo clippy&lt;/code&gt;: Analiza tu código para encontrar posibles mejoras y hacerlo más eficiente.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cargo doc&lt;/code&gt;: Genera documentación a partir de los comentarios en tu código.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cargo clean&lt;/code&gt;: Elimina archivos temporales generados durante la compilación para liberar espacio.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Algo que realmente me gusta de Rust es su compilador. Es muy práctico y, hasta ahora, ha demostrado ser bastante amigable para las personas que recién comienzan con el lenguaje. Actualmente, espero que siga siendo así en el futuro, ya que no me ha dado ningún problema.&lt;/p&gt;

&lt;p&gt;Una de las cosas que más aprecio es cómo el compilador maneja los errores: no solo señala dónde está el problema, sino que también proporciona sugerencias claras sobre cómo resolverlo. Esto lo convierte en una herramienta invaluable para aprender y desarrollar proyectos con confianza.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Día 1/365. Instalar Rust en ArchLinux</title>
      <dc:creator>Héctor David Leiva Gamboa</dc:creator>
      <pubDate>Wed, 01 Jan 2025 21:08:47 +0000</pubDate>
      <link>https://forem.com/rustarch/dia-1365-instalar-rust-en-archlinux-2nie</link>
      <guid>https://forem.com/rustarch/dia-1365-instalar-rust-en-archlinux-2nie</guid>
      <description>&lt;h1&gt;
  
  
  Objectivo
&lt;/h1&gt;

&lt;p&gt;Hoy como primer dia, es facil, como instalar Rust en ArchLinux es el primer paso y como imprimir un texto simple y luego como ejecutar el programa&lt;/p&gt;

&lt;h1&gt;
  
  
  Instalar Rust en ArchLinux:
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;sudo pacman -S rust&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rustc --version&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cargo --version&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Realizar el programa
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;cargo new dia_1&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Aqui nos creara una carpeta del proyecto es algo asi.&lt;br&gt;
.&lt;br&gt;
├── Cargo.toml&lt;br&gt;
├── src&lt;br&gt;
     └── main.rs&lt;br&gt;
Solo tienes que editar main.rs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fn main() {
   println!("Hello, word");
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>rust</category>
      <category>linux</category>
      <category>archlinux</category>
    </item>
    <item>
      <title>Reto de Rust 365 días, 2025!!</title>
      <dc:creator>Héctor David Leiva Gamboa</dc:creator>
      <pubDate>Wed, 01 Jan 2025 20:24:25 +0000</pubDate>
      <link>https://forem.com/rustarch/reto-de-rust-365-dias-2025-52io</link>
      <guid>https://forem.com/rustarch/reto-de-rust-365-dias-2025-52io</guid>
      <description>&lt;p&gt;Hola, soy un universitario en el TEC de Costa Rica, estudio Ingeniería Mecatrónica y quiero aprender un nuevo idioma de programación. Un día vi Rust, no me puse a investigar mucho en ese momento, pero ahora he decidido crear un reto de &lt;strong&gt;365&lt;/strong&gt; días aprendiendo Rust.&lt;/p&gt;

&lt;p&gt;Mi plan es el siguiente:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aprender Rust en un año.&lt;/strong&gt;&lt;br&gt;
    &lt;strong&gt;Realizar proyectos sencillos.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;(No sé mucho sobre Rust, así que esto es algo general y, en el futuro, modificaré esta idea).&lt;/p&gt;

&lt;p&gt;Lo más importante para mí es aprender al menos una cosa cada día, todos los días del año &lt;strong&gt;2025&lt;/strong&gt;, y publicarlo para recibir apoyo y formar una comunidad.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fempkulwcr8z4h4ccubbx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fempkulwcr8z4h4ccubbx.png" alt="Image description" width="379" height="133"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rust</category>
    </item>
  </channel>
</rss>
