Я написал эту статью, ни разу не посмотрев на клавиатуру
В начале года я почувствовал, что упёрся в потолок как инженер. Вроде бы читаешь толстые книжки, решаешь на работе сложные задачи, на конференциях выступаешь. А всё не то. Поэтому я решил вернуться к корням и по очереди закрыть навыки, которые когда-то в детстве считал базовыми для программиста.
Первой в списке стояла слепая печать, которую давно откладывал. Теперь считаю её необходимой для каждого, для кого код и конфигурация – профессия. Под катом расскажу как перевернулся мой мир, и поделюсь советами как перевернуть ваш. Заодно приглашаю поделиться своими рецептами и мнениями.
Что отличает программиста, который пользуется мышкой, от программиста, который пользуется хоткеями? Пропасть. Почти недостижимая скорость и качество работы, при прочих равных.
Что отличает программиста, который пользуется хоткеями, от программиста, который может печатать вслепую? Ещё большая пропасть.
Нафига мне это
А вы можете печатать вслепую? Нет, я говорю не про тот случай, когда 10 слов пишешь, а потом смотришь на клавиатуру. А по-нормальному.
Когда оттачиваешь точность и количество символов в минуту.
Когда исправляешь слова, не глядя на клавиши.
Когда пользуешься обоими шифтами.
Когда каждому символу – свой палец.
До декабря или января этого года я не умел печатать вслепую. И особо на этот счёт не беспокоился. Потом меня пристыдил коллега, и я решил во что бы то ни стало научиться. Попробовав разные тренажёры, я остановился на typingclub.com. Пара-тройка месяцев, один дёргающийся глаз, и 20 слов в минуту мои.
Нафига вам это
Мы живём в мире слепопечатников.
Весь мир вокруг создан программистами-слепопечатниками для таких как они:
Открываешь vim, а там почти все хоткеи односимвольные. Пока ты смотришь за ними на клавиатуру, будешь по скорости как бабушка–бухгалтер, которая набирает в незнакомой раскладке двумя пальцами: «Таааак, ииии с точкой, эээс, как доллар, джи, как си с закорючкой, падажди, сейчас найду, не торопи».
Вообще весь этот дивный зоопарк линуксовых утилит вроде less или innotop. Всё завязано на то, что вы будете пользоваться однобуквенными хоткеями.
И рядом полно таких же десятипальцевых:
Вот друг, катаясь на сноуборде, говорит: «Сейчас приеду домой, допишу 15 страниц диссертации». Ты спрашиваешь, мол, накопипастишь? А он: «Да, нет, я же знаю о чём писать, сяду и быстро напишу». А потом оказывается, что он считает этот навык само-собой разумеющимся и никогда о нём не говорил, потому что считал, что все так умеют.
Или другой товарищ: «Ты заметил, что когда садишься в пару с теми, кто вслепую не печатает, кажется, что они ну о-о-о-очень медленные?»
Почти все самые продуктивные из моих коллег, оказывается, владеют этой штукой.
Слепая печать спасёт от копипасты:
Раньше я думал, что проще скопировать 10 строк, чем их написать. Или даже одну, чтобы точно не сделать ошибку. Сейчас я просто пишу то, что хочу написать и не останавливаясь слежу за правильностью того, что появляется на экране; не боясь опечаток, проблем с раскладкой или ошибок в синтаксисе/семантике.
Оказалось, что я тот ещё графоман: начал вести дневник, статьи пописывать. Вот эту написал.
Хоткеи стало учить весело. Они перестали быть аккордами, а стали продолжением уже знакомых клавиш.
Можно меньше думать о количестве действий, а больше о качестве:
Код часто получается короче, просто потому что делаешь на пару циклов рефакторинга больше за то же время. Или успеваешь написать необязательный, но приятный тест.
В некоторых играх ты получаешь способность, которая позволяет пролетать над врагами, с которыми раньше приходилось драться. Вот в жизни программиста такая супер-способность – слепая печать.
Сейчас мой результат – около 60 слов в минуту на знакомом тексте и около 40 – на незнакомом.
Знаю, что вполне реально добить до 80, если работать над точностью. То есть, чем ты быстрее, тем меньше у тебя опечаток. Норм. Пойду ещё потреню.
Советы и рекомендации для тех, кто решил научиться
Чтобы научиться слепой печати, следуйте двум простым советам: экспериментируйте и отдыхайте.
Экспериментируйте
Так получилось, что кроме слепой печати за последний год я освоил много вещей, которые нужно было выводить в мышечную память: уницикл (одноколёсный велосипед), сёрф, начал трогать фортепиано (слегка). Когда-то давно выступал с жонглированием. И для всего этого у меня есть общий подход. Попробую его описать.
Ваша задача – выполнить элемент в максимальном числе вариаций.
В жонглировании – начать с другой руки или сместить внимание с поимки шара, на правильность броска.
На фортепиано – начать играть фразу с середины или тренироваться без звука.
На уницикле – следить за правильностью позы, а не за равновесием. Даже ценой падения.
Тренажёр слепой печати устанавливает цель: 100% точность и определённая скорость. Но не говорит, как её добиться. Вот ты сделал упражнение. У тебя три звезды из пяти. Первое желание – повторить. Вдруг будет больше? Будет. Или не будет. Я так по 15 минут повторял с переменным успехом. Выход – сделать так, чтобы при повторении работала голова.
При повторении должна работать голова. Как этого добиться?
Чередовать алгоритм работы с ошибками.
Ставить промежуточные цели, связанные с точностью, а не со скоростью.
Иногда нарочно писать медленнее, чем хочется.
Концентрироваться на ритме печати, а не на аккуратности.
Менять места, где вы тренируетесь.
Менять тренажёры.
Во время тренировки вы допустили ошибку. Что делать?
По очереди использовать три алгоритма действий.
Зачем? Каждый раз приходится думать немного по-другому, поэтому внимание не притупляется.
Плохой алгоритм: «В случае ошибки начинать заново». Так ты будешь тренировать всё время одно и то же, очень медленно продвигаясь вперёд.
Для разнообразия, я ставлю цели, связанные с аккуратностью.
Постараться не ошибиться ни разу в написании:
Определённой буквы во всём тексте.
Конкретного набора слов, в которых обычно совершаешь ошибки.
Всех первых букв во всех словах.
Всех последний букв во всех словах.
Всех знаков препинания.
Придумайте свой вариант.
И самое главное.
Не забывайте отдыхать
При монотонном повторении, организм переходит в зомби-мод. Сам этого не замечаешь. Можно ставить будильник на 10-15 минут. И делать перерыв, даже если думаешь, что у тебя и так всё хорошо.
Как-то в предисловии к книжке по Objective-C (на котором не программирую) прочитал фразу, которую стоит помнить в процессе любого обучения. Ей и хочу закончить.
«Это не вы тупой, это Objective-C сложный. По возможности спите по 10 часов в сутки».
Тут я хотел закончить, но IT-редактор пришёл с вопросами о цифрах Олеся спрашивает, я отвечаю.
Почему ты выбрал именно этот тренажер и сколько других попробовал прежде, чем определиться с выбором?
Немного, четыре или пять. В том числе и заточенные под программистов. typingclub.com понравился качеством обратной связи: каждый косячный символ подсвечивается, статистика по пальцам, клавишам и вообще. Осмысленные английский текст. Обучение разбавлено мини-играми. У меня есть коллега, которому понравился keykey.ninja, но он только для мака.
Сколько времени в день ты уделял тренировке?
Поначалу много – 6 часов в неделю. То есть где-то по часу в день. Сейчас мне кажется, что я лишнего упарывался, и можно было делать это в более спокойном темпе.
Когда ты перестал смотреть на клавиатуру во время работы?
Пробовал не смотреть с самого начала. Особенно, если происходило что-то несрочное. У меня есть пароль на 24 символа, первые разы написать без запинки было сложно. Хард-стоп поставил себе, когда смог стабильно выбивать 35 wpm на тренажере. После этого запретил себе смотреть на клавиши в работе.
Сколько всего времени ушло на освоение навыка слепой печати?
Сейчас посмотрел, 40 часов в сумме. Но это ещё не все задания, осталось чуть меньше половины. На самом последнем тренажёр требует 75 WPM.
Если вам понравилось читать этот лонгрид, то пользуясь служебным положением приглашаю вас в мой telegram-канал. Там я рассказываю про SRE, делюсь ссылками и размышлениями.