An AI-generated Rust Learning Plan

12 minute read Published: 2026-02-03

This type of plan is one of my most profilic uses of AI in both work and personally. Nobody got time in 2026 to be manually compiling resources and planning out things I want to learn about or do, I'd rather spend my time actually growing my knowledge from what it gives me.

This plan is the result of the following prompt:

create a markdown file in my home directory called "100 days of learning something about rust for 30-45 minutes". It should be something on a daily basis to learn about Rust, for someone who has already read "the rust programming language" and uses Rust at work on a fairly regular basis such that I have fairly decent knowledge, but not an absolute expert on:

1. rust frameworks e.g. tonic
2. rust async/tokio
3. rust interior mutability and similar concepts
4. unafe
5. zero cost abstractions e.g. iterators
6. common trait impls like Iterator/Sync/Send

I'm trying to beocme a deep domain expert and am able and willing to read from resources like "rust for rustaceans", the rustonomicon, and more that you suggest.

Asking Copilot for 100 days of Rust learning

A structured deep-dive into Rust for intermediate practitioners seeking expert-level mastery.

Prerequisites: You've read "The Rust Programming Language," use Rust regularly at work, and are comfortable with common patterns and traits.

Primary Resources:


Phase 1: Foundations of Mastery (Days 1-15)

Week 1: Memory Layout & Representations

DayTopicActivityResource
1Rust memory layout fundamentalsRead about repr(Rust), repr(C), repr(transparent)RfR Ch. 1, Rust Reference
2Size, alignment, and paddingExperiment with std::mem::size_of, align_of, create structs with different field orderingsRustonomicon "Data Layout"
3Zero-sized types (ZSTs)Understand PhantomData, marker types, and why ZSTs matterRfR Ch. 1, write examples
4Dynamically sized types (DSTs)Deep dive into str, [T], trait objects, and Sized boundRfR Ch. 1
5Fat pointersExamine &dyn Trait, &[T] internals, vtablesRustonomicon, use std::mem::transmute to inspect
6Option<&T> niche optimizationUnderstand null pointer optimization and other niche fillingRust Reference, compiler explorer
7Practice: Build a memory inspectorCreate utility functions to print layout info for any typeHands-on coding

Week 2: Ownership Deep Dive

DayTopicActivityResource
8Drop order and drop guaranteesUnderstand struct field drop order, ManuallyDrop, mem::forgetRustonomicon "Drop"
9Pin fundamentalsWhy Pin exists, self-referential structs problemRfR Ch. 8, Rustonomicon
10Pin in practiceImplement a simple self-referential struct, understand UnpinWrite code, async book
11Interior mutability patternsCell, RefCell, UnsafeCell internalsRfR Ch. 1, std source
12Atomic types and memory orderingOrdering::SeqCst vs Relaxed vs Acquire/ReleaseRustonomicon "Atomics"
13Cow and copy-on-write patternsWhen to use Cow, implementing efficient APIsRfR, std docs
14Practice: Implement a simple RefCellBuild your own interior mutability primitiveHands-on coding

Phase 2: Traits & Type System Mastery (Days 16-35)

Week 3: Advanced Trait Patterns

DayTopicActivityResource
15Trait objects vs genericsMonomorphization cost, binary size, vtable dispatchRfR Ch. 2
16Orphan rules and coherenceWhy orphan rules exist, the #[fundamental] attributeRust Reference, RFCs
17Blanket implementationsStudy impl<T> Trait for T where T: OtherTrait patternsstd library source
18Associated types vs generic parametersWhen to use which, GATs introductionRfR Ch. 2
19Generic Associated Types (GATs)Lending iterators, async traitsRust blog, GAT RFC
20Marker traitsSend, Sync, Unpin, Sized, and custom markersRfR Ch. 2
21Practice: Design a trait hierarchyCreate a mini framework with well-designed traitsHands-on coding

Week 4: The Borrow Checker's Mind

DayTopicActivityResource
22Non-lexical lifetimes (NLL)How NLL works, edge casesRust blog posts on NLL
23Lifetime varianceCovariance, contravariance, invariance in RustRustonomicon "Subtyping"
24Higher-ranked trait bounds (HRTBs)for<'a> syntax, when it's neededRfR Ch. 2, Rustonomicon
25Lifetime elision rulesAll three rules, '_ placeholderRust Reference
26'static misconceptionsT: 'static doesn't mean "lives forever"Common Rust Lifetime Misconceptions blog
27ReborrowingHow &mut can be temporarily borrowed as &Write examples, RfR
28Practice: Fix lifetime puzzlesSolve 5-10 complex lifetime scenariosRust quiz, Stack Overflow

Week 5: Type System Advanced Features

DayTopicActivityResource
29Type inference deep diveHow Hindley-Milner works in RustAcademic papers, blog posts
30Deref coercion chainsStringstr, Vec<T>[T], custom DerefRfR, std docs
31AsRef, Borrow, ToOwnedWhen to use which, design patternsRfR Ch. 2
32From/Into and TryFrom/TryIntoError handling patterns, conversion hierarchiesstd docs, API guidelines
33Newtype patternType safety without runtime cost, Deref considerationsRfR, Rust patterns book
34Type-state patternCompile-time state machinesBlog posts, design patterns
35Practice: Refactor code using type-stateConvert runtime checks to compile-timeHands-on coding

