Every lesson is a story.
Every story teaches two languages.
Pick a level and start reading. New lessons added weekly.
Beginner
8 lessonsNo assumptions. Just code and English, side by side.
Variables & Meaning โ Why Names Matter
ๅ้ไธๅซไน โ ไธบไปไนๅฝๅๅฆๆญค้่ฆ
Good variable names are just good English sentences waiting to happen. In this lesson, you'll learn how TypeScript develโฆ
Functions in Plain English
็จ็ฎๅ่ฑ่ฏญ็่งฃๅฝๆฐ
A function is a promise. It takes something, does something, and returns something. Learn how TypeScript makes those proโฆ
Reading Error Messages Like a Native
ๅๆฏ่ฏญ่ ไธๆ ท่ฏปๆ้่ฏฏไฟกๆฏ
TypeScript's error messages are written in English โ and they're actually trying to help you. Learn to decode them, and โฆ
Interface vs Type โ The Great TypeScript Debate
Interface vs Type โ TypeScript ๆ็ญ้จ็ไบ่ฎบ
Every TypeScript developer eventually asks: 'Should I use interface or type?' The answer reveals something deep about hoโฆ
Optional Chaining โ 'If It Exists, Then...'
ๅฏ้้พ โ ใๅฆๆๅญๅจ๏ผ้ฃไนโฆใ
The `?.` operator is TypeScript's polite way of asking: 'does this exist? If yes, continue. If no, just return undefinedโฆ
Array Methods โ English Verbs in Code
ๆฐ็ปๆนๆณ โ ไปฃ็ ้็่ฑ่ฏญๅจ่ฏ
JavaScript array methods read like English sentences: 'find the user', 'filter the active ones', 'map each item to its tโฆ
Git Commit Messages โ Writing History
Git Commit Messages โ ไนฆๅๅๅฒ
Your commit history is a story. Learn the Conventional Commits standard, imperative mood, and how to write messages thatโฆ
Writing README Files โ Your Project's Front Door
ๅ README ๆไปถ โ ้กน็ฎ็้จ้ข
A great README is the difference between a project people use and a project people ignore. Learn the structure, vocabulaโฆ
Intermediate
13 lessonsYou know the basics. Now read code like a native.
Generics โ The Art of 'Whatever Type You Bring'
ๆณๅ โ ใ้ไฝ ๅธฆๆฅไปไน็ฑปๅใ็่บๆฏ
Generics are TypeScript's way of saying 'I don't care what type you use, but whatever you give me, I'll give you back thโฆ
Async/Await โ Speaking to the Future
Async/Await โ ๅฏน่ฏๆชๆฅ
Asynchronous code is everywhere in modern development. Learn how `async/await` makes your code read like a natural Engliโฆ
Union Types โ Either/Or in Code
่ๅ็ฑปๅ โ ไปฃ็ ้็ใ้ๆญคๅณๅฝผใ
Union types let a value be one of several things. The English word 'or' maps directly to TypeScript's `|`. Master this aโฆ
Type Narrowing โ Ruling Out Possibilities
็ฑปๅๆถ็ช โ ๆ้คๅฏ่ฝๆง
TypeScript gets smarter as you write conditions. 'Narrowing' is when the type gets more specific inside an if-block โ liโฆ
Error Handling โ Speaking About Failure Clearly
้่ฏฏๅค็ โ ๆธ ๆฐๅฐ่ฐ่ฎบๅคฑ่ดฅ
How you handle errors reveals how you think about failure. TypeScript's error patterns map to everyday English phrases aโฆ
React Props โ Typing What You Pass
React Props โ ็ปไฝ ไผ ้็ไธ่ฅฟๅ ็ฑปๅ
Props are how React components talk to each other. TypeScript makes that conversation explicit โ every prop has a type, โฆ
Reading npm Docs โ The Developer's English Skill
่ฏป npm ๆๆกฃ โ ๅผๅ่ ่ฑ่ฏญ็ๆ ธๅฟๆ่ฝ
Every library you use has a README. Reading it efficiently is perhaps the most valuable English skill a developer can haโฆ
Generics โ Write Once, Use Everywhere
ๆณๅ โ ๅไธๆฌก๏ผๅฐๅค็จ
Generics let you write flexible, reusable functions without sacrificing type safety. This lesson explores generic functiโฆ
Async/Await โ Taming Asynchronous Code
Async/Await โ ้ฉฏๆๅผๆญฅไปฃ็
Master the English vocabulary of asynchronous programming: promises, callbacks, race conditions, and concurrent executioโฆ
Enums vs Union Types โ Choosing the Right Tool
Enums vs ่ๅ็ฑปๅ โ ้ๆฉๆญฃ็กฎ็ๅทฅๅ ท
TypeScript offers both enums and string union types. Learn when to use each, understand tree-shaking implications, and rโฆ
Zod โ Runtime Validation with Type Inference
Zod โ ๅธฆ็ฑปๅๆจๆญ็่ฟ่กๆถ้ช่ฏ
Zod bridges the gap between compile-time types and runtime data. Learn how to validate API responses, form inputs, and eโฆ
RESTful API Naming โ Speaking HTTP Fluently
RESTful API ๅฝๅ โ ๆตๅฉๅฐ่ฏด HTTP
Good API design reads like natural English. Learn the conventions behind resource naming, HTTP verbs, status codes, and โฆ
Code Review Etiquette โ Giving and Receiving Feedback
Code Review ็คผไปช โ ็ปไบๅๆฅๅๅ้ฆ
Code review is a conversation, not a judgment. Learn the professional English phrases used in code reviews, from requestโฆ
Advanced
4 lessonsShip code and words at the same time.
Utility Types โ TypeScript's Built-in Vocabulary
ๅทฅๅ ท็ฑปๅ โ TypeScript ๅ ็ฝฎ็่ฏๆฑ่กจ
TypeScript ships with a library of 'utility types' that transform existing types. Each one has an English name that descโฆ
Writing PR Descriptions โ Your Voice on the Team
ๅ PR ๆ่ฟฐ โ ไฝ ๅจๅข้ไธญ็ๅฃฐ้ณ
A great pull request description is like a short story: what changed, why it changed, and how to verify it. Mastering thโฆ
Decorator Pattern โ Wrapping Behavior Elegantly
่ฃ ้ฅฐๅจๆจกๅผ โ ไผ้ ๅฐๅ ่ฃ ่กไธบ
Decorators add functionality to functions and classes without modifying them. Learn the vocabulary of metaprogramming anโฆ
Observer Pattern โ Events, Signals, and Reactivity
่งๅฏ่ ๆจกๅผ โ ไบไปถใไฟกๅทๅๅๅบๅผ
The Observer pattern is everywhere: DOM events, React state, RxJS, Zustand. Learn the vocabulary of publish-subscribe anโฆ