Layout-native track

Graphite full-keyboard fluency

These Graphite lessons combine multiple zones, punctuation, or longer phrases so the layout starts feeling usable outside isolated drills.

These lessons blend multiple zones, punctuation, numbers, or longer phrases so the layout starts working as one system.

Lessons in this track

This track is generated from where each lesson's focus keys sit on Graphite, not just from the shared QWERTY lesson labels.

1119 of 1221 lessons

Bottom Row Combinations

Bottom Row Words I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Bottom Row Combinations

Bottom Row Words II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Bottom Row Combinations

Bottom Row Words III

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Bottom Row Combinations

All Rows Review I

Primary rows on Graphite: home row and top letter row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Bottom Row Combinations

All Rows Review II

Primary rows on Graphite: home row and top letter row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Bottom Row Combinations

All Rows Review III

Primary rows on Graphite: home row and top letter row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Bottom Row Combinations

All Rows Review IV

Primary rows on Graphite: home row and top letter row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Word Building

Common Words I

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Word Building

Common Words II

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Word Building

Common Words III

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Word Building

Common Words IV

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Word Building

Common Words V

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Word Building

Common Words VI

Primary rows on Graphite: home row and bottom row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Word Building

Core Bigrams II

Primary rows on Graphite: home row and top letter row.

If the pairs still feel sticky, slow down and make the transitions uniform before moving back into full words.

Word Building

Core Bigrams III

Primary rows on Graphite: home row and top letter row.

If the pairs still feel sticky, slow down and make the transitions uniform before moving back into full words.

Word Building

Core Trigrams II

Primary rows on Graphite: home row and top letter row.

If the pairs still feel sticky, slow down and make the transitions uniform before moving back into full words.

Word Building

Short Phrases I

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Word Building

Short Phrases II

Primary rows on Graphite: home row and bottom row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Word Building

Short Phrases III

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Word Building

Sentence Flow I

Primary rows on Graphite: home row and bottom row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Word Building

Sentence Flow II

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Fluency Review

Review: Common Words

Primary rows on Graphite: home row and top letter row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Fluency Review

Review: Short Phrases

Primary rows on Graphite: home row and top letter row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Fluency Review

Review: Full Sentences

Primary rows on Graphite: home row and top letter row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Fluency Review

Review: Mixed Skills

Primary rows on Graphite: home row and top letter row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Capital Letters

Capital Letters I

Primary rows on Graphite: home row.

Keep the opposite-hand Shift rule strict. If capitals still feel heavy, slow down and release Shift as soon as the uppercase letter lands.

Capital Letters

Capital Letters II

Primary rows on Graphite: home row.

Keep the opposite-hand Shift rule strict. If capitals still feel heavy, slow down and release Shift as soon as the uppercase letter lands.

Capital Letters

Capital Letters III

Primary rows on Graphite: top letter row and bottom row.

Keep the opposite-hand Shift rule strict. If capitals still feel heavy, slow down and release Shift as soon as the uppercase letter lands.

Capital Letters

Capital Letters IV

Primary rows on Graphite: top letter row and bottom row.

Keep the opposite-hand Shift rule strict. If capitals still feel heavy, slow down and release Shift as soon as the uppercase letter lands.

Capital Letters

Capital Letters V

Primary rows on Graphite: home row and top letter row.

Keep the opposite-hand Shift rule strict. If capitals still feel heavy, slow down and release Shift as soon as the uppercase letter lands.

Capital Letters

Capital Letters VI

Primary rows on Graphite: home row and bottom row.

Keep the opposite-hand Shift rule strict. If capitals still feel heavy, slow down and release Shift as soon as the uppercase letter lands.

Capital Letters

Capital Letters VII

Primary rows on Graphite: home row and bottom row.

Keep the opposite-hand Shift rule strict. If capitals still feel heavy, slow down and release Shift as soon as the uppercase letter lands.

Capital Letters

Capital Letters VIII

Primary rows on Graphite: home row and bottom row.

Keep the opposite-hand Shift rule strict. If capitals still feel heavy, slow down and release Shift as soon as the uppercase letter lands.

Shift Technique

Right Shift — Home Row

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Shift Technique

Right Shift — Reach Keys

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Shift Technique

Right Shift — Flow

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Shift Technique

Left Shift Introduction

Primary rows on Graphite: top letter row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Shift Technique

Left Shift — Home Row

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Shift Technique

Left Shift — Reach Keys

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Shift Technique

Left Shift — Flow

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Shift Technique

Mixed Shift Practice

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Shift Technique

Title Case Practice

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Shift Technique

Proper Nouns

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Shift Technique

Abbreviations & Acronyms

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Bigram & Trigram Drills

Bigram Stream: TH & IN

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Bigram & Trigram Drills

Bigram Stream: ER & RE

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Bigram & Trigram Drills

Bigram Stream: AN & ON

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Bigram & Trigram Drills

Trigram Stream: ING & ENT

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Bigram & Trigram Drills

Trigram Stream: TION & THER

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Bigram & Trigram Drills

Checkpoint: Bigram Fluency

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Tricky Words

Tricky Words: Double Letters

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Tricky Words

Tricky Words: Swapped Letters

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Tricky Words

Tricky Words: Slippery Endings

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Tricky Words

Tricky Words: Silent Letters

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Tricky Words

Tricky Words: Lookalikes

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Tricky Words

Checkpoint: Tricky Words

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Capitals Ladder

Capitals Ladder: Sentence Openers

Primary rows on Graphite: home row and bottom row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Capitals Ladder

Capitals Ladder: Names in Motion

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Capitals Ladder

Capitals Ladder: Places & Days

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Capitals Ladder

Capitals Ladder: Headlines

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Capitals Ladder

Capitals Ladder: Acronyms

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Capitals Ladder