Phase 3: Async Rust Mastery (Days 36-55)

Week 6: Async Fundamentals

DayTopicActivityResource
36Future trait internalspoll(), Context, WakerAsync book, RfR Ch. 8
37State machines from async/awaitWhat the compiler generatesCompiler explorer, async book
38Waker mechanicsHow wakers work, RawWaker, RawWakerVTabletokio source, async book
39Executor basicsBuild a minimal single-threaded executorAsync book chapter, hands-on
40Pin in async contextsWhy futures must be pinnedRfR Ch. 8
41Cancellation safetyWhat happens when futures are droppedTokio docs, RfR
42Practice: Build a simple executorImplement wake, poll loopHands-on coding

Week 7: Tokio Deep Dive

DayTopicActivityResource
43Tokio runtime architectureMulti-threaded vs current-threadTokio docs, source code
44Tokio task spawningspawn, spawn_blocking, spawn_localTokio tutorial
45Tokio channelsmpsc, broadcast, watch, oneshotTokio docs, compare to std
46Tokio synchronizationMutex, RwLock, Semaphore, NotifyTokio docs
47select! macro deep diveFairness, cancellation, patternsTokio tutorial
48Tokio tracing integrationtracing, tracing-subscriber, spansTracing crate docs
49Practice: Build a chat serverUse channels, tasks, graceful shutdownTokio tutorial project

Week 8: Advanced Async Patterns

DayTopicActivityResource
50Async trait methodsasync-trait crate, native async traitsBlog posts, crate docs
51Streams and AsyncIteratorfutures::Stream, tokio-streamfutures-rs docs
52Backpressure patternsBounded channels, rate limitingSystem design, tokio patterns
53Structured concurrencyJoinSet, TaskTracker, nurseries conceptTokio docs, blog posts
54Async drop and cleanupPatterns for cleanup in async contextsBlog posts, discussions
55Practice: Implement graceful shutdownHandle Ctrl-C, drain connectionsTokio examples

Phase 4: Unsafe Rust & FFI (Days 56-70)

Week 9: Unsafe Foundations

DayTopicActivityResource
56What unsafe unlocksThe 5 unsafe superpowersRustonomicon "Meet Safe and Unsafe"
57Undefined behavior in RustWhat UB exists, why it mattersRustonomicon "What Unsafe Can Do"
58Validity and safety invariantsDifference between validity and safetyRfR Ch. 9
59Raw pointers*const T, *mut T, pointer arithmeticRustonomicon
60unsafe traits and implsSend, Sync manual impl, GlobalAllocRustonomicon
61Miri for UB detectionRun tests under miri, interpret resultsMiri docs, hands-on
62Practice: Find UB in examplesDebug intentionally broken unsafe codeExercises

Week 10: Advanced Unsafe

DayTopicActivityResource
63MaybeUninitSafely working with uninitialized memorystd docs, Rustonomicon
64Stacked Borrows modelUnderstand the aliasing modelRalf Jung's blog posts
65Tree Borrows (experimental)Alternative aliasing modelResearch papers, blog
66Union typesWhen and why to use unionsRust Reference
67Inline assemblyasm! macro basicsRust Reference
68FFI basicsextern "C", #[no_mangle], bindgenRustonomicon "FFI"
69Calling C from RustLinking, safety wrappersbindgen tutorial
70Practice: Wrap a C libraryCreate safe Rust bindingsHands-on with bindgen

Phase 5: Frameworks & Ecosystem (Days 71-85)

Week 11: Tonic & gRPC

DayTopicActivityResource
71Protobuf basicsMessage definitions, code generationProtobuf docs
72Tonic server setupDefine service, implement handlersTonic examples
73Tonic client patternsConnection pooling, retriesTonic docs
74Streaming with TonicServer, client, bidirectional streamingTonic examples
75Interceptors and middlewareAuthentication, logging, tracingTonic docs
76Error handling in TonicStatus codes, error detailsgRPC patterns
77Practice: Build a gRPC serviceComplete client-server applicationHands-on project

Week 12: Web Frameworks & Serde

DayTopicActivityResource
78Tower service patternService trait, layers, middlewareTower docs
79Axum fundamentalsRouting, extractors, stateAxum docs
80Serde deep diveHow derive macros work, data modelSerde docs
81Custom Serde implementationsSerialize/Deserialize by handSerde docs
82Serde attributes#[serde(rename)], flatten, etc.Serde attributes reference
83Zero-copy deserializationCow, &'de str, borrowingSerde docs
84Error handling patternsanyhow, thiserror, when to use whichCrate docs
85Practice: Build a REST APIAxum + Serde + proper error handlingHands-on project

Phase 6: Performance & Zero-Cost Abstractions (Days 86-100)

Week 13: Iterator Mastery

