DEV Community

Cover image for 34 ⭐s in 3 days: Hard but For the First Time!
Abinash Sahoo
Abinash Sahoo

Posted on

34 ⭐s in 3 days: Hard but For the First Time!

The repo I am talking about is rust-practice. (do not forget to give it a ⭐)

What is rust-practice?

I am Abinash, a beginner learning programming with Rust.

I read the official docs then some YouTube videos then the Rustlings but never felt confident in my skills to put it out there in public.

So, I created rust-practice.

rust-practice is a collection of 240+ exercises to learn and practice Rust for building production-grade CLI tools.

Now, you have a question.

Why did you create another exercise guide?

I created this exercise guide for beginners like me who need to solve lots of exercises on one topic to get a strong grasp on it.

We will deep dive into its features but before that let's look at the GitHub stats of my repo.

GitHub Stats

  • 34 stars and counting
  • 2 contributor
  • 2 forks
  • 6 discussions
  • 1926 repo views
  • 32 clones

rust-practice

rust-practice

Features of rust-practice?

rust-practice mainly has 3 advantages over other exercises.

1. Structured Exercises

rust-practice has divided all Rust concepts into four categories i.e. Basics, Intermediate, Advanced and Projects. We call these "levels".

Each level has multiple topics in it.

For example; the Basics section has variables, and functions whereas the Advanced section has async unsafe Rust etc.

Then each topic contains 10 different exercises to help you fully grasp the topic.

So, 4 levels have 24 topics with 10 different exercises each which results in 240+ exercises.

2. Progress Tracker

When I was learning Rust from the book and YouTube, I was unable to track my progress and how much of Rust I had completed.

But in the case of rust-practice I attached a % to every topic so that after completion of any topic you know exactly how much you have covered and how much is left to complete.

Do not take these % seriously, because programming never ends.

3. Production-grade Projects

There are multiple exercise guides for Rust and they are well-documented and include test cases to test your code.

But for now, rust-practice does not include any test cases to test your code. But, it has production-grade projects that other exercise lacks.

Not 1, Not 5, Not 10, rust-practice gives you 60+ production-grade projects to do.

For the demo, these are some projects rust-practice includes.

  • Log Analyzer: Build a CLI tool to parse and analyze log files, providing statistics and error reports.
  • Process Manager: Build a CLI tool to list and manage system processes (e.g., kill processes).
  • Backup Manager: Create a CLI tool to automate the backup of files to a specified location.
  • Package Signer: Build a CLI tool that signs packages with a cryptographic signature.

I hope you got the idea.

Folder Structure

This repo is divided into 3 types of folders.

  1. Levels
    • Level indicates the difficulty of exercises.
    • e.g. Basic, Intermediate, Advanced, Projects
  2. Topics
    • Each level contains multiple topics.
    • Each topic is a cargo workspace.
    • e.g. variables, functions, enums, traits ...
  3. Exercises
    • Each topic contains 10 exercises.
    • Each exercise is a member of that workspace.
    • e.g. variables_01, variables_02, variables_03 ...

Other Folders and Files

  1. Image Folder
    • It contains images that are used in the README.md file.
  2. Quick Links
    • Quick links is a file, that contains links to solutions for all exercises(i.e. links to src/main.rs).
├── 01-basic-rust                           // Level
│   └── 01_hello_world                      // Topic
│       ├── Cargo.lock
│       ├── Cargo.toml
│       └── hello_world_01                  // Exercise
│           ├── Cargo.toml
│           └── src
│               └── main.rs                 // Solution
├── 02-intermediate-rust
├── 03-advanced-rust
├── 04-projects
├──images                                   // Images Folder
│   └── rust-practice-map.png               // Mind Map
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── QUICK_LINKS.md                          // Direct Links
├── README.md
└── SECURITY.md
Enter fullscreen mode Exit fullscreen mode

You can quickly navigate to solutions using Quick Links.

Future Plans

For now, my entire focus is only on rust-practice.

After its completion, I already planned out and created exercises for backend-rust(i.e. learn building high-end scalable backend systems in Rust) and much more.

Also, I will regularly share updates here in the dev community.

How can you contribute to rust-practice?

I highly encourage everyone to raise issues, find bugs or code improvements and raise your first PR.

You can also suggest better exercises to replace current ones.

Final Thoughts

I created this repo with a dream to help beginners who want to learn Rust effectively and fast.

Seeing people love and their helpful comments, encourage and give me motivation to keep working for the community.

I hope you like my idea and consider it a helpful resource who want to learn Rust.

Thanks, everyone, for giving your valuable time to be a part of my journey.

Have a great day.

Happy Rust Journey!🦀

Top comments (0)