Checkpoint: Capitals Ladder

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Drills

Speed: Common Words

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Speed Drills

Speed: Short Sentences

Primary rows on Graphite: home row and bottom row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Speed Drills

Speed: Paragraph Flow

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Drills

Speed: Mixed Content

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Drills

Speed: One-Minute Challenge

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Drills

Speed: Sustained Flow I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Drills

Speed: Sustained Flow II

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Accuracy Training

Accuracy: Short Words

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Accuracy Training

Accuracy: Sentence Precision

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Accuracy Training

Accuracy: Paragraph Precision

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Accuracy Training

Accuracy: No-Mistake Challenge

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Email

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Chat Messages

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Meeting Notes

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Code

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Academic Prose I

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Academic Prose II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Citations

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Bibliography

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Essay — Thesis

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Essay — Body

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Essay — Conclusion

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Report — Summary

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Report — Analysis

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Report — Recommendation

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Creative — Setting

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Creative — Detail

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Creative — Turning Point

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Tech Docs — Setup

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Tech Docs — Usage

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Legal — Agreement

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Legal — Terms

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Typing

Real World: Mixed Format

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance

Endurance: Three Paragraphs

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance

Endurance: Article I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance

Endurance: Article II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance

Endurance: Article III

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance

Endurance: Learning I

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance

Endurance: Learning II

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance

Endurance: Learning III

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance

Endurance: History I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance

Endurance: History II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance

Endurance: History III

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Weak Key Recovery

Recovery: Confused Pairs

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Weak Key Recovery

Recovery: Mirror Keys

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Weak Key Recovery

Recovery: Reach Keys

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Mastery

Punctuation

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Mastery

Punctuation II

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Mastery

Number Row I

Primary rows on Graphite: number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Mastery

Number Row II

Primary rows on Graphite: number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Mastery

Number Row III

Primary rows on Graphite: number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Mastery

Coding Symbols

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Mastery

Coding Symbols II

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Mastery

Mixed Drills

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Mastery

Timed Sprint

Primary rows on Graphite: home row and top letter row.

After you finish, compare WPM against accuracy and use the slower number as the signal for what to clean up next.

Mastery

Final Review

Primary rows on Graphite: home row and top letter row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Speed Ladder: 40 WPM

Speed 40 WPM I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 40 WPM

Speed 40 WPM II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 40 WPM

Speed 40 WPM III

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 40 WPM

Checkpoint: Speed 40 WPM

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 50 WPM

Speed 50 WPM I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 50 WPM

Speed 50 WPM II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 50 WPM

Speed 50 WPM III

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 50 WPM

Checkpoint: Speed 50 WPM

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 60 WPM

Speed 60 WPM I

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 60 WPM

Speed 60 WPM II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 60 WPM

Speed 60 WPM III

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 60 WPM

Checkpoint: Speed 60 WPM

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 70 WPM

Speed 70 WPM I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 70 WPM

Speed 70 WPM II

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 70 WPM

Speed 70 WPM III

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Speed Ladder: 70 WPM

Checkpoint: Speed 70 WPM

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Accuracy Lab

Accuracy Lab: Minimal Pairs

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Accuracy Lab

Accuracy Lab: Double Taps

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Accuracy Lab

Accuracy Lab: Awkward Runs

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Accuracy Lab

Accuracy Lab: Slow Motion

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Accuracy Lab

Checkpoint: Accuracy Lab

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Pro

Pro Email: Project Update

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Pro

Pro Report: Quarterly Findings

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Pro

Pro Article: Feature Piece

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Pro

Pro Briefing: Meeting Prep

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Real-World Pro

Checkpoint: Professional Output

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance Passages

Endurance Passage: The Cartographer

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance Passages

Endurance Passage: The Glasshouse

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance Passages

Endurance Passage: The Night Shift

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Endurance Passages

Checkpoint: Endurance

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Numbers: 1, 2, 3

Primary rows on Graphite: number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Numbers: 4, 5

Primary rows on Graphite: number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Numbers: Left Review

Primary rows on Graphite: number row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Punctuation & Numbers

Numbers: 6, 7, 8

Primary rows on Graphite: number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Numbers: 9, 0

Primary rows on Graphite: number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Numbers: Right Review

Primary rows on Graphite: number row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Punctuation & Numbers

Numbers: Full Row Mix

Primary rows on Graphite: number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Numbers: Real World

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Numbers: Math Expressions

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Period: Introduction

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Period: In Sentences

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Punctuation & Numbers

Comma: Introduction

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Comma: In Clauses

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Period & Comma Together

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Question Mark: Introduction

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Question Mark: Complex Questions

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Exclamation Point: Introduction

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Questions & Exclamations Mixed

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Colon: Introduction

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Semicolon: Introduction

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Colon & Semicolon Together

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Apostrophe: Contractions

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Apostrophe: Possession

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Quotation Marks: Introduction

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Quotation Marks: Dialogue

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Parentheses: Introduction

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Brackets: Introduction

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Parentheses & Brackets Together

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

@ and # Symbols

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

$ and % Symbols

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

& and + and = Symbols

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Special Characters Review

Primary rows on Graphite: number row and top letter row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Punctuation & Numbers

Curly Braces

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Angle Brackets & Slash

Primary rows on Graphite: bottom row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Programming: Full Practice

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Dates & Times

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Emails & URLs

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Phone & Address

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Punctuation & Numbers

Mixed Review I

Primary rows on Graphite: home row and top letter row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Punctuation & Numbers

Mixed Review II

Primary rows on Graphite: home row and number row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Punctuation & Numbers

Mixed Review III

Primary rows on Graphite: home row and top letter row.

If your review score falls apart, use SureTyping's customized practice after the lesson to revisit the weak keys that caused the drop.

Punctuation & Numbers

