Rust Fundamentals
An 8-week, project-based, beginner program that teaches core Rust from scratch by building a real command-line tool. No prior Rust experience required — ship a working, tested CLI you can put on your resume.
- Pace
- Self-paced, start any week
- Length
- 8 weeks · 55 video lessons
- Repo
- paiml/rust-fundamentals-applied-program
Weekly email reminders: join the programjoin the program. Or add the 8 weeks to your calendar, starting one week from today:
Outline
Week 1 · Dev Environment, Git/GitHub Setup + Rust Basics
- Install Rust and set up VS Code with the Rust Analyzer
- Learn Git basics and create your project's GitHub repository with a first commit
- Set up Docker/dev-container basics for your Rust environment
- Create your first Rust project with cargo and run it
- Choose the problem your CLI tool will solve, and who it's for
- Installing RUST Members
- Overview of visual studio code Members
- Enabling the RUST Analyzer Members
- Using the RUST Analyzer Members
- Fundamentals of Codespaces Members
- Why consider version control Members
- Repository concepts Members
- The GIT command line tool Members
- Committing and pushing changes Members
- Using Docker and containers Members
Week 2 · Variables, Control Flow & Shadowing
- Learn variable assignment, immutability, and shadowing in Rust
- Practice if/else, loops, and match-based control flow
- Write the first branching logic your CLI tool will need
- Create a new RUST project Members
- Basic components of RUST code Members
- Variable assignment and Immutability Members
- Basics of control flow Members
- Shadowing variables Members
Week 3 · Loops & Match Control Flow
- Learn while loops, for loops, and break/continue
- Use match as Rust's primary control-flow tool
- Add a loop-driven feature to your CLI tool (e.g. processing a list of items)
- Introduction to loops Members
- The while loop Members
- The for loop Members
- Break and continue statements Members
- Match control flow Members
Week 4 · Functions, Borrowing & Error Handling
- Write functions with arguments and return values
- Learn Rust's borrowing concept and why it prevents whole classes of bugs
- Handle errors properly instead of using panic! everywhere
- Simple unit functions Members
- Return values Members
- Using arguments Members
- The Borrowing concept Members
- Using panic Members
- Error handling Members
Week 5 · Structs
- Define structs and create instances
- Add associated functions and constructors
- Model your CLI tool's core data as a struct
- Defining Structs Members
- Creating struct instances Members
- Associated functions and Constructors Members
- Other struct uses Members
Week 6 · Strings, Vectors & Enums
- Work with String and &str, and manipulate text
- Use vectors to store and retrieve collections of values
- Define enums, including Option, and use them in your project
- String and STR Members
- Basics of Vectors Members
- Adding elements to Vectors Members
- Defining an ENUM Members
- The option Enumerator Members
- Applied Enums Members
Week 7 · Testing & Organizing Your Code
- Organize code into a library plus binary, using cargo and modules
- Use crates and Cargo dependencies the right way for a growing project
- Write unit tests for your project's core logic
- Verify examples in your documentation with doctests
- Creating a library with cargo Members
- Documenting your code Members
- Extending with modules Members
- Introduction to testing in RUST Members
- Writing tests for your code Members
- Creating and using modules in RUST Members
- Working with Dependencies and libraries in RUST Members
- Using Crates io for RUST Members
- Ownership and Lifetimes Members
Week 8 · Build the CLI + Ship & Finalize
- Wire a real command-line interface onto your project's logic, with subcommands, arguments, and environment variables
- Run your project against the self-assessment checklist
- Publish the repository publicly and write a short portfolio/LinkedIn post linking to it
- Your first CLI in RUST Members
- Working with user input arguments and options Members
- Expanding with modules and libraries Members
- Managing errors and Panics Members
- Rust CLI best practices Members
- Creating a command line tool with sub commands in RUST Members
- Adding environment variables to your command line tool in RUST Members
- Release your RUST application to Crates io Members
- Crawling the Filesystem Members
- Building a RUST CLI to Parse files Members
Roles it prepares you for
- Junior Rust Developer
- Systems Programming Engineer (Entry-Level)
- Backend Developer (Rust track)
- Platform/Tooling Engineer
- Software Engineer (Entry-Level)
Skills you'll practice
- Rust Syntax & Ownership/Borrowing
- Structs, Enums & Pattern Matching
- Error Handling (Result/Option, no unnecessary panics)
- Automated Testing (cargo test, doctests)
- Command-Line Interface Development in Rust
- Cargo Project & Dependency Management
- Git & GitHub Workflow
Prerequisites
No prior Rust experience required. Basic comfort with a terminal and any programming language helps but isn't required — the syntax and concepts are taught from Week 1.
Questions
Is there a grade or enrollment gate?
No. There's no grading, no enrollment gate, and no required login to work through the program's repository. Joining just sets up weekly email reminders and an optional calendar schedule.
Can I run this rolling or as a cohort?
Both. Rolling/self-paced means you start whenever you want with no meetings. Cohort runs alongside a shared start date with a dedicated Discord channel and an end-of-run demo call.
Do I need to log in to use the calendar invite?
No. The calendar buttons above work without logging in, with a schedule starting one week from today.
What does membership add?
Week 1's videos are free. Membership opens every week's videos and the full course library they come from. See pricing.