I recently wrote an open-source application that lets you practice Chinese writing and the decisions I made about its inner workings were related to my theories of how human memory works. I'm not sure which facts specifically are relevant, so I'll explain it all in context (scroll down to the the "question" section if you don't believe it's relevant):

The goal of the application is to help user remember the writing of Chinese characters and their pronunciation. The assumption is that the user would input a set of Chinese characters, most of which are non-trivial to write with aid, let alone from memory. Moreover, there is the concept of stroke order which is useful to remember: each character is made of strokes which should be written in a specific shape, position and order. This makes it pretty complex. I heard that the way Chinese people cope with learning this is that they repeat writing of each character 1000 times, but I believe this is not the best use of time, given the number of characters.

The way my program works is that for each input character, user is taught how to draw each stroke four times - 1) alone, 2) with all strokes introduced so far, 3) in context and 4) in context but with no aid -- like in this example, where user is expected to fill in the highlighted strokes (and add missing ones that were introduced so far):

example output of my program

In this example, user is exposed to first four digits in Chinese and should fill in the highlighted strokes, as well as ones already introduced. In each fourth tile, user is expected to fill in all already introduced strokes with no aid, forcing them to focus on geometry.

As you can see, tiles are split into groups that have thicker borders. After introducing the first two characters, there is a special group of tiles at the end of second and beginning of third line: it is blank and contains a pronunciation hint. The user is expected to try to recall the character and write it in its entirety in those tiles.


My problem seems to be that while this application is useful for me, I am getting signals that it is unintuitive for others to use. I heard complaints about the four types of tiles not being properly marked, leading to confusion. I also heard a suggestion to put each character in its own line (or a few lines), but I believe it would be space-inefficient; when this document gets generated with an input set of a language exam, it can easily exceed 20 pages.

You can fiddle with the program here if you want to get a better feeling of what its output looks like on a page: https://strokes.ovh/

Q: What kind of improvements could I apply to those practice sheets to make them more intuitive?

  • 1
    I think this is probably a user experience question that you need to ask people who are learning Chinese...
    – Michael Lai
    Sep 15, 2018 at 13:14

1 Answer 1


I agree with Michael Lai that you need to test with actual learners and trust their feedback.

A couple of answers from a general UX perspective:

  • Putting each character in its own line might be space inefficient, but it would greatly help with memorization. We are better at memorizing contents in small meaningful chunks, rather than in large quantity. Visually separating the chunks will help user with memorization. It might also depend on the cultural background of your users: Chinese websites are often filled with contents with no white space, US and European websites use a lot more white space.

  • There is indeed no indication regarding the 4 types of tiles. Your system might be performing well for memorization or not, but you can't know because users have no way to guess what's expected of them. I would include a presentation in your website to explain how the sheet works, and a short tutorial on top of the generated files (with the possibility to disable it for returning users)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.