Punctuation Mastery

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Number Row Mastery

Number Row: Frequency Order

Primary rows on Graphite: number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Number Row Mastery

Number Row: Dates & Years

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Number Row Mastery

Number Row: Prices & Money

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Number Row Mastery

Number Row: Stats & Measures

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Number Row Mastery

Checkpoint: Number Row Mastery

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Symbol Pairs

Symbol Pairs: Parentheses

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Symbol Pairs

Symbol Pairs: Quotes & Apostrophes

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Symbol Pairs

Symbol Pairs: Hyphens & Dashes

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Symbol Pairs

Symbol Pairs: Brackets & Colons

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Symbol Pairs

Checkpoint: Symbol Pairs

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Mixed Finals

Final Mix I: Prose & Numbers

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Mixed Finals

Final Mix II: Prose & Symbols

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Mixed Finals

Final Mix III: Everything at Once

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Mixed Finals

Checkpoint: Grand Final

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

What Casper Asks of Your Fingers

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Diagnostic Mini-Sim

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Checkpoint: Baseline Under the Clock

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Casper Vocabulary Warmup

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Ethical Reasoning Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Clinical Setting Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Naming the Stakeholders

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Action Verb Bank

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Empathy Language Bank

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Professionalism & Policy Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Fairness & Equity Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Safety & Escalation Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Checkpoint: Vocabulary Under Pressure

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

First-Person Response Stems

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Reflective Transition Phrases

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Casper Test Typing Prep

Gather-Information Stems

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Perspective-Taking Stems

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Action-Plan Stems

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Counterpoint & Nuance Stems

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Closing & Follow-Up Stems

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Punctuation Flow for Reflective Writing

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Checkpoint: Full Skeleton, No Content

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Short Response: Classmate Ethics

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Short Response: Team Conflict

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Short Response: Patient Confidentiality

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Short Response: Credit Taken at Work

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Short Response: Donations Mismanaged

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Short Response: Old Exam Offered

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Short Response: Hygiene Shortcut

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Short Response: Borrowed Medication

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Checkpoint: Two Shorts, One Clock

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Medium Response: Workplace Supervisor

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Medium Response: Cultural Sensitivity

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Medium Response: Resource Allocation

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Medium Response: Plagiarism and Pressure

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Medium Response: Owning Your Error

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Medium Response: The Language Barrier

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Medium Response: Family Asks for Silence

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Medium Response: The Group Chat Screenshot

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Checkpoint: Medium Response, Cold Start

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Full 5-Minute Response I

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Full 5-Minute Response II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Full 5-Minute Response III

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Full 5-Minute Response IV

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Back-to-Back Block I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Back-to-Back Block II

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Exam Simulation Sprint

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Checkpoint: The Long Haul

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Full Simulation 1 of 5

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Full Simulation 2 of 5

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Full Simulation 3 of 5

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Full Simulation 4 of 5

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Full Simulation 5 of 5

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Final: The Complete Casper Block

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Casper Test Typing Prep

Cooldown: What Your Hands Learned

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Operators & Symbols

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Arrow Functions

Primary rows on Graphite: bottom row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Optional Chaining & Nullish

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Spread & Rest

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Template Literals

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Destructuring & Computed Keys

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Checkpoint: Symbol Fluency

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Declarations

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

ESM Imports & Exports

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

async / await

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Idiomatic One-Liners

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Array Method Chains

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Checkpoint: Keywords & Idioms

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Control Flow

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Functions & Methods

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Class with Private Fields

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Error Handling

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Map & Set Collections

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Realistic Snippet

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Event Delegation

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Checkpoint: Real Snippets

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Speed Run: Debounce & Throttle

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Speed Run: LRU Cache

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Speed Run: Form Validation

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Speed Run: Array Pipeline

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Speed Run: Test Suite

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Checkpoint: Sustained Speed

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Assessment Sim 1: Customer Revenue Report

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Assessment Sim 2: Log Analyzer

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Assessment Sim 3: Paginated Fetch

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Assessment Sim 4: Task Store

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

JavaScript code typing

Checkpoint: JavaScript Mastery Final

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Operators & Symbols

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Generic Angle Brackets

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Unions & Intersections

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Type-Level Operators

Primary rows on Graphite: bottom row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

satisfies, as const & Bang

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Arrows, Overloads & Predicates

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Checkpoint: Symbol Fluency

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Declarations

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Narrowing unknown

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Utility Types

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Idiomatic One-Liners

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Async Idioms

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Checkpoint: Keywords & Idioms

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Control Flow

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Functions & Methods

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Class & Fluent Builder

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Typed Error Classes

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Maps, Sets & Records

Primary rows on Graphite: bottom row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Realistic Snippet

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Generic Repository

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Checkpoint: Real Snippets

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Speed Run: Runtime Validator

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Speed Run: Typed Fetch Client

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Speed Run: State Reducer

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Speed Run: Utility Type Gymnastics

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Speed Run: Tests & Asserts

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Checkpoint: Sustained Speed

Primary rows on Graphite: top letter row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Assessment Sim 1: CSV Record Parser

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Assessment Sim 2: Generic TTL Cache

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Assessment Sim 3: Typed Job Queue

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Assessment Sim 4: Config Loader

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

TypeScript code typing

Checkpoint: TypeScript Mastery Final

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Operators & Symbols

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Comprehension Brackets

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Decorators

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

F-Strings & Format Specs

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Annotations & Arrows

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Unpacking & Slicing

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Checkpoint: Symbol Fluency

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Declarations

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Iteration Idioms

