JSON & YAML Typing Speed Test
Config files are where developers spend more typing time than they admit: package manifests, CI pipelines, Kubernetes manifests, compose files. JSON's quote-colon-comma discipline and YAML's indentation-plus-dash structure each have their own failure modes worth training.
Config Syntax: Strict and Stricter
JSON is unforgiving: every key double-quoted, every pair colon-separated, every element comma-delimited β except the last, where a trailing comma breaks the parse. The quote-word-quote-colon rhythm (`"name": `) repeats for every field, and nested objects stack closing braces and brackets in sequences (`}]}`) that demand bracket-matching awareness while typing.
YAML swaps braces for indentation and adds its own vocabulary: the dash-space list marker (`- uses:`), bare keys with colons, and multi-level nesting where two spaces of drift changes meaning entirely. Real-world YAML β GitHub Actions workflows, docker-compose services β mixes both styles with inline arrays (`[push, pull_request]`) and quoted port mappings (`"3000:3000"`). Typing configs accurately the first time saves the debug cycle a stray character causes.
Key Drills for JSON & YAML:
- Quote-colon rhythm: JSON keys follow `"key": ` exactly. Make quote-word-quote-colon-space one continuous motion.
- Dash-space lists: YAML list items start `- ` β drill the marker so sequences flow line to line.
- Watch the closers: Practice `}]` and `}}` stacks. Deep JSON nesting closes in bursts that cause most config typos.
Sample Drill: JSON Config Object
Nested JSON with arrays, strings, and boolean flags.
{
"name": "devtype-api",
"version": "2.1.0",
"private": true,
"scripts": {
"dev": "node --watch server.js",
"test": "vitest run --coverage"
},
"keywords": ["typing", "developers"]
}The Symbols That Slow You Down
The keystrokes below are where JSON & YAML typing speed is won or lost. Key positions shown for QWERTY β the pattern transfers to any layout, just on different physical keys.
| Symbol | Used For | Keys | How to Drill It |
|---|---|---|---|
| "key": | Quoted key pair | Quotes as Shift+Apostrophe, then : as Shift+Semicolon | JSON's core rhythm: quote-word-quote-colon-space. It repeats for every field, so it must be one continuous motion. |
| }] | Nesting closers | } as Shift+], ] as Shift+[ | Deep objects close in bursts β `}]}`, `}}`, `]}]`. Bracket-matching while typing is a trained skill. |
| , | Element separator | Unshifted comma | Everywhere except the last element β where a trailing comma breaks the parse. Know when NOT to type it. |
| - | YAML list item | - unshifted, then space | The dash-space marker starts every list entry. Consistent rhythm keeps YAML indentation honest. |
| # | YAML comment | Shift+3 | Comments in config files. Shift-3 mid-edit shouldn't break your indentation flow. |
| --- | Document separator | Three hyphens | Opens YAML documents and front matter. Three even hyphen strikes. |
Common JSON & YAML Typing Mistakes
- βTrailing commas in JSON β the parse breaks exactly where your typing rhythm says a comma belongs.
- βIndentation drift in YAML: two spaces change meaning, so type structure deliberately, not by feel.
- βQuote-style confusion: JSON demands double quotes, YAML accepts both β drill them as separate dialects.
What's a Good JSON & YAML Typing Speed?
Config typing is about accuracy more than speed: 25β40 WPM with 98%+ accuracy is the goal. A single wrong character in CI YAML costs a re-push and a re-run β accuracy is the metric that matters here.