Около месяца назад я решил оптимизировать клавиатурную раскладку. Прикинув, сколько и чего я пишу в последнее время (Clojure, CSS, русский/латинский текст), я сделал следующие оптимизации:
- У всего цифрового ряда поменял режимность: клавиши оставил те же, но специальные символы теперь набираются без шифта, а цифры с шифтом.
- Аналогично поменял одинарную и двойную кавычки: чтобы набрать двойную, шифт нажимать не нужно, а одинарная набирается с шифтом
- Переставил двоеточие (теперь без шифта) и точку с запятой (теперь с шифтом)
- В русской раскладке сделал точку и запятую без шифта, а слеш-бэкслеш уехали на шифт.
Общее направление - минимизировать количество нажатий шифта, что должно уменьшить нагрузку на пальцы. Это не универсальный рецепт, многое зависит от того, чем вы занимаетесь - скажем, в CSS и в JS имеет смысл вынести на безшифтовой режим фигурные скобки.
Я даже написал тулзу, чтобы научно обосновать свои действия, вот примерный выхлоп:
cljs (97) -------------
backslash \ 503 81 |
brackets [] 25786 3142 {}
colon ; 5079 << 7769 :
dash - 23239 1606 _
numbers 1234567890 9598 << 85609 !@#$%^&*()
plus = 1866 490 +
punct ,. 8730 1651 <>
quotes ‘ 827 << 8544 “
slash / 4575 4226 ?
tilda ` 142 10 ~
css (7) -------------
brackets [] 26 << 600 {}
colon ; 818 866 :
dash - 564 184 _
numbers 1234567890 1757 458 !@#$%^&*()
plus = 11 1 +
punct ,. 560 51 <>
quotes ‘ 60 24 “
slash / 56 0 ?
js (2) -------------
backslash \ 71 << 1094 |
brackets [] 2564 << 9168 {}
colon ; 4736 5409 :
dash - 1516 << 2917 _
numbers 1234567890 5437 << 25052 !@#$%^&*()
plus = 6720 970 +
punct ,. 20530 549 <>
quotes ‘ 2794 << 6924 “
slash / 5279 517 ?
tilda ` 1492 2 ~
Две цифровые колонки посередине - это частотность символов из группы. Знак << означает что имеет нехилый смысл поменять кнопку и ее шифтовый эквивалент.
Подобные оптимизации дают маргинальное преимущество - да, пальцы надо тянуть чуть меньше. Наверное, сравнимо с эффектом от раскладки Дворака - пять, может десять процентов облегчения/скорости/снижения ошибок. Приятный эффект, например, состоит в том, что я могу набрать что-то подобное, не прикоснувшись к шифту:
(let [[x & xs] @atom]
(swap! *context* #(assoc % :key "abc")))
Самое интересное здесь - это процесс адаптации. Для меня это не новый опыт - у меня уже есть клавиатура с нестандартной раскладкой, вот такая:
Так вот, у нее прямо в инструкции написано: сразу вы на ней печатать не будете. Вы помучаетесь примерно неделю, будете промахиваться мимо клавиш, печатать со скоростью второклассника, выводящего буквы в прописях, захотите это дело забросить, не раз придете в бешенство. Потерпите. Через неделю вы привыкните, будете печатать как ни в чем не бывало. Трудности даже не вспомните. Главное, что оно того стоит.
И они оказались правы. Примерно так процесс адаптации и происходит. Я прошел его один раз с клавиатурой, и вот недавно второй раз с новой раскладкой.
Забавнее всего, что в процессе обучения подобным механическим навыкам не участвует личность. Мы привыкли говорить - я знаю, я умею, мне нужно научиться. Здесь личность только мешает - учиться неохота, эмоции переполняют, ничего не получается, выигрыш далеко за горизонтом и вообще сомнительный. Проще всего к тренировке подойти отстраннено: как будто ты не себя тренируешь, а собаку. Чужую какую-то собаку. На входе энное количество механических повторений, некая регулярность. На выходе собака умеет печатать. Хочет она, не хочет, даже если она принципиально против - обучение встроено в организм и мозгом не управляется. Если есть тренировка - собака научится. То, что личность собаки в данном случае совпадает с инициатором тренировки - необязательная деталь.
То же самое и со многими другими видами обучения - новый редактор, новый язык программирования, новый курс на Курсере. Полезно смотреть за собой, улавливать структуру поведения, четко разделять цель (научиться чему-то), процесс обучения и собственную эмоциональную реакцию на него. Последнее надо научиться изолировать - эмоции идут и развиваются сами по себе, влиять на процесс они не должны.