Primary rows on Graphite: top letter row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Generators & yield

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Typing & Protocols

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Idiomatic One-Liners

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Checkpoint: Keywords & Idioms

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Control Flow

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Functions & Methods

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Context Managers

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Exceptions & Cleanup

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Counter & defaultdict

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Match Statements

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Realistic Snippet

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Checkpoint: Real Snippets

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Speed Run: Retry Decorator

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Speed Run: Argparse CLI

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Speed Run: CSV Report

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Speed Run: Async Fan-Out

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Speed Run: Pytest Module

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Checkpoint: Sustained Speed

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Assessment Sim 1: Task Store

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Assessment Sim 2: RPN Calculator

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Assessment Sim 3: Inventory Ledger

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Assessment Sim 4: Latency Report

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Python code typing

Checkpoint: Python Mastery Final

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Operators & Symbols

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Generics & Wildcards

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Lambda Arrows & Method References

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Annotations

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Stream Chain Punctuation

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Switch Arrows & Yield Blocks

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Checkpoint: Symbol Fluency

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Keywords

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Declarations

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Optional Idioms

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Exception Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Text Blocks & Formatting

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Idiomatic One-Liners

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Checkpoint: Keywords & Idioms

Primary rows on Graphite: bottom row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Control Flow

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Functions & Methods

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Records & Compact Constructors

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Sealed Hierarchy & Exhaustive Switch

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

try-with-resources

Primary rows on Graphite: bottom row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Maps & Aggregation

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Realistic Snippet

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Checkpoint: Real Snippets

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Speed Run: Stream Report

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Speed Run: CompletableFuture Fan-Out

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Speed Run: Concurrent Counter

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Speed Run: JUnit 5 Suite

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Speed Run: Comparators & Iterable

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Checkpoint: Sustained Speed

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Assessment Sim 1: Task Tracker

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Assessment Sim 2: Word Histogram

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Assessment Sim 3: RPN Calculator

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Assessment Sim 4: Inventory Ledger

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Java code typing

Checkpoint: Java Mastery Final

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Operators & Symbols

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Pointers & Address-Of

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Arrow & Dot Access

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

malloc, free & sizeof

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Preprocessor Directives

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Format Strings & Escapes

Primary rows on Graphite: top letter row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Checkpoint: Symbol Fluency

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Declarations

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Storage & Qualifiers

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

typedef, enum & union

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Idiomatic Patterns

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

String & Memory Library

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Checkpoint: Keywords & Idioms

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Control Flow

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Functions & Methods

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Struct Lifecycle

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Error Handling

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Dynamic Array

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Realistic Snippet

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

String Helpers

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Checkpoint: Real Snippets

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Speed Run: Ring Buffer

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Speed Run: Bit Flags

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Speed Run: Search & Sort

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Speed Run: Line Reader

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Speed Run: Hash Lookup

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Checkpoint: Sustained Speed

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Assessment Sim 1: Line & Word Counter

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Assessment Sim 2: RPN Calculator

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Assessment Sim 3: Reading Statistics

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Assessment Sim 4: Word Frequency

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C

Checkpoint: C Mastery Final

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Operators & Symbols

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Scope Resolution

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Angle Brackets

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

RAII & Smart Pointers

Primary rows on Graphite: top letter row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Lambdas & Captures

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

References & Qualifiers

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Checkpoint: Symbol Fluency

Primary rows on Graphite: top letter row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Declarations

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Concepts & requires

Primary rows on Graphite: top letter row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

optional & expected

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Idiomatic Patterns

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Ranges & Views

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Checkpoint: Keywords & Idioms

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Control Flow

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Functions & Methods

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

RAII & the Rule of Five

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Error Handling with expected

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Maps & Container Idioms

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Realistic Snippet

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Operator Overloading

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Checkpoint: Real Snippets

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Speed Run: Word Counter

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Speed Run: Variant Dispatch

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Speed Run: Vector Math

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Speed Run: Threads & Mutex

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Speed Run: Asserts & Tests

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Checkpoint: Sustained Speed

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Assessment Sim 1: Word Histogram

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Assessment Sim 2: RPN Calculator

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Assessment Sim 3: Inventory Ledger

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Assessment Sim 4: CSV Row Parser

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C++

Checkpoint: C++ Mastery Final

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Operators & Symbols

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Lambda Arrows

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Null Operators

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Generics & Constraints

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Async Punctuation

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Pattern Matching

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Checkpoint: Symbol Fluency

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Declarations

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Modifiers & Members

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Query Syntax

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Idiomatic Patterns

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Collection Expressions

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Checkpoint: Keywords & Idioms

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Control Flow

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Functions & Methods

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Records & With Expressions

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Exceptions & Filters

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Injected Service

Primary rows on Graphite: bottom row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Realistic Snippet

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Async Streams

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Checkpoint: Real Snippets

Primary rows on Graphite: top letter row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Speed Run: Channel Pipeline

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Speed Run: Retry With Backoff

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Speed Run: Custom Comparer

Primary rows on Graphite: bottom row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Speed Run: Minimal API

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Speed Run: xUnit Tests

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Checkpoint: Sustained Speed

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Assessment Sim 1: Word Histogram

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Assessment Sim 2: RPN Calculator

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Assessment Sim 3: Inventory Ledger

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Assessment Sim 4: CSV To Records

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: C#

Checkpoint: C# Mastery Final

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Operators & Symbols

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Short Declarations

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Channel Arrows

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Pointers & Receivers

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Composite Literals & Tags

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Error Wrapping & Verbs

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Checkpoint: Symbol Fluency

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Declarations

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Interfaces & Embedding

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

defer, panic & recover

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Idiomatic Patterns

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Generics & Constraints

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Checkpoint: Keywords & Idioms

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Control Flow

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Functions & Methods

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Mutex-Guarded Counter

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Custom Error Types

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Maps & Slices

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Realistic Snippet

