<?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>DEV Community: Kenechukwu Marvellous </title>
    <description>The latest articles on DEV Community by Kenechukwu Marvellous  (@kehn_marv).</description>
    <link>https://dev.to/kehn_marv</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%2F1776829%2F47f0fa4b-da2d-4519-90fe-5ebb0bdfd26e.png</url>
      <title>DEV Community: Kenechukwu Marvellous </title>
      <link>https://dev.to/kehn_marv</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kehn_marv"/>
    <language>en</language>
    <item>
      <title>Rust 101 🦀 (Ep 02)</title>
      <dc:creator>Kenechukwu Marvellous </dc:creator>
      <pubDate>Tue, 03 Jun 2025 20:06:32 +0000</pubDate>
      <link>https://dev.to/kehn_marv/rust-101-ep-02-3be6</link>
      <guid>https://dev.to/kehn_marv/rust-101-ep-02-3be6</guid>
      <description>&lt;h2&gt;
  
  
  &lt;code&gt;Main&lt;/code&gt;
&lt;/h2&gt;



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

&lt;/div&gt;



&lt;p&gt;• &lt;code&gt;main&lt;/code&gt; is the &lt;strong&gt;starting point&lt;/strong&gt; of every Rust program. It’s &lt;strong&gt;where the program begins running.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• Rust &lt;strong&gt;automatically looks&lt;/strong&gt; for a function named &lt;code&gt;main()&lt;/code&gt; when you run a program.&lt;/p&gt;

