Is Mandarin hard to learn? Speaking vs writing
Mandarin is in the hardest category of the US diplomats' language school, at 88 weeks of full-time study — about three times as long as Spanish. But that single number hides the most useful fact about learning Mandarin: it is really two jobs, speaking and writing, and they are hard in completely different ways. One is easier than its reputation. The other is harder.
Speaking: easier than you think
The grammar is light. Mandarin has almost no inflection. Wikipedia's summary of Chinese grammar says the language "almost entirely lacks inflection; words typically have only one grammatical form". A verb does not change for who does it or when: 我去 (wǒ qù), "I go"; 他去 (tā qù), "he goes"; 我明天去 (wǒ míngtiān qù), "I'll go tomorrow" — the time word does the work that a tense does in English. There are no genders, no cases, no agreement, and no irregular verbs to memorise.
Compare that with the six verbs that are 96 of Spanish's 1,000 most common words, or German's six spellings of "the" in is German hard to learn. For a beginner putting sentences together, Mandarin is simpler than either.
The hard part of speaking is the tones. Every syllable carries one of 4 tones (plus a light neutral one), and the tone changes the word: mā 妈 is "mother", mǎ 马 is "horse". Tones are not an extra layer you add later; a word said with the wrong tone is a different word, or no word at all, so tones have to be practised from the first lesson.
Writing: harder than you think
The characters are the long road. Written Mandarin uses characters, not an alphabet, so a word you can say is not a word you can read. Each character has to be learned — its shape, its sound and its meaning — and there are thousands in common use.
The good news is how concentrated they are. Counted in film and television dialogue, 1,000 characters cover 91.1% of all the characters written, and the first 3,500 — the size of China's official list of frequently used characters — cover 99.4%. The bad news is that knowing a character is not knowing the words built from it: counted in words, the same 1,000 cover only 69.2%. Why those two curves are so different is explained properly in how many words you need to speak Mandarin.
Writing by hand is a separate skill again. Recognising a character and producing it from memory are different abilities, and much everyday writing is now typed — in pinyin, choosing the character from a list — which needs only recognition.
So is Mandarin hard?
It depends on which half you mean.
- Speaking and listening: the grammar is among the simplest you will meet; the tones are the real work, and they matter from day one.
- Reading: a long, steady job of learning characters, made shorter by how few do most of the work.
- Writing by hand: the hardest skill of all, and the one most learners can postpone.
A common approach is to start speaking with pinyin, the romanised spelling, and add characters gradually. How Mandarin compares with every other language in time is in the hardest languages to learn for English speakers, and how it differs from its best-known relative is in Mandarin vs Cantonese.
The most common Mandarin words are free and in frequency order, with pinyin, and the Mandarin course teaches tones and characters together from the first lesson.
How long each of those halves takes, measured against China's own HSK word and character counts, is in how long it takes to learn Mandarin.
Sources
- Foreign Service Institute, National Foreign Affairs Training Center: language learning timelines, checked 2026-09-25.
- Wikipedia: Chinese grammar — "almost entirely lacks inflection"; Standard Chinese phonology — four tones and a neutral tone.
- Wikipedia: List of Frequently Used Characters in Modern Chinese — the 3,500-character list.
- Lison, P. & Tiedemann, J. (2016). OpenSubtitles2016: Extracting Large Parallel Corpora from Movie and TV Subtitles. Proceedings of LREC 2016. aclanthology.org
- Dave, H. FrequencyWords: frequency lists from OpenSubtitles 2018, content licensed CC BY-SA 4.0. github.com. Every figure is printed from the output of
scripts/frequency_curves.py.