Primary rows on Graphite: bottom row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Table-Driven Tests

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Checkpoint: Real Snippets

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Speed Run: HTTP Middleware

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Speed Run: Context Fan-Out

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Speed Run: Ranking Report

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Speed Run: JSON Round Trip

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Speed Run: Ticker & Shutdown

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Checkpoint: Sustained Speed

Primary rows on Graphite: bottom row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Assessment Sim 1: Word Frequency

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Assessment Sim 2: RPN Calculator

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Assessment Sim 3: Inventory Ledger

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Assessment Sim 4: Worker Pool

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Go

Checkpoint: Go Mastery Final

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Operators & Symbols

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Paths & Turbofish

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Lifetimes & Generics

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Match Arms & Fat Arrows

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

The ? Operator

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Closures & Pipes

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Checkpoint: Symbol Fluency

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Declarations

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Trait Bounds & Impls

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Option & Result Idioms

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Idiomatic Patterns

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Iterator Adapters

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Checkpoint: Keywords & Idioms

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Control Flow

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Functions & Methods

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Builder Pattern

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Custom Error Enum

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

HashMap & Entry API

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Realistic Snippet

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Threads & Channels

Primary rows on Graphite: top letter row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Checkpoint: Real Snippets

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Speed Run: Config Loader

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Speed Run: Iterator Pipeline

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Speed Run: State Machine

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Speed Run: Trait Objects

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Speed Run: Tests & Asserts

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Checkpoint: Sustained Speed

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Assessment Sim 1: Word Histogram

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Assessment Sim 2: Temperature Stats

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Assessment Sim 3: RPN Calculator

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Assessment Sim 4: Inventory Ledger

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Rust

Checkpoint: Rust Mastery Final

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Operators & Symbols

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Blocks & Pipes

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Symbols & Hash Keys

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

String Interpolation

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Safe Navigation & Defaults

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Ranges & Splats

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Checkpoint: Symbol Fluency

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Declarations

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Classes & Modules

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Guard Clauses & Modifiers

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Idiomatic Patterns

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Enumerable Chains

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Checkpoint: Keywords & Idioms

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Control Flow

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Functions & Methods

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Struct & Comparable

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Exceptions & Retries

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

File & JSON I/O

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Realistic Snippet

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Module Mixins

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Checkpoint: Real Snippets

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Speed Run: Config Loader

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Speed Run: Enumerable Pipeline

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Speed Run: CLI Options

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Speed Run: Word Frequencies

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Speed Run: Minitest Suite

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Checkpoint: Sustained Speed

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Assessment Sim 1: Task List Program

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Assessment Sim 2: Reading Stats

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Assessment Sim 3: RPN Calculator

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Assessment Sim 4: Inventory Ledger

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Ruby

Checkpoint: Ruby Mastery Final

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Operators & Symbols

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Dollar Variables

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Arrows & Double Arrows

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Null Coalescing

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Strings & Interpolation

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Array Syntax

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Checkpoint: Symbol Fluency

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Declarations

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Interfaces & Traits

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Enums & Match

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Idiomatic Patterns

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Array Function Toolkit

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Checkpoint: Keywords & Idioms

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Control Flow

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Functions & Methods

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Exceptions & Finally

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

File & JSON I/O

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Generators & yield

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Realistic Snippet

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

PDO Prepared Statements

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Checkpoint: Real Snippets

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Speed Run: Config Loader

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Speed Run: Array Pipeline

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Speed Run: Match Router

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Speed Run: Input Validation

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Speed Run: PHPUnit Suite

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Checkpoint: Sustained Speed

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Assessment Sim 1: Shopping Cart

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Assessment Sim 2: Reading Stats

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Assessment Sim 3: RPN Calculator

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Assessment Sim 4: Inventory Ledger

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: PHP

Checkpoint: PHP Mastery Final

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Operators & Symbols

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Optionals: ? and !

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Closures & Shorthand Args

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

String Interpolation

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Key Paths & Attributes

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Ranges & Slices

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Checkpoint: Symbol Fluency

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Declarations

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Guard & Early Exit

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Protocols & Extensions

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Idiomatic Patterns

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Collection Methods

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Checkpoint: Keywords & Idioms

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Control Flow

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Functions & Methods

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Enums with Associated Values

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Throwing Functions & Error Enums

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Codable & JSON

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Realistic Snippet

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Actors & Task Groups

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Checkpoint: Real Snippets

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Speed Run: Config Loader

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Speed Run: Collection Pipeline

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Speed Run: State Machine

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Speed Run: Existentials

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Speed Run: Tests & Asserts

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Checkpoint: Sustained Speed

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Assessment Sim 1: Async User Repository

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Assessment Sim 2: Temperature Stats

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Assessment Sim 3: RPN Calculator

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Assessment Sim 4: Inventory Ledger

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Swift

Checkpoint: Swift Mastery Final

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Operators & Symbols

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Null Safety: ?. and ?:

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Lambdas & it

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

String Templates

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Generics & Variance

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Ranges & Progressions

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Checkpoint: Symbol Fluency

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Declarations

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Data Classes & copy

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

when & Sealed Hierarchies

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Idiomatic Patterns

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Collection Operators

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Checkpoint: Keywords & Idioms

Primary rows on Graphite: bottom row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Control Flow

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Functions & Methods

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Sealed Result Types

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Exceptions & runCatching

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Extension Functions

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Realistic Snippet

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Coroutines & Flow

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Checkpoint: Real Snippets

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Speed Run: Config Loader

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Speed Run: Collection Pipeline

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Speed Run: State Machine

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Speed Run: Builder DSL

Primary rows on Graphite: bottom row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Speed Run: Tests & Asserts

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Checkpoint: Sustained Speed

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Assessment Sim 1: Cached Repository

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Assessment Sim 2: Temperature Stats

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Assessment Sim 3: RPN Calculator

Primary rows on Graphite: bottom row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Assessment Sim 4: Inventory Ledger