&lt;p&gt;• That’s why it must be called &lt;code&gt;main&lt;/code&gt; — &lt;strong&gt;you can’t rename it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;• it is required in executable programs&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;But what is the parenthesis &lt;code&gt;()&lt;/code&gt; after &lt;code&gt;main&lt;/code&gt; for ?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;• These are &lt;strong&gt;function parameters&lt;/strong&gt;.&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() {
    // your code here
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;()&lt;/code&gt; means:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This function takes &lt;strong&gt;no input&lt;/strong&gt; (no parameters)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can't define main with an input or parameter &lt;br&gt;
I.e&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(input: &amp;amp;str) {
    // ❌ This is invalid in Rust
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s because Rust expects &lt;code&gt;main()&lt;/code&gt; to always match a specific signature — it must look like:&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() {
    // ✅ This is valid
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But functions &lt;strong&gt;can&lt;/strong&gt; take input. And when they do, the input goes &lt;strong&gt;inside those parentheses.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example: &lt;strong&gt;Example 1&lt;/strong&gt;&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() {
    greet("Kehn");
}

fn greet(name: &amp;amp;str) {
    println!("👋🏼 Hello, {}!", name);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Here's what's happening&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Rust requires all instructions to run from inside a function, and that function must start from &lt;code&gt;main()&lt;/code&gt;.&lt;br&gt;
that's why we had to write main and call the greet function inside it first&lt;/p&gt;

&lt;p&gt;In the line &lt;code&gt;greet("Kehn");&lt;/code&gt;, you are calling the function &lt;code&gt;greet&lt;/code&gt;, and passing &lt;code&gt;"Kehn"&lt;/code&gt; as the input to it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;🧠 Let's imagine the compiler is a robot that follows rules:&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;It &lt;strong&gt;does not&lt;/strong&gt; read your code from top to bottom like a &lt;strong&gt;storybook&lt;/strong&gt;.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Instead, it asks:&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;"Where is &lt;code&gt;main()&lt;/code&gt;? That’s my &lt;strong&gt;entry&lt;/strong&gt; point. I’ll start there and run whatever is inside it."&lt;/p&gt;

&lt;p&gt;If you just write &lt;code&gt;greet("Kehn");&lt;/code&gt; &lt;strong&gt;outside&lt;/strong&gt; of &lt;strong&gt;any function&lt;/strong&gt;, Rust gets confused:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;❌ "Wait, when should I run this? How? I don't just run random lines of code lying outside — that's illegal in &lt;strong&gt;Rustland!&lt;/strong&gt;"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;• &lt;code&gt;greet()&lt;/code&gt; is &lt;strong&gt;defined&lt;/strong&gt; down below&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fn greet(name: &amp;amp;str) {
    println!("👋🏼 Hello, {}!", name);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;— It's like saying: "Here's how you greet someone."&lt;/p&gt;

&lt;p&gt;• But unless someone &lt;strong&gt;calls&lt;/strong&gt; it from inside &lt;code&gt;main()&lt;/code&gt; (the starting point), it &lt;strong&gt;won't do&lt;/strong&gt; anything.&lt;/p&gt;

&lt;p&gt;Just &lt;strong&gt;defining&lt;/strong&gt; greet() doesn't tell the computer to run it. It's just there, waiting to be used.&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%2Fxld6pkzm24hi5x6t1r3p.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%2Fxld6pkzm24hi5x6t1r3p.png" alt="A simplified explanation of the concepts" width="715" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now let's dive into Example 1 &lt;strong&gt;bit&lt;/strong&gt; by &lt;strong&gt;bit&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Line 1&lt;/strong&gt;: &lt;code&gt;fn main() {&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;🔤 &lt;strong&gt;What it means:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;fn&lt;/code&gt; → This means function.&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;main&lt;/code&gt; → The name of the function. Rust always looks for &lt;code&gt;main()&lt;/code&gt; first. It's the entry point.&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;()&lt;/code&gt; → These are parentheses. This function takes no input.&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;{&lt;/code&gt; → This starts the body of the function. All the code that the function runs will go inside these curly braces &lt;code&gt;{}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;So what is happening?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  We’re telling Rust: "Hey, this is the main starting point. Whatever is inside these curly braces should run first."
&lt;/h2&gt;
&lt;/blockquote&gt;




&lt;p&gt;✅ &lt;strong&gt;Line 2&lt;/strong&gt;:     &lt;code&gt;greet("Kehn");&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;🔤 &lt;strong&gt;What it means&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;greet&lt;/code&gt; → This is the name of a function we’re calling (we'll define it later).&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;("Kehn")&lt;/code&gt; → We're passing a value — the text &lt;code&gt;"Kehn"&lt;/code&gt; — into that function.&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;;&lt;/code&gt; → This ends the line. Rust needs this semicolon to know the instruction is complete.&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;So what is happening?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  Inside &lt;code&gt;main()&lt;/code&gt;, we are saying: “Hey Rust, please run the greet function and give it the word &lt;code&gt;"Kehn"&lt;/code&gt;.”
&lt;/h2&gt;
&lt;/blockquote&gt;




&lt;p&gt;✅ &lt;strong&gt;Line 3&lt;/strong&gt;: &lt;code&gt;}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This ends the &lt;code&gt;main()&lt;/code&gt; function. It says: “That’s it for main. No more instructions here.”&lt;/p&gt;




&lt;p&gt;✅ &lt;strong&gt;Line 4&lt;/strong&gt;: &lt;code&gt;fn greet(name: &amp;amp;str) {&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;🔤 &lt;strong&gt;What it means&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;fn&lt;/code&gt; → Again, this is a &lt;strong&gt;function definition.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;greet&lt;/code&gt; → This is the name of the function.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;name:  &amp;amp;str&lt;/code&gt; → We are saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This function takes one parameter called name, and it must be a &lt;strong&gt;string slice&lt;/strong&gt; (a bit of text).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;More specifically:&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;name&lt;/code&gt; → This is the &lt;strong&gt;name of the variable&lt;/strong&gt; the function will use.&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;&amp;amp;str&lt;/code&gt; → This is the &lt;strong&gt;type&lt;/strong&gt; of that variable. It means: “a reference to a string” → like &lt;code&gt;"Kehn"&lt;/code&gt; or &lt;code&gt;"Rustacean"&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;{&lt;/code&gt; → Starts the body of the greet function.&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;So what is happening?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  We’re defining a function called greet that expects a name as input. Then, we’ll do something with that name — like printing it out.
&lt;/h2&gt;
&lt;/blockquote&gt;




&lt;p&gt;✅ &lt;strong&gt;Line 5&lt;/strong&gt;:     &lt;code&gt;println!("👋🏼 Hello, {}!", name);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;🔤 &lt;strong&gt;What it means&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;println!&lt;/code&gt; → This is a macro that prints a line of text to the screen.&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;!&lt;/code&gt; → Means it's a macro, not a normal function. Macros do some extra behind-the-scenes magic.&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;"👋🏼 Hello, {}!"&lt;/code&gt; → This is the text we want to print. The {} is a placeholder — we’ll fill it in.&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;, name&lt;/code&gt; → We are saying: “Put the value of name (which is &lt;code&gt;"Kehn"&lt;/code&gt;) inside the {}.”&lt;/p&gt;

&lt;p&gt;• &lt;code&gt;;&lt;/code&gt; → End of the instruction.&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;So what is happening?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Rust prints:&lt;/p&gt;
&lt;h2&gt;
  
  
  👋🏼 Hello, Kehn!
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because we passed &lt;code&gt;"Kehn"&lt;/code&gt; into greet, and greet used &lt;code&gt;println!&lt;/code&gt; to insert that value.&lt;/p&gt;




&lt;p&gt;✅ Line 6: &lt;code&gt;}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This ends the &lt;code&gt;greet()&lt;/code&gt; function.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't worry if you're still confused about lines 4 and 5 – we'll go through them in more detail in the next episodes.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;🎯 &lt;strong&gt;Final Flow Summary&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Rust starts with &lt;code&gt;main()&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;main()&lt;/code&gt; says: “Call the &lt;code&gt;greet()&lt;/code&gt; function and give it &lt;code&gt;"Kehn"&lt;/code&gt;.”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rust jumps to &lt;code&gt;greet()&lt;/code&gt; and sets name = &lt;code&gt;"Kehn"&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;greet()&lt;/code&gt; prints:&lt;br&gt;
👋🏼 Hello, Kehn!&lt;/p&gt;&lt;/li&gt;
&lt;/ol&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%2Fsfi5k7lvlz6ptvoox54s.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%2Fsfi5k7lvlz6ptvoox54s.png" alt="A Bigger picture understanding" width="625" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>rust</category>
      <category>beginners</category>
      <category>backend</category>
    </item>
    <item>
      <title>RUST 101 🦀 (Ep 01)</title>
      <dc:creator>Kenechukwu Marvellous </dc:creator>
      <pubDate>Tue, 03 Jun 2025 16:11:24 +0000</pubDate>
      <link>https://dev.to/kehn_marv/rust-101-4b7a</link>
      <guid>https://dev.to/kehn_marv/rust-101-4b7a</guid>
      <description>&lt;h2&gt;
  
  
  &lt;u&gt;Anatomy of a Rust program&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;So, let's say you want to write a Rust program that prints&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;( Hello, World! )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;when you run it.&lt;/p&gt;

&lt;p&gt;This is an example of what that code would look like:&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, world!");
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Running this code ☝🏼 will produce the desired output. But why didn't we just write &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hey, &lt;code&gt;Display (hello, world)&lt;/code&gt; on my screen and it works? Why do we have to follow the format shown above?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'll explain the code above bit by bit, detailing what each element means and does.&lt;br&gt;
&lt;strong&gt;Let's dive in&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;code&gt;fn&lt;/code&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;• fn is short for function.&lt;br&gt;
• A function is a block of code that &lt;strong&gt;performs&lt;/strong&gt; an &lt;strong&gt;action&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;• Not all code is a function.&lt;br&gt;
• However, the starting point of a program must be a function, and that function is called "&lt;code&gt;main&lt;/code&gt;."&lt;/p&gt;

&lt;p&gt;•It's the &lt;strong&gt;entry point&lt;/strong&gt;. The beginning. The commander-in-chief.&lt;br&gt;
•If you remove &lt;code&gt;main()&lt;/code&gt;, Rust won’t know where to start and will throw an error:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;error: cannot find function `main` in this crate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Rust is a &lt;strong&gt;compiled&lt;/strong&gt; and &lt;strong&gt;strongly typed systems language&lt;/strong&gt;, and it needs a clearly defined &lt;strong&gt;starting point&lt;/strong&gt; and &lt;strong&gt;structure&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Without&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;the compiler wouldn’t know:&lt;/p&gt;

&lt;p&gt;• Where to begin execution&lt;br&gt;
• How to manage scope, stack, variables, lifetimes, etc.&lt;/p&gt;

&lt;p&gt;Rust is optimized for &lt;strong&gt;performance&lt;/strong&gt;, &lt;strong&gt;safety&lt;/strong&gt;, and &lt;strong&gt;control&lt;/strong&gt;, so structure matters a lot.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We'll talk about main in the next episode. Stay rusty 😉🦀&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>programming</category>
      <category>rust</category>
      <category>backend</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Rust Programming Books Roadmap</title>
      <dc:creator>Kenechukwu Marvellous </dc:creator>
      <pubDate>Thu, 29 May 2025 10:41:46 +0000</pubDate>
      <link>https://dev.to/kehn_marv/rust-programming-books-roadmap-2ala</link>
      <guid>https://dev.to/kehn_marv/rust-programming-books-roadmap-2ala</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;👽Beginner-Level (Fundamentals)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;🔰&lt;strong&gt;Learn Rust in a Month of Lunches&lt;/strong&gt; (David MacLeod, Manning 2023)&lt;br&gt;
      🔎 &lt;strong&gt;Audience&lt;/strong&gt;: New programmers or those new to Rust&lt;br&gt;
      🔎&lt;strong&gt;Difficulty&lt;/strong&gt;: Very easy (no prior Rust required)&lt;/p&gt;

&lt;p&gt;🔰&lt;strong&gt;The official Rust book&lt;/strong&gt; (freely available online) &lt;br&gt;
      🔎 &lt;strong&gt;Audience&lt;/strong&gt;: New programmers or those new to Rust&lt;br&gt;
      🔎&lt;strong&gt;Difficulty&lt;/strong&gt;: Very easy (no prior Rust required)&lt;/p&gt;

&lt;p&gt;🔰&lt;strong&gt;Rust by Example&lt;/strong&gt; (Rust Project) A free, online collection of runnable examples that illustrate Rust concepts&lt;br&gt;
      🔎 &lt;strong&gt;Audience&lt;/strong&gt;: Beginners who prefer learning by trying examples&lt;br&gt;
      🔎&lt;strong&gt;Difficulty&lt;/strong&gt;: Easy (provides concise, hands-on demos)&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;🤡Intermediate-Level (Deepening Core Skills)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;📁&lt;strong&gt;Effective Rust&lt;/strong&gt; (David Drysdale, O’Reilly 2024)&lt;br&gt;
      🔎 &lt;strong&gt;Audience&lt;/strong&gt;: Programmers who have completed the basics and want to learn how to “speak Rust like a native”&lt;br&gt;
      🔎&lt;strong&gt;Difficulty&lt;/strong&gt;: Moderate&lt;/p&gt;

&lt;p&gt;📁&lt;strong&gt;Rust in Action&lt;/strong&gt; (Tim McNamara, Manning 2021)&lt;br&gt;
      🔎 &lt;strong&gt;Audience&lt;/strong&gt;:  Intermediate programmers interested in systems-level work&lt;br&gt;
      🔎&lt;strong&gt;Difficulty&lt;/strong&gt;: Moderate&lt;/p&gt;

&lt;p&gt;📁&lt;strong&gt;Programming Rust, 2nd Edition&lt;/strong&gt; (Jim Blandy, Jason Orendorff, Leonora Tindall; O’Reilly 2021)&lt;br&gt;
      🔎 &lt;strong&gt;Audience&lt;/strong&gt;: Experienced programmers who want an in-depth reference to “fast, safe systems development” in Rust&lt;br&gt;
      🔎&lt;strong&gt;Difficulty&lt;/strong&gt;: Hard&lt;/p&gt;

&lt;p&gt;📁&lt;strong&gt;Zero To Production in Rust&lt;/strong&gt; (Luca Palmieri, 2022)&lt;br&gt;
      🔎 &lt;strong&gt;Audience&lt;/strong&gt;: Developers who want to learn Rust for backend services&lt;br&gt;
      🔎&lt;strong&gt;Difficulty&lt;/strong&gt;: Moderate&lt;/p&gt;

&lt;p&gt;📁&lt;strong&gt;Rust Web Development&lt;/strong&gt; (Bastian Gruber, Manning 2022)&lt;br&gt;
      🔎 &lt;strong&gt;Audience&lt;/strong&gt;: Web developers who want to build high-performance web servers&lt;br&gt;
      🔎&lt;strong&gt;Difficulty&lt;/strong&gt;: Moderate&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;💀Advanced-Level&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;☠️&lt;strong&gt;Rust for Rustaceans&lt;/strong&gt; (Jon Gjengset, No Starch 2021)&lt;br&gt;
      🔎 &lt;strong&gt;Audience&lt;/strong&gt;: Programmers who want to write large-scale, idiomatic Rust code&lt;br&gt;
      🔎&lt;strong&gt;Difficulty&lt;/strong&gt;: Hard&lt;/p&gt;

&lt;p&gt;☠️&lt;strong&gt;The Rustonomicon&lt;/strong&gt; (Rust Project Documentation) – The unofficial “dark arts” guide to unsafe Rust&lt;br&gt;
      🔎 &lt;strong&gt;Audience&lt;/strong&gt;: Very advanced/experts and compiler enthusiasts&lt;br&gt;
      🔎&lt;strong&gt;Difficulty&lt;/strong&gt;: Very hard&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