DayTopicActivityResource
86Iterator adapter internalsHow map, filter, flat_map workstd source code
87Iterator fusionHow chains compile to single loopsCompiler explorer
88Custom iterator implementationsImplement Iterator, IntoIteratorPractice
89ExactSizeIterator, DoubleEndedIteratorWhen to implement, optimizations enabledstd docs
90FromIterator and ExtendCollection building patternsstd docs
91collect() type inferenceTurbofish, FromIterator dispatchWrite examples
92Practice: Implement lazy iterator chainCustom iterator with multiple adaptersHands-on

Week 14: Performance Patterns

DayTopicActivityResource
93Benchmarking with CriterionStatistical benchmarking, profilesCriterion docs
94Profile-guided optimizationPGO basics, when it helpsRust docs
95SIMD with std::simdPortable SIMD, autovectorizationRust docs, compiler explorer
96Cache-friendly data structuresSoA vs AoS, data-oriented designGame programming patterns
97String performanceString vs &str vs Cow<str> vs small stringsBenchmarks
98Allocation patternsArena allocators, bumpalo, reducing allocsCrate docs
99#[inline] and LTOWhen to use, link-time optimizationRust Performance Book
100Capstone: Profile and optimizeTake a real codebase, find and fix bottlenecksYour own code

Appendix A: Supplementary Topics (Bonus Days)

If you finish early or want to go deeper:


Books

  1. Rust for Rustaceans - Start to finish
  2. The Rustonomicon - Reference as needed
  3. Programming Rust (2nd ed.) - Selected chapters
  4. Rust Atomics and Locks by Mara Bos - Concurrency deep dive

Blog Posts (Timeless Classics)

RFCs to Read


Appendix C: Daily Practice Template

## Day N: [Topic]

### What I Learned
- 

### Code I Wrote
```rust
// paste code here

Questions That Arose

Resources Used

Time Spent: __ minutes


---

## Tips for Success

1. **Code every day**: Reading isn't enough. Write code to solidify understanding.
2. **Use compiler explorer**: See what your code compiles to at https://godbolt.org
3. **Read std library source**: It's well-written and educational.
4. **Explain to someone**: Teaching solidifies knowledge.
5. **Track your progress**: Check off days, note insights.
6. **Don't rush**: Deep understanding beats coverage.
7. **Revisit hard topics**: Some concepts need multiple passes.

---

## Appendix D: Weekly Blog Post Template

Use this template each week to write a blog post summarizing your learning. This helps consolidate knowledge and builds a public record of your journey.

```markdown
---
title: "100 Days of Rust: Week N - [Theme]"
date: YYYY-MM-DD
tags: [rust, learning, 100-days-of-rust]
---

# Week N: [Theme Title]

*Days covered: X-Y | Phase: [Phase Name]*

## The Big Picture

[1-2 paragraphs: What was the overarching theme this week? Why does it matter for Rust mastery?]

## Key Concepts

### [Concept 1]
[Explain in your own words. Include a minimal code example if helpful.]

### [Concept 2]
[...]

### [Concept 3]
[...]

## Code That Clicked

```rust
// The most illuminating code snippet from this week
// with comments explaining why it's interesting

Aha Moments 💡

Struggles & How I Worked Through Them

[What was hard? How did you get unstuck? This helps future readers.]

Practical Applications

[How does this week's learning apply to real code? Reference your work codebase if relevant.]

Resources That Helped Most

Questions I'm Still Chewing On

Next Week Preview

[What's coming in Week N+1? What are you looking forward to learning?]


This is part of my 100 Days of Rust series.


---

## Appendix E: Weekly Progress Log

Track your actual progress and link to blog posts here.

| Week | Days | Theme | Blog Post | Status |
|------|------|-------|-----------|--------|
| 1 | 1-7 | Memory Layout & Representations | | ⬜ Not started |
| 2 | 8-14 | Ownership Deep Dive | | ⬜ Not started |
| 3 | 15-21 | Advanced Trait Patterns | | ⬜ Not started |
| 4 | 22-28 | The Borrow Checker's Mind | | ⬜ Not started |
| 5 | 29-35 | Type System Advanced Features | | ⬜ Not started |
| 6 | 36-42 | Async Fundamentals | | ⬜ Not started |
| 7 | 43-49 | Tokio Deep Dive | | ⬜ Not started |
| 8 | 50-55 | Advanced Async Patterns | | ⬜ Not started |
| 9 | 56-62 | Unsafe Foundations | | ⬜ Not started |
| 10 | 63-70 | Advanced Unsafe & FFI | | ⬜ Not started |
| 11 | 71-77 | Tonic & gRPC | | ⬜ Not started |
| 12 | 78-85 | Web Frameworks & Serde | | ⬜ Not started |
| 13 | 86-92 | Iterator Mastery | | ⬜ Not started |
| 14 | 93-100 | Performance Patterns | | ⬜ Not started |

**Status Legend:** ⬜ Not started | 🟡 In progress | ✅ Complete

---

*Started: ___________*  
*Completed: ___________*

Good luck on your journey to Rust mastery! 🦀