Primary rows on Graphite: bottom row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Kotlin

Checkpoint: Kotlin Mastery Final

Primary rows on Graphite: bottom row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Operators & Symbols

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Quoting & Casts

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Comparison & Matching

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

JSONB Operators

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Arrays & Aggregated Text

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Placeholders & Null Handling

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Checkpoint: Symbol Fluency

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Declarations

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Join Types

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Upserts & Multi-Table Writes

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Idiomatic Patterns

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Grouping & FILTER

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Checkpoint: Keywords & Idioms

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Control Flow

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Functions & Methods

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

CTE Chains

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Window Functions

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Subqueries & EXISTS

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Realistic Snippet

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Transactions & Locking

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Checkpoint: Real Snippets

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Speed Run: Daily Active Users

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Speed Run: Conversion Funnel

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Speed Run: Deduplicate Rows

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Speed Run: Gap-Free Time Series

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Speed Run: Bulk Upsert

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Checkpoint: Sustained Speed

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Assessment Sim 1: Cohort Retention

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Assessment Sim 2: Typing Stats by Layout

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Assessment Sim 3: Inventory Ledger

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Assessment Sim 4: Layout Leaderboard

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: SQL

Checkpoint: SQL Mastery Final

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Operators & Symbols

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Tags & Attributes

Primary rows on Graphite: bottom row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Selectors & Combinators

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Units, Colors & Values

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Custom Properties

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

HTML Entities

Primary rows on Graphite: bottom row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Checkpoint: Symbol Fluency

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Keywords

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Declarations

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Semantic Landmarks

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Forms & Inputs

Primary rows on Graphite: bottom row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Idiomatic One-Liners

Primary rows on Graphite: top letter row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Layout Property Vocabulary

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Checkpoint: Keywords & Idioms

Primary rows on Graphite: bottom row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Control Flow

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Functions & Methods

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Flexbox Navigation

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Grid Template Areas

Primary rows on Graphite: top letter row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Accessible Data Table

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Realistic Snippet

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Keyframes & Transitions

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Checkpoint: Real Snippets

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Speed Run: Design Tokens

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Speed Run: Button & Badge

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Speed Run: Contact Form

Primary rows on Graphite: bottom row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Speed Run: Breakpoint Ladder

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Speed Run: Utility Sheet

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Checkpoint: Sustained Speed

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Assessment Sim 1: Card Grid Page

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Assessment Sim 2: Pricing Section

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Assessment Sim 3: Article Document

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Assessment Sim 4: Dashboard Shell

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

HTML & CSS code typing

Checkpoint: HTML & CSS Mastery Final

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Operators & Symbols

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Command & Arithmetic Expansion

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Test Brackets

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Pipes & Redirection

Primary rows on Graphite: bottom row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Quoting & Escaping

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Globs & Brace Expansion

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Checkpoint: Symbol Fluency

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Keywords

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Declarations

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Arrays & Associative Arrays

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

case & until

Primary rows on Graphite: home row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Idiomatic Patterns

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Parameter Expansion Catalog

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Checkpoint: Keywords & Idioms

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Control Flow

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Functions & Methods

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

awk One-Liners

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

sed & grep One-Liners

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Traps & Temp Files

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Realistic Snippet

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

find & xargs Pipelines

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Checkpoint: Real Snippets

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Speed Run: Config Loader

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Speed Run: Log Pipeline

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Speed Run: getopts Parser

Primary rows on Graphite: number row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Speed Run: Retry Loop

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Speed Run: Tests & Asserts

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Checkpoint: Sustained Speed

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Assessment Sim 1: Database Backup

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Assessment Sim 2: Temperature Stats

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Assessment Sim 3: RPN Calculator

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Assessment Sim 4: Inventory Ledger

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Code: Bash

Checkpoint: Bash Mastery Final

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

How Kira Tests Your Typing

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Diagnostic Mini-Sim

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Checkpoint: Baseline Diagnostic

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Core Admissions Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Leadership Word Bank

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Teamwork and Conflict Word Bank

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Failure and Growth Word Bank

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Motivation and Fit Word Bank

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Ethics and Judgment Word Bank

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Action Phrase Bank

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Reflection Phrase Bank

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Mixed Vocabulary in Sentences

Primary rows on Graphite: home row and bottom row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Kira Talent Typing Prep

Checkpoint: Vocabulary Under Pressure

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Response Opening Stems

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Framing Openers

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Transition Lines

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Closing Lines

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

The STAR Skeleton

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Frame, Position, Evidence, Close

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Evidence Sentences

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Kira Talent Typing Prep

Honest Qualifiers

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Template Remix

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Checkpoint: Stems to Sentences

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Kira Talent Typing Prep

Short Response: Leadership

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Short Response: Failure and Growth

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Short Response: Carrying a Teammate

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Short Response: Why This Field

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Short Response: Disagreeing with Authority

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Short Response: Initiative

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Short Response: Receiving Hard Feedback

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Short Response: Adapting to Change

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Checkpoint: Two Short Responses

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Medium Response: Conflict

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Medium Response: A Public Mistake

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Medium Response: Leading Volunteers

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Medium Response: An Ethical Line

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Medium Response: Program Fit

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Medium Response: Resilience

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

No-Hesitation Drill I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

No-Hesitation Drill II

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Checkpoint: Medium Response Under the Clock

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Endurance: Motivation for the Program

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Endurance: Leading Through a Setback

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Endurance: The Team That Disagreed Well

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Endurance: The Mistake I Keep Learning From

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Endurance: Impact Beyond the Resume

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Back-to-Back Block I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Back-to-Back Block II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Checkpoint: Endurance Block

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Full Simulation 1 of 5

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Full Simulation 2 of 5

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Full Simulation 3 of 5

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Full Simulation 4 of 5

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Full Simulation 5 of 5

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Final: The Complete Kira Response

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Kira Talent Typing Prep

