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.

~$%&7[5{3}1(9=0*2)4+6]8!`#BackspaceTab:;<,>.PYFGCRL?/^@|\Caps LockAOEUIDHTNS_-EnterShift"'QJKXBMWVZShiftCtrlAltSpaceAltCtrl

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 all

Lesson Stage

Individual Home Row Letters

Part of the SureTyping guided lesson path.

18 lessonsStart

Foundations

Home Row Combinations

Early lessons that build finger anchors, repeatable reaches, and the first real words.

21 lessonsStart

Lesson Stage

Individual Top Row Letters

Part of the SureTyping guided lesson path.

18 lessonsStart

Upper Reach

Top Row Combinations

Lessons that add upper-row travel, alternating-hand rhythm, and controlled reach.

18 lessonsStart

Lesson Stage

Individual Bottom Row Letters

Part of the SureTyping guided lesson path.

12 lessonsStart

Lower Reach

Bottom Row Combinations

Lessons that strengthen precision on the lower row and improve edge-key control.

19 lessonsStart

Word Building

Word Building

Lessons that turn letter control into common words, bigrams, and connected phrases.

16 lessonsStart

Lesson Stage

Fluency Review

Part of the SureTyping guided lesson path.

4 lessonsStart

Capital Letters

Capital Letters

Lessons that teach opposite-hand Shift technique for capitals before moving into full mixed-text fluency.

8 lessonsStart

Lesson Stage

Shift Technique

Part of the SureTyping guided lesson path.

12 lessonsStart

Lesson Stage

Speed Drills

Part of the SureTyping guided lesson path.

7 lessonsStart

Lesson Stage

Accuracy Training

Part of the SureTyping guided lesson path.

4 lessonsStart

Lesson Stage

Real-World Typing

Part of the SureTyping guided lesson path.

22 lessonsStart

Lesson Stage

Endurance

Part of the SureTyping guided lesson path.

10 lessonsStart

Lesson Stage

Weak Key Recovery

Part of the SureTyping guided lesson path.

3 lessonsStart

Full Keyboard

Mastery

Lessons that combine punctuation, numbers, symbols, mixed strings, and speed-oriented review work.

10 lessonsStart

Lesson Stage

Punctuation & Numbers

Part of the SureTyping guided lesson path.

42 lessonsStart

Lesson Stage

Casper Test Typing Prep

Part of the SureTyping guided lesson path.

14 lessonsStart

Lesson Stage

JavaScript code typing

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

TypeScript code typing

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Python code typing

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Java code typing

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Code: C

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Code: C++

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Code: C#

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Code: Go

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Code: Rust

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Code: Ruby

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Code: PHP

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Code: Swift

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Code: Kotlin

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Code: SQL

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

HTML & CSS code typing

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Code: Bash

Part of the SureTyping guided lesson path.

8 lessonsStart

Lesson Stage

Kira Talent Typing Prep

Part of the SureTyping guided lesson path.

6 lessonsStart

Lesson Stage

Duet Typing Prep

Part of the SureTyping guided lesson path.

6 lessonsStart

Lesson Stage

Snapshot Written Follow-up Prep

Part of the SureTyping guided lesson path.

6 lessonsStart

Lesson Stage

GRE Analytical Writing Typing Prep

Part of the SureTyping guided lesson path.

6 lessonsStart

Lesson Stage

LSAT Writing Sample Typing Prep

Part of the SureTyping guided lesson path.

6 lessonsStart

Lesson Stage

Coding Assessment Typing Prep

Part of the SureTyping guided lesson path.

6 lessonsStart

Guides

View all