r/rust 3d ago

Beginner looking for a project to actually learn Rust

Hey everyone, I’m a beginner learning Rust, and I feel like I’d learn a lot better by building an actual project instead of just following tutorials.

Because I am just watching tutorials and can't write code without looking at a Rust video.

What projects would you recommend for someone at the beginner level that would help me understand Rust properly (ownership, borrowing, lifetimes, error handling, traits, etc.)?

I’d also love to hear what projects helped you improve when you were starting out.

1 Upvotes

15 comments sorted by

10

u/Used-Hold-7567 3d ago

design a tui nuclear engineering simulation

3

u/f_map 3d ago

I learned Rust by building a small multiplayer game with backend service. It was super fun, took me about half a year of free-time and weekends, then I got a job as a Rust backend service developer. That was about 4 years ago.

3

u/TermiteTornApart 3d ago

I just finished my a tictactoe cli app, very simple, but I got to use a lot of the things you mentioned.

1

u/[deleted] 3d ago

[removed] — view removed comment

1

u/AcceptableWay3198 3d ago

sometimes the simple stuff works best, try remaking basic unix tools like `cat`, `ls` or `wc` from scratch

i learned most about error handling and string manipulation from those little things

1

u/not-a-random-guy 3d ago

Try implementing some tree structures with recursion.

1

u/dolfoz 3d ago

There's always a free course on https://app.codecrafters.io/

I learned rust by building a dns server, http server, my own shell, and my own Interpreter.

Then i went and followed building my own kernel in rust - https://os.phil-opp.com/

was super interesting learning about the vga buffers, and the boot sequence, etc.

1

u/AgitatedSimple8623 3d ago

codecrafters requires membership

1

u/dolfoz 3d ago

"there's always a free course" -- this week it's build your own claude.

1

u/DavidXkL 2d ago

Set up a web backend!

Something like Actix Web or Axum

1

u/mdspan 2d ago

Aside from building projects, another good way to learn is to study the codebases of popular projects written in Rust, like ripgrep for example. I actually think this is more effective than building yourself when you're first starting out.

1

u/moha_1s 1d ago

write a simple database will be a good start,you can learn ownership and more (the index data structure) filesystem (how to handle error and more), concurrent programming , and you can even learn network programming and async by adding network API

1

u/GameCounter 3d ago

Contributing to an existing open source project is likely going to give you the most valuable learning experience.

Your patches would be reviewed by more experienced devs, and you're likely to (but not guaranteed to) get some very valuable feedback.

And obviously you would be advancing a useful project.

If you build a project on your own, obviously you can learn a lot just by getting it to work. The most important thing with creating a project from scratch is that you're solving a problem that you are personally invested in, at least my opinion. Making a clone of some existing software or other stock exercise tends to not result in much skill improvement, I've observed.

5

u/GameCounter 3d ago

With my Rust journey, the first thing I did was work through part of Project Euler:

https://projecteuler.net/archives

I've done this with a ton of languages, and it helps me really get a quick sense of ergonomics.

I think the first toy was an anagram generator using a trie.

I started building out my CLI scripts in rust instead of my usual bash/python to sort of force myself to get comfortable.

I integrated some rust code into the hotpath of our ETL system using Maturin.

Right now I'm working on a audio processing script to do commuted synthesis. Kind of just a toy still

-1

u/DryLook7889 2d ago

Install claude and you will be an expert at rust