Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Lately I've been noticing my keyboard usage more and more and how it affects my productivity. It brought to mind a question/problem that I believe has not been truly solved in the programming community (partially based on individual preferences).

Are all/most keyboard layouts inherently flawed for programmers?

What changes to your keyboard layout do you feel would increase your productivity most?


Remember when answering that there are a number of different factors that could make a keyboard layout flawed. For instance, if you type as fast as you believe you need to, but hitting common keys is uncomfortable, said keyboard layout could be considered flawed.

share|improve this question

closed as primarily opinion-based by MichaelT, Snowman, durron597, ratchet freak, Ampt Apr 24 at 17:36

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

I actually saw a site that offered a keyboard remapping software together with a set of layouts designed to supposedly improve programming experience in various languages. You might want to try to find it. It's been open source IIRC. –  Mchl Jan 11 '11 at 18:18
There's a stack overflow question exactly like this. stackoverflow.com/questions/687/keyboard-for-programmers –  S.Lott Jan 11 '11 at 18:27
@S.Lott - That question is regarding a physical keyboard (with minor talk of re-mappig a few keys). This isn't about a any specific keyboard, but rather keyboard layouts (qwerty, dvorak, etc) and whether they are ideal for programmers. –  Craige Jan 11 '11 at 18:29
This seems very close to - programmers.stackexchange.com/questions/27324/… –  MIA Jan 11 '11 at 18:39
Why even a keyboard and not a neural interface. –  Loki Astari Jan 12 '11 at 5:12

6 Answers 6

up vote 4 down vote accepted

The standard "touch-typist" way of typing certainly isn't optimal for programmers in my opinion, however I've found that experience and some kind of hybrid fingering allows you to become fast enough.

Generally you can't program as fast and you can think anyway (at least not in greater spurts), in contrast to normal writing, so super speed isn't that important.

Having dedicated keys for paranthesis, brackets etc would have been great but using them is now so much of a reflex that the cost of re-learning it probably wouldn't be worth it.

Some keyboards are better than others though. Since I started using Dinovo Edge it has spoiled me for other keyboards. The more laptop-ish feel of the keys was a bit getting used to but I feel they're now far superior and all necessary keys are pretty tighly grouped on the keyboard

Downside is that it's pretty expensive and if you accidently or purposedly pry a key off it is almost impossible to attach again

alt text

share|improve this answer
No numeric keypad? –  JeffO Jan 11 '11 at 18:28
Nope, can't say that I miss it much :) –  konrad Jan 11 '11 at 18:31
I miss my number pad on my laptop, when typing in lots of numbers. To each their own I suppose. –  Arc Jan 11 '11 at 18:59
I use that keyboard for my media PC in the lounge room. It's just such a great-looking keyboard that I don't mind having it sitting next to my TV :-) (though there's a reason they never show you the back in promotional shots... what were they thinking?) –  Dean Harding Jan 11 '11 at 20:40

So I have a Finnish keyboard so it might be a bit different, but I would like dedicated keys for parenthesis, brackets, curly brackets and tags. A seperate key for the exclamation mark, underscore and semicolon would be great too.

Yeah, the common coding characters...

share|improve this answer
Curly brackets should have foot pedals. –  JeffO Jan 11 '11 at 18:29
My standard key-combination for curly brackets is Ctrl-V (on the German keyboard, they are a pain to type) –  user281377 Jan 11 '11 at 18:45
I have been thinking about remapping some keys, such as the å, ä and ö keys... anyone know if it is possible to remap ONE (but not both) super/windows key? –  Anto Jan 11 '11 at 18:54
@Jeff O. A Roland Pk5 (xmusic.ie/Roland-Pk5-Midi-Foot-Pedal-p-18314.html) and some MIDI remapping might be just what you need then :) –  user1249 Jan 11 '11 at 19:32
@Thorbjørn Ravn Andersen - I shit you not; I'm listening to Rush as I read this - Xanadu. –  JeffO Jan 11 '11 at 19:59

One reason I still hang on to my Avant Stellar keyboard is that it's got the original PC keyboard layout with the function keys on the left of the keyboard. Hitting CTRL-Fkey combinations is a one-handed operation that doesn't strain my fingers or my wrist. It's a shame, really -- I think if IBM had kept the function keys on the left, they'd be used a lot more. Nowadays it seems they're "second-class" keys, half the size of the other keys and kind of squished up at the top almost as an afterthought. At least, on my laptop and cheap extension keyboard here at work.

share|improve this answer

Rather than change the keyboard layout, and retrain my fingers to the new layout, I'd rather change the syntax of programming languages so they are not so heavy on stuff that is hard to type. On my Finnish keyboard, brackets, braces, and backslashes are the biggest problem.

Not that it matters much for overall development speed, which is dominated by thinking and designing, and debugging, rather than typing.

share|improve this answer
+1 for the thought that we as programmers put ourselves in this situation in the first place, without a reasonable exit-strategy. –  Craige Jan 11 '11 at 20:11
We Finns seem to have problematic keyboards ;) –  Anto Jan 12 '11 at 5:56

In interest of keeping this out of my question, I decided also answer this question with my opinion on the matter.

I have noticed a single flaw that I find to be my biggest bottle neck when developing (more specifically, editing/cleaning up old code).

If I could change one thing on my keyboard, it would be to integrate

  • insert
  • home
  • end
  • page up
  • page down
  • delete ?
  • dpad (Up, Down, Left, Right)

Into the main area of my keyboard. I find that these some of my most often used keys, and they are the keys that require me to move my hands away from their resting position (and often into an uncomfortable position).

share|improve this answer
Sounds like you need to learn vi (all those commands are keys in the heart of the keyboard). –  Bill Leeper Jan 11 '11 at 18:16
@Bill Leeper - I did not know that. Very interesting. However to qualify as a solution to me, there would have to be a keyboard layout driver that adopted such a convention (I've thought about editing Programmers Dvorak, considering it's an OS layout) –  Craige Jan 11 '11 at 18:23

I would say that keyboard layouts are not flawed for programmers or anything like that. If we look at what coding is it is just typing, I realize this is an overstatement, but in reality it is true. Now if we think keyboards are bad for programming we could also claim that they are bad for typing, which clearly is not the case. Additionally since the majority of people are right-handed they have quick access to the following keys:
These are used quite often in my programming and my hand is always available. This seems to be a case where the carpenter is blaming his tools. It isn't the design of the hammer that caused the nails to bend it was the way in which you struck the nail.

share|improve this answer
Well, maybe on a US keyboard, on my keyboard (Norwegian) almost all "programming symbols" require shift and alt-gr etc. For instance: () is shift+8 and shift+9, [] is alt-gr+8 and alt-gr+9, the {} is very awkward alt-gr+7 and alt-gr+0 respectively, and the <> is a key left of z normal and shifted. Etc... –  Stein G. Strindhaug Mar 28 '12 at 11:06
For users of Non-US keyboards, it seems the symbols chosen for most programming languages is specially chosen because they're hard to type; when in reality they're chosen because they're uncommon punctuation still easily available on US-keyboards. But because they (in normal text) is marginally used they were moved to awkward positions when creating non-us keyboard layouts requiring extra symbols... –  Stein G. Strindhaug Mar 28 '12 at 11:09

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