Осознание
В конце прошлого года на просторах ютюба смотрел какой-то ролик про программирование, и парень упомянул, что он умеет очень быстро печатать. Настолько быстро, что никогда не видел человека, кто бы печатал также быстро как он. И он показал цифры - 170 WPM.
WPM - это Words Per Minute, в английском принята эта единица измерения, считается что одно слово это 5 букв, т.е. это 850 символов в минуту. В других языках слова обычно длиннее и используется единица CPM (Characters Per Minute).
И я вроде бы мог печатать вслепую и печатал быстро, как мне казалось. Но после детального изучения оказалось все плохо. Особенно было плохо с точностью. Со скоростью тоже было довольно плохо. Точные цифры к сожалению не помню, во всяком случае не больше 200 CPM. И я вроде бы мог печатать вслепую, но только символы алфавита, а когда мне нужно было писать знаки препинания, цифры, математические и другие символы, то я смотрел на клавиатуру. С английской раскладной было еще хуже. Плюс я неправильно использовал пальцы с точки зрения слепой печати, например символы которые находятся между левой и правой рукой, я печатал, то одной рукой, то другой.
Первые шаги
Поняв, что я печатаю вовсе не быстро, мне очень захотелось этому научиться. Первым делом я прошел тренировку слепой печати для русской и английской клавиатуры на ratatype.
После этого я уже мог печатать действительно вслепую, но очень медленно примерно в два раза медленнее чем ранее ~100 CPM. Печатать медленно очень некомфортно, но это единственный путь двигаться вперед.
Другое открытие для меня было, что программисты очень мало печатают. Вроде бы мы целый день проводим в IDE за написанием и редактированием текста. Но в реальности мы везде используем автодополнение и редко где печатаем больше 2 символов с начала слова. Поиск в гугле - тоже автодополнение.
Настройки автодополнения по умолчанию, лишь подтверждают, что программисты печатают медленно. Например, автоматическое закрытие скобок и кавычек, контрпродуктивно если вы умеете быстро печатать, т.к. это заставляет вашу руку переместиться с базовой позиции на стрелки, а это долго, гораздо быстрее самому закрыть скобку или поставить кавычку.
В работе я перестал пользоваться автодополнением и в гугле пишу запрос полностью. В IDE печатаю все, что подсказывает мне автодополнение. Это мне позволило использовать работу как тренировку.
За декабрь я прошел путь от 100 CPM до 200 CPM, т.е. до моей прежней скорости.
А все так хорошо начиналось ....
В январе я словил боль в левом локте. Такую, что болеутоляющее мне не требовалось, но работать было невозможно, а спать нужно было выпрямив руку в локте. Сначала думал что пройдет само, но не прошло. Через 4 дня пошел по врачам. Наверное это тема для отдельной статьи. Возможно тренировки обострили проблему, возможно это постковид, а может быть просто совпало. Сейчас скажу, что полностью решить проблему пока не удалось, но сейчас значительно легче.
Как вы понимаете боль в локте не способствовала тренировкам слепой печати. От это идеи пришлось на пару месяцев отказаться, вернуться к использованию автодополнения, и не подходить к компьютеру вне работы.
Клавиатура
В какой-то момент стало ясно, что дешевая мембранная клавиатура, которая меня ранее всем устраивала, сейчас не подходит. Когда начинаешь печатать быстрее, чувствуешь дискомфорт и даже некую боль в пальцах.
Попробовал механику, но мне не понравилось. Вроде бы давить на клавиши легче, но из-за длинного хода клавиш, получается что все равно надо прикладывать большое усилие. А низкопрофильную механику за 16к рублей, я не был готов покупать.
В итоге остановился на клавиатуре A4Tech KV-300H - мембранная с ножничным типом клавиш, обошлась мне 2к рублей. По ощущениям как ноутбучная. Очень странно что на рынке очень мало подобных клавиатур.
Тренировки
Для тренировки использовал следующие сайты:
На typeracer проходят гонки, нужно напечатать цитату из книги быстрее других. Нужно ждать от 3 до 10 секунд пока появятся соперники. Для русского языка мало цитат, и приходится печатать одно и тоже. Для английского выбор цитат более разнообразен. Но есть другая проблема, одни буквы в текстах встречаются чеще чем другие, и получается так что одни буквы тренируются хорошо, а другие почти нет.
keybr позволяет тренировать все клавиши, но для тренировки используются не настоящие слова, а сгенерированные. Возможно это позволяет лучше тренировать проблемы с определенными буквами и слогами, но меня просто корежило печатать эти сгенерированные слова.
Свой сайт
Учитывая вышеуказанные проблемы, не существовало решения, которым бы я был доволен. В итоге я попробовал набросать свой прототип на голом js, а потом сделал свой сайт для тренировки - keypresso.ru.
Рандомно выбирается 20 слов на выбранном языке. Можно включить заглавные буквы и прочие символы. Слова выбираются под текущую букву для тренировки (на скриншоте "Е"). По всем нажатиям собирается статистика и следующая буква выбирается, та в которой наибольший процент ошибок.
Неочевидный момент в интерфейсе. Когда допечатали текст, чтобы перейти к следующему нужно нажать Enter или пробел. Последний символ должен совпадать, остальные на ваше усмотрение. Либо можно воспользоваться кнопкой "⟳". Ctrl+Backspace удаляет часть до пробела, так можно удалить неправильно напечатанное слово.
Еще одна инновация заключается в том, что неправильно набранный символ отображается тут же и выделяется красным. "Да, что тут инновационного?", спросите вы. Именно такого механизма я нигде не увидел. Везде это реализовано по другому - 1) неверный символ просто не вводится, и даже не отображается (и тут нужно догадаться, толи случайно переключил язык, толи нажал Caps Lock) 2) в typeracer он выводится в инпуте под текстом, что не удобно. Я даже не был уверен, что это будет удобно пока не попробовал. Опасение было следующее - напечатанный символ перекрывает, тот символ который нужно напечатать, и в теории нужно нажать Backspace, прежде чем продолжить. На практике никаких проблем это не вызывает и это оказалось удобнее, тех вариантов которые я видел в других местах.
Результаты
Скорость зависит от того как ее измерять. Показания на разных сайтах могут различаться. Одно дело печатать слова в нижнем реестре, другое полноценные предложения. По показаниям typeracer у меня 280 CPM на русском и 250 CPM на английском. Если бы не проблемы с локтем, думаю результаты были бы поинтереснее.