Cooldown: What You Take With You

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

How Duet Tests Your Typing

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Diagnostic Mini-Sim

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Checkpoint: Orientation Diagnostic

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Core Values Vocabulary

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Vocabulary: Care and Safety

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Vocabulary: Fairness and Equity

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Vocabulary: Honesty and Integrity

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Vocabulary: Stewardship and Cost

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Vocabulary: Comparison Words

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Phrase Bank: Stating Priority

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Phrase Bank: Naming the Tension

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Vocabulary: Community and Policy

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Checkpoint: Values Vocabulary in Context

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Rationale Stems

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Opening Templates

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Comparison Templates

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Transition Drills

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Tradeoff Sentences

Primary rows on Graphite: home row and bottom row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Duet Typing Prep

Closing Templates

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Concession Stems

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Full Ranking Sentences

Primary rows on Graphite: home row and bottom row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Duet Typing Prep

Punctuation Flow for Rationales

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Checkpoint: Stems to Full Rationale

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Short Rationale: Clinic Priorities

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Short Rationale: Education Policy

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Short Rationale: Night-Shift Handover

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Short Rationale: Lab Authorship

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Short Rationale: Deadline Disclosure

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Short Rationale: Shelter Funding

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Short Rationale: Translator or Timeline

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Short Rationale: The Referral Favor

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Checkpoint: Two Short Rationales

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Trade-off Analysis

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Medium Rationale: The Overbooked Clinic

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Medium Rationale: The Curved Exam

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Medium Rationale: The Whistle and the Ladder

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Medium Rationale: The Park or the Parking

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

No-Hesitation Drill: Rapid Rankings

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

No-Hesitation Drill: Concessions at Speed

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Medium Rationale: The Student on the Ward

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Checkpoint: The Full Middle Game

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Full Ranking and Defense

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Endurance: The Recall Decision

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Endurance: The Scholarship Committee

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Endurance: The Volunteer Board Conflict

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Back-to-Back Block I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Back-to-Back Block II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Endurance: The Zoning Vote

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Checkpoint: Endurance at Full Depth

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Full Simulation 1 of 5

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Full Simulation 2 of 5

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Full Simulation 3 of 5

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Full Simulation 4 of 5

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Full Simulation 5 of 5

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Final: The Complete Duet Defense

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Duet Typing Prep

Cooldown: What Your Fingers Now Know

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Why Typing Matters for Snapshot

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Diagnostic Mini-Simulation

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Checkpoint: Your Baseline

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Quick Response Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Verbs of Reflection

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Naming How It Felt

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Growth and Habit Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Connector Phrases

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Snapshot Written Follow-up Prep

People and Places

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Values Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Settings Across Domains

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Phrase Bursts

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Checkpoint: Vocabulary in Motion

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Opener Phrases

Primary rows on Graphite: home row and bottom row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Snapshot Written Follow-up Prep

Position, Reason, Tradeoff

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Transitions in Real Sentences

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Snapshot Written Follow-up Prep

Closing Lines

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Bridging from Video to Writing

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Honest Qualifiers

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Introducing an Example

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Tradeoff Sentences

Primary rows on Graphite: home row and bottom row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

Snapshot Written Follow-up Prep

Mixed Template Drill

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Checkpoint: Templates Under Pressure

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

One-Minute Response I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

One-Minute Response II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

One-Minute Response III

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

One-Minute Response IV

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

One-Minute Response V

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

One-Minute Response VI

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

One-Minute Response VII

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

One-Minute Response VIII

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Checkpoint: Three One-Minute Rounds

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Two-Minute Response I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Two-Minute Response II

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Two-Minute Response III

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Two-Minute Response IV

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Two-Minute Response V

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Two-Minute Response VI

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

No-Hesitation Drill I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

No-Hesitation Drill II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Checkpoint: Two Minutes, No Stalls

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Paired Responses I

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Paired Responses II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Paired Responses III

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Sustained Reflection I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Sustained Reflection II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Real Cadence Drill

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Checkpoint: Full Cadence Block

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Full Simulation 1 of 5

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Full Simulation 2 of 5

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Full Simulation 3 of 5

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Full Simulation 4 of 5

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Full Simulation 5 of 5

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Final: Snapshot Written Follow-up Assessment

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Snapshot Written Follow-up Prep

Cooldown: What You Trained

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

What the 30-Minute Essay Asks of Your Hands

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Diagnostic Sprint

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Checkpoint: Baseline Essay Block

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Academic Writing Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Reasoning and Logic Vocabulary

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Evidence and Data Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Hedging and Qualification

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Contrast and Concession Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Academic Collocations

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Strong Academic Verbs

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Vocabulary in Full Sentences

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

GRE Analytical Writing Typing Prep

Checkpoint: Vocabulary Under the Clock

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Formal Transitions

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Thesis Statement Templates

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Topic Sentence Templates

Primary rows on Graphite: home row and bottom row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

GRE Analytical Writing Typing Prep

Evidence Transitions

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Concession and Rebuttal Frames

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Conclusion Frames

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Opening Sentences Across Topics

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

GRE Analytical Writing Typing Prep

Transitions in Context

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Checkpoint: Template Relay

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Essay Introduction Paragraph

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Short Response: Automation and Work

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Short Response: Standardized Testing

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Short Response: Urban Green Space

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Short Response: Public Funding for the Arts

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Short Response: Funding Basic Research

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Short Response: Civic Participation

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

No-Hesitation Drill: Claim Sentences

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

GRE Analytical Writing Typing Prep

Checkpoint: Two Short Paragraphs Back-to-Back

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Body Paragraph with Evidence

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Argument Analysis Paragraph

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Body Paragraph: Historical Evidence

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Body Paragraph: Economic Reasoning

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Body Paragraph: Concede and Rebut

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Body Paragraph: Example-Driven

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Conclusion Paragraph

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

