Everything You Need to Know About Programmer Dvorak
Programmer Dvorak rearranges both the letter keys and the number/symbol row to optimize for programming workflows. Numbers are accessed with Shift, while common programming symbols like brackets, braces, and semicolons are available unshifted.
Best for
Best for typists who care about symbol-heavy work, want unshifted programming punctuation, and are willing to retrain both letters and the number row deliberately.
Main challenge
The main Programmer Dvorak challenge is that the letter map changes like Dvorak while the symbol row changes even more aggressively, so impatience shows up quickly if you do not train in sequence.
History and Origin
Programmer Dvorak was created by Roland Kaufmann as a modification of the standard Dvorak layout. It extends Dvorak's philosophy of frequency-based optimization to the symbol and number rows, reasoning that programmers type symbols like { } [ ] ( ) ; and & far more often than literal digits. By placing these symbols in unshifted positions and moving numbers behind the Shift key, the layout reduces the total keystrokes needed for typical code.
The layout also rearranges the number order to 7 5 3 1 9 0 2 4 6 8 (matching Dvorak's original number-row proposal) and places parentheses on the unshifted number row in positions reachable by the index fingers.
Design Philosophy
Programmer Dvorak starts from the premise that code is not prose. While standard Dvorak optimizes for English letter frequency, it treats symbols as secondary characters accessed via Shift. Programmer Dvorak flips this for the top row: the characters you type most often in languages like C, JavaScript, Python, and Rust — parentheses, brackets, braces, ampersand, dollar sign — get unshifted positions.
The letter layout remains identical to standard Dvorak: vowels on the left home row, common consonants on the right. This means the prose-typing benefits of Dvorak are fully preserved. The difference is entirely in the number/symbol row and a few punctuation positions.
Who Programmer Dvorak Is Best For
This layout is designed for software developers who spend a significant portion of their typing time in code editors and terminals. The benefit is proportional to how much symbol-heavy code you write — web developers and systems programmers tend to benefit most.
Developers who already know or are learning Dvorak and want symbol-row optimization
Programmers who type brackets, braces, and parentheses frequently throughout the day
Typists who are comfortable retraining both letters and symbols simultaneously
Vim, Emacs, or terminal-heavy users who want consistent unshifted access to common symbols
Switching from QWERTY or Standard Dvorak
Coming from QWERTY, Programmer Dvorak is a larger change than standard Dvorak because both the letter keys and the number/symbol row change. Expect a longer adjustment period — 3–4 months is realistic for full comfort. From standard Dvorak, the letter keys are identical, so the transition focuses on the number/symbol row and can take 2–4 weeks of deliberate practice.
SureTyping's lesson paths cover the Programmer Dvorak layout with attention to the unique symbol positions. The AI trainer tracks accuracy across both letters and symbols, generating drills that target whichever key positions are weakest.
How to Practice on SureTyping
Work through the letter-key curriculum first to build the Dvorak base, then focus on symbol-heavy lessons as they appear in the upper-row and full-keyboard stages. Custom training through the AI trainer is especially useful for Programmer Dvorak because symbol accuracy tends to lag behind letter accuracy during the transition.
Tracks
Lesson curriculum
422 lessons — View allLesson Stage
Individual Home Row Letters
Part of the SureTyping guided lesson path.
Foundations
Home Row Combinations
Early lessons that build finger anchors, repeatable reaches, and the first real words.
Lesson Stage
Individual Top Row Letters
Part of the SureTyping guided lesson path.
Upper Reach
Top Row Combinations
Lessons that add upper-row travel, alternating-hand rhythm, and controlled reach.
Lesson Stage
Individual Bottom Row Letters
Part of the SureTyping guided lesson path.
Lower Reach
Bottom Row Combinations
Lessons that strengthen precision on the lower row and improve edge-key control.
Word Building
Word Building
Lessons that turn letter control into common words, bigrams, and connected phrases.
Lesson Stage
Fluency Review
Part of the SureTyping guided lesson path.
Capital Letters
Capital Letters
Lessons that teach opposite-hand Shift technique for capitals before moving into full mixed-text fluency.
Lesson Stage
Shift Technique
Part of the SureTyping guided lesson path.
Lesson Stage
Speed Drills
Part of the SureTyping guided lesson path.
Lesson Stage
Accuracy Training
Part of the SureTyping guided lesson path.
Lesson Stage
Real-World Typing
Part of the SureTyping guided lesson path.
Lesson Stage
Endurance
Part of the SureTyping guided lesson path.
Lesson Stage
Weak Key Recovery
Part of the SureTyping guided lesson path.
Full Keyboard
Mastery
Lessons that combine punctuation, numbers, symbols, mixed strings, and speed-oriented review work.
Lesson Stage
Punctuation & Numbers
Part of the SureTyping guided lesson path.
Lesson Stage
Casper Test Typing Prep
Part of the SureTyping guided lesson path.
Lesson Stage
JavaScript code typing
Part of the SureTyping guided lesson path.
Lesson Stage
TypeScript code typing
Part of the SureTyping guided lesson path.
Lesson Stage
Python code typing
Part of the SureTyping guided lesson path.
Lesson Stage
Java code typing
Part of the SureTyping guided lesson path.
Lesson Stage
Code: C
Part of the SureTyping guided lesson path.
Lesson Stage
Code: C++
Part of the SureTyping guided lesson path.
Lesson Stage
Code: C#
Part of the SureTyping guided lesson path.
Lesson Stage
Code: Go
Part of the SureTyping guided lesson path.
Lesson Stage
Code: Rust
Part of the SureTyping guided lesson path.
Lesson Stage
Code: Ruby
Part of the SureTyping guided lesson path.
Lesson Stage
Code: PHP
Part of the SureTyping guided lesson path.
Lesson Stage
Code: Swift
Part of the SureTyping guided lesson path.
Lesson Stage
Code: Kotlin
Part of the SureTyping guided lesson path.
Lesson Stage
Code: SQL
Part of the SureTyping guided lesson path.
Lesson Stage
HTML & CSS code typing
Part of the SureTyping guided lesson path.
Lesson Stage
Code: Bash
Part of the SureTyping guided lesson path.
Lesson Stage
Kira Talent Typing Prep
Part of the SureTyping guided lesson path.
Lesson Stage
Duet Typing Prep
Part of the SureTyping guided lesson path.
Lesson Stage
Snapshot Written Follow-up Prep
Part of the SureTyping guided lesson path.
Lesson Stage
GRE Analytical Writing Typing Prep
Part of the SureTyping guided lesson path.
Lesson Stage
LSAT Writing Sample Typing Prep
Part of the SureTyping guided lesson path.
Lesson Stage
Coding Assessment Typing Prep
Part of the SureTyping guided lesson path.
