Typing Settings

Cursor won't advance until you press the correct key

Enable or disable backspace to correct mistakes

Play sounds when typing

ProgrammingCurated snippets — upgrade to Pro for live GitHub code
Loading snippet...
Tip: Programming mode emphasizes special characters like {} [] () and operators. Focus on accuracy with these symbols.
Show GuideHide Guide

Learn as you practice

Programming practice guide

Programming practice focuses on the physical details of entering code: brackets, quotes, capitalization, operators, and line breaks. It is a transcription exercise, not a compiler or a programming assessment. Match the displayed source carefully, even when another spelling or formatting style would also be valid code.

Give punctuation its own attention

Choose JavaScript, TypeScript, Python, or Java from the Language menu. Free practice uses curated snippets. Begin with a language whose notation you recognize so you can concentrate on the keys rather than guessing the structure. Use New Snippet when you want another example.

Read short structural units before typing: an opening parenthesis and its arguments, a quoted string, or a complete assignment. Do not mentally skip punctuation while reading. A missed quote can make the rest of a line feel out of sync even when the letters are correct.

const total = prices.reduce((sum, price) => sum + price, 0);
In this original JavaScript example, notice the two opening parentheses before sum, the arrow operator, the comma before 0, and the closing parenthesis before the semicolon. Reading those groups makes omissions easier to spot.

Compare the reaches each language emphasizes

JavaScript combines parentheses, braces, and operators such as =>. TypeScript adds type annotations, so a colon can separate a variable name from its type. Java examples often include capitalized class names, braces, and semicolons. Python relies heavily on colons and indentation to make structure visible.

Treat spaces and line breaks as part of the displayed exercise. A typing drill does not apply your editor’s automatic formatting or autocomplete. If a line is not advancing, check the next highlighted character for a space, capital letter, or newline before continuing.

def line_total(price, count):
    return price * count
This original Python example has a colon after the function signature and four spaces before return. The exercise asks you to reproduce those characters; it does not run the function.

Practice accuracy before adding another language

Choose one language for a short session. First concentrate on paired characters such as () and {}. In the next block, watch capitalization and Shift combinations. Finish with a block at a natural pace and compare the kinds of mistakes, not only the WPM.

The same character-based speed formula used in the other modes applies to code. A punctuation-heavy snippet can be slower than plain words without representing a loss of skill. Compare similar snippets and keep error settings consistent. Pro can use GitHub content; repository connection and private-code practice stay separate from the free curated exercises.

Common questions

Does TypingDuck execute the code I type?
No. Programming mode compares your keystrokes with the target snippet. It does not compile, run, or evaluate the program.
Why is different valid formatting marked wrong?
This is exact-text practice. Match the shown whitespace, case, and punctuation even if your own editor would accept a different style.
What happens if a GitHub snippet cannot load?
The page reports a loading problem or identifies a curated fallback. Free curated practice does not require connecting a GitHub account.