No-Hesitation Drill: Continuous Analysis

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Checkpoint: Body Plus Conclusion

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Full Intro + One Body

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Two Paragraphs at Cadence I

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Two Paragraphs at Cadence II

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Opening and Closing Pair

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Back-to-Back Essay Blocks

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Steady Cadence Block

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

The Editing Voice

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Mixed Relay: Vocabulary to Paragraph

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Checkpoint: Fifteen-Minute Feel

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Full Simulation 1 of 5: The Apprenticeship Claim

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Full Simulation 2 of 5: The Heritage Argument

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Full Simulation 3 of 5: Technology and Attention

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Full Simulation 4 of 5: The Survey Argument

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Full Simulation 5 of 5: Progress and Its Critics

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Final: The Complete Essay Block

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

GRE Analytical Writing Typing Prep

Cooldown: Accuracy Reset

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

What the 35-Minute Essay Asks of Your Hands

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Diagnostic Sprint

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Checkpoint: Baseline Argument Block

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Argumentative Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Legal-Adjacent Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Criteria and Objectives Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Weighing and Balancing Vocabulary

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Argument Verbs

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Decision-Essay Collocations

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Qualification and Precision

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Vocabulary in Full Sentences

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

LSAT Writing Sample Typing Prep

Checkpoint: Vocabulary Under the Clock

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Framing Phrases

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

LSAT Writing Sample Typing Prep

Decision Openers

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Criteria Application Frames

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Concession Frames

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Rebuttal Frames

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Tradeoff Frames

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Closing Frames

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

The Essay Structure, Typed

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Checkpoint: Frame Relay

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Decision Statement Paragraph

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Short Response: Hours or a Second Site

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Short Response: The Museum Season

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Short Response: Generalist or Specialist

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Short Response: Repair or Bypass

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Short Response: Longer Days or a Summer Term

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Short Response: A Second Location or Deeper Roots

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

No-Hesitation Drill: Commit in One Sentence

Primary rows on Graphite: home row and top letter row.

Use accuracy on these everyday patterns as the gate. If common words still feel choppy, repeat the lesson before chasing harder drills.

LSAT Writing Sample Typing Prep

Checkpoint: Short Responses Under the Clock

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Supporting Reasons Paragraph

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Addressing the Counter-Option

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Applying the Criteria in Order

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Grounding Reasons in the Scenario

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Weighing Risk and Reversibility

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Stating the Other Side at Full Strength

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Answering the Objection

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

The Close That Resolves

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

No-Hesitation Drill: Concede and Turn

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Checkpoint: Body Blocks Under the Clock

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Frame Plus Decision, Back to Back

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Two-Block Run: Support and Counter

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Two-Block Run: Criteria and Close

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Opening and Closing in One Pass

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Back-to-Back Scenarios

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Real Cadence: Thirty-Five Minutes in Miniature

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

The Revision Pass

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Checkpoint: Endurance Block

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Full Simulation 1 of 5: The Vendora Grant

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Full Simulation 2 of 5: The Ferry and the Causeway

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Full Simulation 3 of 5: The Interim Director

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Full Simulation 4 of 5: The Language Requirement

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Full Simulation 5 of 5: The Watershed Easement

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Final: The Pro Bono Commitment

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

LSAT Writing Sample Typing Prep

Cooldown: What the Reader Is Looking For

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

The Typing Tax on a Timed Assessment

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Diagnostic Sprint

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Checkpoint: Baseline Hybrid Block

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Function Signatures

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Boilerplate Openers

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Type and Collection Declarations

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Input Parsing Rituals

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Node and Struct Skeletons

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Test Harness Blocks

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Operator Glyph Clusters

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Collection Literals and Comprehensions

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Checkpoint: Cold Start Under the Clock

Primary rows on Graphite: number row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Problem Restatements

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Constraint Statements

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Complexity in Words

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Edge Case Enumerations

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Comment Lines

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Pseudocode Blocks

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Clarifying Questions

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Approach Summaries

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Checkpoint: Explanation Under the Clock

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Two-Pointer Pattern

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Sliding Window Pattern

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Binary Search and Its Boundary Form

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Hash-Map Counting

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Prefix Sums

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Stack and Bracket Matching

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Sorting With a Comparator

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

In-Place Reversal and Rotation

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Checkpoint: Core Patterns Under the Clock

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

BFS Template

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Dynamic Programming Template

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Recursive DFS on a Tree

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Grid Traversal

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Memoized Recursion

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Backtracking

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Heaps and Priority Queues

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Union-Find

Primary rows on Graphite: top letter row and number row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Checkpoint: Graphs and DP Under the Clock

Primary rows on Graphite: number row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Restate, Solve, Explain

Primary rows on Graphite: bottom row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Multi-Function Program

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Debugging a Failing Case

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

A Refactor Pass

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Back-to-Back Problems

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Input-Heavy Setup

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Steady Cadence Block

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Mixed Language Block

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Checkpoint: Full Answer at Real Cadence

Primary rows on Graphite: home row and top letter row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Full Simulation 1 of 5: Interval Scheduling

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Full Simulation 2 of 5: String Compression

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Full Simulation 3 of 5: Course Ordering

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Full Simulation 4 of 5: Word Frequency Report

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Full Simulation 5 of 5: Matrix Path Cost

Primary rows on Graphite: top letter row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Final: The Complete Assessment Answer

Primary rows on Graphite: bottom row and home row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.

Coding Assessment Typing Prep

Cooldown: What the Drills Bought You

Primary rows on Graphite: home row and bottom row.

Once the pattern feels stable, move directly into the live lesson and use the saved result to decide whether to repeat or advance.