The Complexity of Written Japanese, or How I Rationalized Learning to Code

Sekhar Paladugu
Broadlume Product Development
5 min readMar 22, 2018

--

A wise poster on Quora once wrote, learning a language is “a bit like climbing a mountain — a large but easy mountain, the sort that anyone can climb so long as they keep going.” This answerer emphasized at length that learning a language isn’t inherently difficult, just long. Most language learners simply don’t understand the grit required to endure hundreds if not thousands of hours of practice. In my experience, learning to climb the Japanese language can often feel like summiting Everest. But peppered throughout, moments of fluency with native speakers can feel so deeply satisfying that they make all the practice feel worthwhile.

My experience learning Japanese for six years (during which I lived in Japan for one year) shaped me greatly and prepared me for the parallel journey of learning to write code a decade later in life as I went back to school and changed careers. Here I’d like to succinctly describe the complexity of written Japanese and leave the technical (or would-be technical) reader to marvel at the similarity in intricacy involved compared to written software. The journey in language learning regardless of medium is steepest at the start but in the end you gain access to a whole new world.

Clojure code mixed with Japanese!

The Japanese Writing System — Kanji

Written Japanese is widely considered to be one of the most complex language systems in the modern world. Generally, most all Japanese sentences are rendered in combinations of character-based writing alongside two 46-part sets of syllabic kana (hiragana and katakana). Kanji, as the characters are known, are Chinese characters that came to Japan over a thousand years ago through extensive cultural exchange. Japanese, while not even a linguistically genetic relative of Chinese, borrowed much of China’s character-based writing system and now has over 2000 adopted characters in widespread use, with thousands more in circulation. It takes the typical adult in Japan over twelve years of study from ages 6 to 18 to learn the 2136 standardized Joyo kanji used in official publications like newspapers. Yes, you read that right, twelve (!) years to learn over two thousand characters, some of which are so complex they require 84 strokes of a pen to write! (I’m looking at you, taito.)

Each kanji almost always has multiple ways to be read, with both Chinese- and Japanese-style readings based on the exact word, placement within a sentence and even intention of the writer. Some characters have over a dozen readings, some of which can be archaic or extremely rare. Kanji are pictographic and thus not at all syllabic with intrinsic pronunciations. With the rise of computers, smartphones and word processors, many Japanese people under the age of 30 struggle to read and write hundreds of difficult and less common characters as machines take the place of producing characters for given syllables written in romanized English alphabet-based keyboards.

Japanese Writing Continued — Hiragana, Katakana & Furigana

Both kana syllabaries on the other hand function like our own alphabet in English. They each represent the same 46 sounds that cover nearly the full spectrum of the Japanese language. Each sound in Japanese has both one corresponding hiragana and katakana character each. All kanji can be written through these syllabaries, though all Japanese written for adults defaults to using kanji alongside kana. While there have been proposals in the past to simplify the Japanese writing system to eliminate kanji entirely, they haven’t gone anywhere. Hiragana is used for Japanese words, particularly words without kanji, and for grammatical purposes. Katakana by contrast is used to transliterate foreign language and represent foreign loan words from English and other languages. Katakana is also used for onomatopoeias, for emphasis as well as for other uses.

Finally, geared at children and at non-native speaking adults, furigana are occasionally used small kana written phonetically above kanji to guide in reading pictographic characters, including ambiguous or rare ones. After learning kana, these helpful characters when written can give you the all-encompassing ability to pronounce and read any sentence in the Japanese language when included above kanji in native language writing. They are not commonly present in written materials in Japan though so do not expect a shortcut to learning this writing system!

Furigana by coincidence alternately get called ruby characters. While I don’t think we can thank Ruby creator Matz for this, it’s still worth thanking him and Japan generally for his service to the programming world! Even in the arduous climb that is learning to write Japanese, you can find ruby making life easier from the beginning.

My Parallel Journey through Japanese and Software

I know for me personally, learning to write Japanese (a journey I was only part-way into after six solid years of study!) helped prepare me for the depths of study required in a complex domain of foreign knowledge. Writing Ruby or JavaScript and otherwise learning the intricacies of various fields within modern web development continues to amaze me in a similar fashion.

Just this week, as part of writing a few coding challenges for interviewing developers and writing technical screens, I’ve spent many hours deep down the rabbit hole of manually flattening arrays in JavaScript. In comparison to learning Japanese, I would compare discussing the merits of various solutions around one basic data structure manipulation to learning how to read one kanji character in one way, and perhaps even that’s not trivial enough! The time required for true broad mastery can run into thousands of hours for just one area of expertise as a software engineer, as well as for a foreign language.

I hope my examination of the maze that is modern Japanese writing gives perspective to other folks who write software either as a hobby or professionally. If you’re interested in learning to code and potentially even making a career out of it, I’d encourage you to think to your experiences with foreign languages and the experiences of those around you. The perspective those journeys might shed will prepare you for the grit required to continue up the mountain that is learning to code.

--

--

Sekhar Paladugu
Broadlume Product Development

Remote Software Engineer at Broadlume, Stay-at-Home Dog Parent, All-Around Nerd