Первые 20 часов. Как быстро научиться… чему угодно Кауфман Джош
Именно тогда я осознал ценность git branch и git merge: они позволяют создавать экспериментальные копии своей программы, а затем вносить изменения. Если копия заработала, вы можете сохранить изменения в оригинале. В случае ошибки вы просто удаляете экспериментальную ветвь, не теряя всей предыдущей работы.
Программирование — сложный процесс, и существует миллион возможностей сделать ошибку. Компьютер ничего не прощает и не выполняет неправильно сформулированные команды. Точно так же легко пропустить какие-нибудь мелочи, что приведет к непредсказуемым результатам. Я долго бился над ошибкой во фрагменте, связанном с сохранением пустых записей в базе данных, которые появлялись в списке страниц.
При каждом просмотре возникали фиктивные страницы, и я никак не мог понять, откуда они берутся. В конечном итоге выявилась ошибка в маршруте «показать все»: я использовал некорректную команду для извлечения записей из базы данных.
Каждая моя ошибка меня чему-нибудь учила. В этом заключается одно из скрытых преимуществ программирования. Компьютер — самый быстрый из всех возможных типов обратной связи. Когда вы что-то делаете неправильно, то мгновенно узнаете об этом. А когда правильно, то мгновенно видите результат. Если вам удастся побороть желание швырнуть компьютер в стену, то мгновенная обратная связь может превратить программирование в весьма увлекательное занятие.
В начале этого эксперимента я совсем не умел писать программы. Теперь умею. Потребовалось потратить определенное время, чтобы сделать коды послушными, а также проявить упорство или выполнить кое-какие исследования, если я заходил в тупик.
Что же я приобрел, потратив столько сил? Очень много. Я узнал, что такое программирование, как оно выглядит и какая от него польза. Я научился с нуля создавать интернет-приложения на языке Ruby, а затем размещать их на рабочих серверах. Я познакомился с Sinatra, Heroku, Jekyll, DataMapper, Rake и другими универсальными инструментами, с помощью которых могу разрабатывать новые приложения. Я научился находить ошибки в программе и устранять их.
Применение метода
Давайте кратко опишем суть метода, который я использовал для обучения программированию.
Я потратил время на получение общих представлений о программировании и интернет-приложениях, затем разбил эти навыки на более простые элементы, которые проще понять и которым легче научиться.
Я определил целевой уровень мастерства, выбрав два конкртных проекта, а затем описал, как будет выглядеть конечный результат в каждом из них.
Я разбил эти проекты на более мелкие этапы, а затем выделил из них самые значимые.
Я убедился, что у меня есть все необходимые для работы инструменты (например, последняя версия Ruby) и что я смогу найти любые дополнительные инструменты, которые мне потребуются.
Я нашел несколько надежных источников информации о программировании, но не стал читать заранее приобретенные учебные пособия, а решил сразу приступить к решению реальной задачи.
Сначала я работал над самыми важными элементами, например выяснил, как протестировать программу на своем компьютере, как разместить готовое приложение на рабочем сервере и тому подобное.
Я использовал примеры из справочных пособий, чтобы приступить к делу и приобрести некоторую уверенность, затем пробовал разные подходы, выясняя, как запрограммировать нужные мне функции.
Если я что-то делал неправильно, программа прекращала работу, выдавая мне сообщение об ошибке, что обеспечивало быструю обратную связь.
Сделав ошибку, я пробовал несколько способов ее исправления. Если я не мог решить проблему самостоятельно, то обращался за помощью.
Я продолжал придерживаться подхода «кодирование/тестирование/отладка» до тех пор, пока программы не были окончательно готовы.
Общее время составило около 20 часов. 10 часов заняли исследования, а оставшиеся 10 — создание двух приложений, которые в данный момент закончены и используются.
Планы на будущее
Завершив эти два начальных проекта, я продолжил писать интернет-приложения, сосредоточившись на программах, которые могли облегчить мне ведение бизнеса.
Теперь я с гордостью могу заявить: весь мой бизнес использует программное обеспечение, созданное мной самим. Мои приложения способны принимать оплату с кредитных карт, оформлять подписку, отправлять письма по электронной почте и управлять доступом клиентов к интернет-сайту. Научившись программировать, я стал владельцем собственной маленькой армии роботов, выполняющих мои приказы.
Сколько времени у меня ушло на создание всех этих программ? Приблизительно 90 часов, включая те 20, которые подробно описаны в этой главе.
А вот еще дополнительное преимущество: когда я сталкиваюсь с каким-то повторяющимся или скучным аспектом своего бизнеса, то начинаю думать в терминах программирования. Как будет работать программа, решающая эту проблему? В большинстве случаев это помогает систематизировать процесс, что значительно облегчает мне жизнь.
Кроме того, я научился некоторым новым трюкам, например настраивать свой компьютер, чтобы ускорить процесс программирования. Я запомнил комбинации «горячих клавиш» текстового редактора, позволяющие сэкономить время, а также обновил программу Terminal до iTerm2 и Z-Shell, чтобы немного облегчить программирование.
Я все еще учусь, и меня ни в коем случае нельзя назвать специалистом. Мне приходится доходить до всего своим умом, и требуется определенное время, чтобы найти правильный путь и устранить ошибки. Зачастую это вызывает раздражение.
Тем не менее я пишу программы, которые решают реальные задачи, просто и надежно. И только это имеет значение.
Я сражался с компьютером и победил.
6
Печать слепым методом
Урок: старые привычки не обязательно живучи
Хорошее дело стоит того, чтобы сначала помучиться.
Рей Конгдон
До сих пор я приобретал новые навыки в тех областях, где практически не имел опыта. Естественно, отсутствие опыта поначалу было препятствием, но мой мозг, по крайней мере, не вмешивался в процесс обучения.
А что происходит, когда вы осваиваете новый навык, а ваш мозг восстает против этого?
Можно привести поистине драматические примеры переучивания. Известно, что знаменитый гольфист Тайгер Вудс трижды менял свой свинг (удар), уже достаточно эффективный [1]. Иногда стоит научиться делать нечто важное по-новому, еще лучше — даже если это приведет к кратковременной неэффективности и раздражению.
Современные технологии меняются так быстро, что переобучение стало привычным делом. Что произойдет, к примеру, если изменится программное обеспечение, которое вы используете для работы, или появится новая программа, позволяющая решать задачу эффективнее? Что если вы устроились на новую работу, требующую нового инструментария? Зачастую быстрое переучивание не менее важно, чем обучение чему-то новому.
Мне интересно: что я буду чувствовать, заново обучаясь делать нечто важное?
Я составил список того, что уже умею делать, а затем выбрал из него навыки, удовлетворяющие двум условиям: 1) я ими достаточно хорошо владею, и 2) они предлагают несколько методов для достижения одного и того же результата. Мне не потребовалось много времени, чтобы найти подходящего «кандидата».
Навык? Печать вслепую.
Жизнь за клавиатурой
По словам Дэвида Аллена, автора бестселлера «Как привести дела в порядок», если ваша работа требует использования компьютера, то обучиться печати вслепую будет самым существенным шагом к повышению собственной производительности.
Критический порог составляет приблизительно 250 знаков в минуту. Если вы не в состоянии печатать вслепую со скоростью хотя бы 200 знаков в минуту при небольшом количестве ошибок, то серьезно снижаете производительность своей работы. Чем меньше усилий вы затрачиваете на набор текста, тем больше времени и энергии у вас остается на более важные задачи.
Я печатаю вслепую уже лет семнадцать, если не больше. В седьмом классе школы нам преподавали курс машинописи, и я помню, как это было скучно. Я уже умел печатать вслепую, поэтому выполнял задания за несколько минут, а остальное время тратил на то, чтобы заставить текстовый редактор отобразить всякие необычные символы, такие как знаки абзаца (¶), параграфа (§) или различные лигатуры.
Печатью вслепую я овладел в основном потому, что в свободное время много сидел за компьютером. Мое обучение было спонтанным, а не намеренным: я не занимался специально, чтобы повысить скорость или уменьшить количество ошибок. Я просто работал на компьютере и в процессе работы научился печатать вслепую.
Мою технику никак нельзя было назвать совершенной. Мои руки летали над клавиатурой, вместо того чтобы большую часть времени висеть над основным рядом клавиш в ее центре. Мой метод не был правильным, как в учебнике, но позволял справляться с задачей — и это меня устраивало.
Да, я печатаю непрофессионально, но зато функционально. По роду деятельности мне приходится много времени проводить за компьютером, а моей скорости и точности печати вполне достаточно для работы.
Тем не менее время от времени мне попадаются статьи об альтернативных раскладках клавиатуры: расположении клавиш, отличающемся от QWERTY, так называемой стандартной раскладки, которой снабжается большая часть англоязычных клавиатур, ежегодно выпускаемых в мире [2].
В этих статьях утверждается, что раскладка QWERTY очень неэффективна — а если точнее, просто ужасна. Существуют другие способы расположения букв на клавиатуре, которые позволяют печатать быстрее, с меньшим количеством ошибок и с меньшими затратами сил.
Тут очень важен кумулятивный эффект: печатание может вызвать или усугубить такие медицинские проблемы предплечий и запястий, как травмы, обусловленные постоянной нагрузкой, и кистевой туннельный синдром. Я еще не замечал у себя никаких симптомов, но у меня есть несколько друзей с подобными проблемами. Я бы хотел по возможности избежать этих болезней.
Я собираюсь еще много лет писать книги и программировать, и если распознавание речи или чтение мыслей вскоре не станут главными способами общения с компьютером, то в обозримом будущем мне придется продолжать набирать текст на клавиатуре. Возможно, мне пойдет на пользу, если я научусь печатать самым эффетивным из возможных методов, даже если придется пережить временное снижение производительности и дискомфорт.
Прощай, QWERTY: я собираюсь переучиваться печати вслепую.
Как раскладка QWERTY стала «универсальным» стандартом
Вопреки распространенному мнению, раскладку QWERTY не придумывали для того, чтобы замедлить скорость печати; это был способ устранения проблем механики пишущих машинок.
В прошлом, до появления текстовых редакторов и компьютеров, текст набирался на механических пишущих машинках, в которых литерный рычаг прижимал маленькую металлическую литеру к бумаге, туго обернутой вокруг цилиндра. Между литерой и бумагой была протянута чернильная лента. Литера ударяла по ленте, которая прижималась к бумаге, оставляя отпечаток символа. Переводной рычаг вызывал поворот цилиндра, бумага перемещалась вверх, и печать продолжалась с новой строки.
К. Л. Шоулз, которому приписывают создание раскладки QWERTY, сконструировал свой первый прототип в 1868 году. Шоулз не был первым изобретателем пишущей машинки — до него эту задачу пытались решить не меньше пятидесяти инженеров, и Шоулз внимательно изучил их работы, применив многое из придуманного ими в своей конструкции [3].
На первом прототипе Шоулза клавиши располагались в алфавитном порядке, что было не лишено смысла. В то время никто не мог вообразить, что люди будут (или даже смогут) печатать вслепую всеми десятью пальцами. Расположение клавиш в алфавитном порядке помогало неопытным пользователям, печатавшим двумя пальцами, найти нужную букву.
Но у первой модели машинки имелась одна неприятная особенность: литерные рычаги цеплялись друг за друга, если быстро нажимать соседние буквы. В английском языке чаще всего используются гласные A O E U I и согласные D H T N S. На механической клавиатуре с алфавитной раскладкой буквы S и T располагаются рядом. Если литерный рычаг одной из этих букв идет вверх, а другой вниз, то они цепляются друг за друга, и тогда приходится останавливаться и расцеплять их вручную.
Чтобы преодолеть этот хронический недостаток, Шоулз обратился за помощью к Эймосу Денсмору, учителю. Денсмор произвел приближенную оценку частоты использования букв английского алфавита. Результаты этого исследования Шоулз использовал для того, чтобы разнести буквы в часто встречавшихся сочетаниях, таких как TH, на разные стороны клавиатуры, предотвращая таким образом столкновение рычагов.
Эта стратегия полностью не устранила проблему, но до такой степени ослабила ее, что в 1872 году Шоулз получил патент на свою конструкцию [4]. В 1873 году патент приобрела компания Remington & Sons, раньше известная как производитель огнестрельного оружия.
После некоторой доработки, в том числе добавления клавиши Shift, позволявшей переключать регистры прописных и строчных букв, в 1874 году компания Remington начала массовое производство пишущих машинок с клавиатурой QWERTY, рассчитывая продавать их на деловом рынке.
Компания Remington была не единственным производителем пишущих машинок. Другие фирмы, например Hammond и Blickensderfer, предлагали конкурирующие модели, причем каждая имела свою раскладку клавиатуры.
В то время вся документация и деловая переписка велись вручную. Пишущие машинки могли существенно сократить долю ручного труда, но только при условии их должного использования. Чтобы обеспечить продажи, производители должны были избавиться от необходимости обучать пользованию необычным инструментом.
Это привело к интересным изменениям на рынке: производители пишущих машинок сами набирали и обучали машинисток и создавали агентства по найму. Если бизнесмену требовался работник, умеющий печатать на машинке, он обращался в Remington, и компания продавала ему пишущую машинку и услуги машинистки.
По мере распространения пишущих машинок раскладка клавиатуры QWERTY стала превращаться в стандарт. Это произошло постепенно, без кого-либо поворотного момента или бюрократического решения — просто медленное движение рынка к единому удовлетворительному решению.
Бизнесу требовались пишущие машинки и машинистки, и компания Remington справлялась с поставкой и тех и других. А когда предприятию требовалась новая пишущая машинка или новая машинистка, логичнее было покупать машинку QWERTY или нанимать человека, привыкшего к этой раскладке. За 60 лет QWERTY фактически превратилась в стандарт, а другие раскладки постепенно исчезли. По прошествии десятилетий QWERTY незаметно завоевала весь мир.
Появление конкурента: Dvorak
В 1932 году профессор Вашингтонского университета Август Дворак получил от Комиссии Карнеги грант в размере 130 тысяч долларов на разработку раскладки альтернативной клавиатуры. Одной из причин этого исследования стало понимание того факта, что клавиатура QWERTY была разработана для разрешения проблемы «залипания» рычагов механики, но никак не способствовала снижению усталости рук машинисток. Можно ли придумать более удобную клавиатуру? Этим вопросом и занялся Дворак.
Четыре года спустя, в 1936-м, был выдан патент на «упрощенную клавиатуру Дворака», которая, как утверждалось, превосходила все остальные раскладки. Это утверждение основывалось вот на чем: в раскладке Дворака буквы, которые используются чаще всего, располагались в основном ряду, прямо под пальцами пользователя.
Самые распространенные согласные находились в правой части основного ряда, самые распространенные гласные — в левой. Такое разделение гласных и согласных равномерно распределяло нагрузку на обе руки, теоретически снижая утомляемость и повышая скорость печати.
Дворак также утверждал, что его раскладку легче выучить, и провел исследование в организациях, которые обучали большое количество машинисток, преимущественно для нужд армии. Результаты получились неоднозначными: поскольку Дворак проводил исследования сам, многие факты, подтверждающие его гипотезу, были поставлены под сомнение — из-за явной финансовой заинтересованности исследователя.
Независимое контрольное исследование, проведенное Администрацией общих служб США, которая отвечала за обучение машинисток для правительства и армии, показало, что машинисткам, привыкшим к QWERTY, после переучивания на раскладку Dvorak требуется около ста часов, чтобы восстановить скорость печати. Срок посчитали слишком большим, и поэтому администрация рекомендовала обучать машинисток для государственных учреждений на клавиатуре QWERTY. Производители печатных машинок и бизнес последовали их примеру.
Раскладка Dvorak продолжала существовать как один из экзотических вариантов, но стандартом не стала. Несмотря на многочисленные преимущества по сравнению с QWERTY, она не смогла изменить существующее положение дел. На протяжении нескольких десятилетий раскладка Dvorak оставалась «вторым номером», значительно уступая фавориту.
Новый вызов: Colemak
Кроме QWERTY и Dvorak существуют и другие раскладки английской клавиатуры. Несмотря на то что большинство людей учатся печатать на QWERTY, изобретатели и энтузиасты не прекращают попыток создания новой клавиатуры. Большинство этих альтернативных раскладок не получили широкого распространения, но в 2006 году внимание пытливых пользователей привлекла одна новая клавиатура. Произошло это благодаря распространению интернета.
Вот как это было. Программист Шай Коулман решил попробовать свои силы в разработке клавиатуры. Цель его была простой: придумать раскладку, по эффективности сравнимую с Dvorak, но более легкую для обучения.
Одна из главных трудностей в освоении раскладки Dvorak состояла в том, что в ней менялось все: каждая буква находилась в другом месте по сравнению с QWERTY. Если вы уже умели печатать на QWERTY, то переучивание на Dvorak превращалось в настоящий кошмар.
Более того, в настоящее время главными инструментами для набора текстов стали компьютеры, и для упрощения своих действий — сохранения файла, вырезки и вставки фрагментов и так далее — мы часто прибегаем к сочетаниям «горячих клавиш». Если вы привыкли к этим сочетаниям, то раскладка Dvorak раздражает еще больше: переместились не только все буквы, но и все «горячие клавиши».
Стратегия Коулмана заключалась в следующем: он объединил компьютерный анализ большого количества документов на английском языке с идеей сохранить на своих местах как можно больше букв, чтобы не изменять «горячие клавиши». Левая сторона клавиатуры, а также нижний ряд почти не изменились. Переместились только самые важные буквы. Алгоритм Коулмана вычислил большинство необходимых изменений, и остались лишь несколько клавишей, требовавших субъективного решения.
В конечном итоге Коулман создал новую раскладку клавиатуры, которую назвал Colemak и в которой по сравнению с QWERTY изменилось расположение 17 символов. Статистика подтвердила, что она гораздо эффективнее QWERTY и немного эффективнее Dvorak. Но еще более привлекательным выглядел тот факт, что в Colemak изменялось месторасположение небольшого количества символов, и переучиться на нее, похоже, было гораздо легче.
Коулман создал свой сайт colemak.com, в котором подробно рассказывалось о новой раскладке, а также предлагались инструкции по установке и обучению. По сравнению с дорогостоящими усилиями Дворака, который проводил встречи в крупных организациях, популяризируя свою клавиатуру, интернет сделал распространение сведений о раскладке Colemak чрезвычайно дешевым.
В результате в настоящее время Colemak является третьей по популярности — после QWERTY и Dvorak — раскладкой англоязычной клавиатуры. Опция Colemak теперь по умолчанию встроена в большинство новых компьютеров и операционных систем, и у нее есть тысячи поклонников во всем мире. Не так плохо для раскладки, разработанной любителем и существующей меньше десяти лет.
Если сомневаешься, проверь
Как выбрать лучшую из нескольких альтернативных раскладок клавиатур?
Очень просто: проверить.
Современные методы программирования значительно облегчают сбор достоверных данных о раскладках клавиатур. Вместо того чтобы тестировать и собирать сведения вручную, можно использовать программы анализа раскладок. Одна из таких программ под названием carpalx [5] разработана программистом Мартином Крживинским из канадского Центра генетики в Британской Колумбии.
Carpalx разработана для «выполнения стохастической симуляции с целью выявления раскладки, минимизирующей уровень усилий для данного набора параметров модели». Другими словами, carpalx может автоматически протестировать эффективность разных раскладок, применяя их к текстам-моделям.
Крживинский использовал программу carpalx для разработки собственной раскладки, однако с ее помощью он также сравнил Colemak с QWERTY и Dvorak, получив очень большой и полный объем сравнительных данных. Вот что он выяснил [6]:
QWERTY значительно отстает — по сравнению с Colemak у нее выше затраты энергии (+193 %), большее расстояние удара (+36 %) и существенно выше цена ошибки (+16 %). Dvorak также значительно превосходит QWERTY, и разница между этой раскладкой и Colemak невелика.
Основной ряд в Colemak используется активнее (74 %), чем в Dvorak (71 %), а QWERTY по этому параметру остается далеко позади (34 %). Нижний ряд и в Colemak, и в Dvorak используется редко (9 %).
В Colemak нагрузка на руки распределяется более равномерно — перевес правой руки составляет 6 % (у Dvorak 14 % для правой руки, у QWERTY 15 % для левой).
Colemak хорошо обеспечивает смену рук. И в Colemak, и в Dvorak больше используется мизинец. В Colemak мизинец используется в 16 % времени (в Dvorak 16 %, в QWERTY 10 %). Colemak больше нагружает сильные пальцы (указательный и средний), которые задействованы 67 % времени. Это лучше, чем у Dvorak (60 %), но хуже, чем у QWERTY (69 %).
Судя по данным Крживинского, работа на клавиатуре QWERTY требует почти в два раза больше физических усилий, чем на Colemak. Кроме того, раскладка Colemak имеет небольшое преимущество перед Dvorak, что очень неожиданно, поскольку в ней изменяется положение лишь 17 клавиш по сравнению со стандартом QWERTY (в Dvorak — 24).
Основываясь на этих данных, я выбрал Colemak. Мне нравится, что я смогу сэкономить силы, не меняя привычных «горячих клавиш», которыми часто пользуюсь.
Что же дальше?
Как выглядит раскладка Colemak?
Вот расположение букв и символов на клавиатуре Colemak [7].
Изменилось положение не только наиболее часто используемых букв, но также клавиши Caps Lock, которая заменена вторым Delete. Это одна из главных инноваций Colemak. Никто (за исключением интернет-троллей) постоянно не пользуется клавишей Caps Lock, которая занимает удобное место на клавиатуре: легко доступное для мизинца левой руки, рядом с клавишей А в основном ряду.
Замена Caps Lock на Delete позволяет пользователям Colemak исправлять ошибки, не убирая правую руку с основного ряда, чтобы нажать Delete в правом верхнем углу, — это экономит много сил. Одно такое изменение приводит к уменьшению движений пальцев на 15–20 % по сравнению с QWERTY. Показатель эффективности Colemak — это количество ошибок, исправленных мизинцем.
Как переключиться на Colemak?
На компьютере изменить раскладку клавиатуры легко: просто указать, чтобы машина использовала другой файл раскладки, как при переключении на другой язык. Обычно эта настройка располагается в разделе вкладки «Systems and Preferences». Colemak включена в операционную систему Mac OS X начиная с версии 10.5, и поэтому ничего загружать не требуется [8].
Кроме того, некоторые клавиатуры (например, TypeMatrix 20309) поддерживают Colemak на уровне аппаратной части. Вместо того чтобы конфигурировать компьютер для распознавания раскладки, клавиатура преобразует нажатие клавиши на Colemak в коды QWERTY, так что на экране появляются нужные символы. В результате вы можете печатать на раскладке Colemak, вообще ничего не изменяя в настройках компьютера, разве что потратить сто долларов на красивую, эргономичную клавиатуру [10].
Изменить настройки компьютера легко, однако это не единственное препятствие. Поскольку большинство англоязычных клавиатур выпускаются с раскладкой QWERTY, переключение на Colemak означает, что выгравированные на клавишах буквы не будут соответствовать тому, что появляется на экране. Если вам нужно ввести бессмысленный набор знаков, например сложный пароль, это может вызвать затруднения. Где же взять клавиатуру с раскладкой Colemak?
Есть два варианта действий: купить клавиатуру с пустыми клавишами или превратить клавиатуру QWERTY в Colemak.
Некоторые клавиатуры, в частности TypeMatrix 2030, доступны в варианте Colemak — и это наилучший вариант, если вам нужна новая клавиатура. Но мне он не подходит: я работаю на ноутбуке со встроенной клавиатурой.
Модификация компьютера
К счастью, в компьютерах Apple клавиши легко снять, а затем поставить в нужном порядке, не повреждая компьютер. Поскольку в Apple используются плоские клавиши одинакового размера, изменение раскладки на Colemak занимает не больше пяти минут [11].
При помощи маленькой плоской отвертки я аккуратно приподнимал верхнюю правую часть каждой клавиши, вставлял конец отвертки и двигал вниз вдоль правого края клавиши. Когда отвертка доходила до середины, клавиша выскакивала из специального держателя, который заставляет ее возвращаться на место после нажатия.
Освоив эту операцию, я без труда снял те клавиши, которые нуждались в перестановке, а затем, руководствуясь диаграммой новой раскладки, установил их на соответствующие позиции. Для этого требовалось лишь слегка нажать на них, и они со щелчком вставали на место.
Процедура очень простая, но она, по всей видимости, аннулирует гарантию на мой ноутбук. Поэтому из соображений безопасности я сначала потренировался на запасной беспроводной клавиатуре Apple, а затем, освоив процесс, сменил клавиши на моем MacBook Air.
Теперь у меня ноутбук с клавиатурой Colemak. Круто, правда?
Это пример организации окружения таким образом, чтобы облегчить начало занятий. Теперь, когда у меня клавиатура Colemak, переключиться на нее будет легче. Если я забуду, где находится та или иная клавиша, то всегда могу подсмотреть.
С какой скоростью я печатаю?
Клавиатура готова, и приближается пора больших перемен. Но перед началом занятий мне хотелось бы получить представление о скорости, с которой я набираю текст. Это поможет определить целевой уровень мастерства.
В данном случае сформулировать целевой уровень мастерства довольно просто: я хочу на раскладке Colemak как можно быстрее достигнуть той же скорости, что и на QWERTY. Превышать ее я не собираюсь, поскольку скорость набора текста не является определяющей в моей работе. Мне достаточно печатать с той же скоростью, но прилагая меньше усилий.
Единственная информация, которая мне для этого нужна, — скорость печати, и поэтому я нахожу онлайновый тест на проверку скорости [12].
Этот тест прост: когда вы щелкаете по кнопке Start, программа выводит на экран сто случайных слов из старинной книги [13]. Ваша задача — напечатать образец как можно быстрее, стараясь как можно меньше ошибаться. Закончив, вы щелкаете по кнопке Stop, и программа сообщает вам скорость печати и количество допущенных ошибок.
Я намеревался сначала пройти тест на раскладке QWERTY, а затем перейти на Colemak и повторить — просто для того, чтобы определить начальный уровень.
Закончив тест, я щелкнул по кнопке Stop, и программа сообщила результат: 250 знаков в минуту и ни одной ошибки. Неплохо: я печатаю на том уровне, который рекомендует Дэвид Аллен. До рекорда скорости мне далеко, но этого вполне достаточно, чтобы справляться со своей работой.
Теперь у меня есть все, что нужно: мне известна моя скорость печати, у меня клавиатура Colemak, и я знаю, как переключить раскладку клавиатуры на компьютере. Подготовительный этап завершен.
Ну вот. Готов ли я отказаться от QWERTY?
Щелкаем переключателем
Теперь или никогда. Я переключаю свой компьютер на раскладку Colemak и закрываю окно настроек. С этого момента я не смогу ничего печатать на QWERTY, пока не закончу эксперимент.
В моем браузере по-прежнему загружен тест скорости печати. Щелчком мыши я запускаю таймер и начинаю набирать текст.
Вот что у меня выходит: #%&@.
Возможно, это звучит несколько театрально, но я чувствую себя так, словно у меня удалили часть мозга.
Я привык, что слова безо всяких усилий переносятся из моей головы в компьютер. Теперь же я не знаю, где расположены все клавиши. Мне приходится искать их, даже те, которые не изменились относительно раскладки QWERTY.
Я вижу слова на экране, мои пальцы автоматически нажимают на клавиши, а в результате на экране появляется абракадабра, которую я вынужден стирать. На простое слово требуется несколько секунд, и я начинаю волноваться, что клавиша Delete выйдет из строя от частого употребления.
Каждое слово — это новая битва. Я смотрю на часы: два простых предложения съели несколько минут. Я не сделал еще и половины. Меня так и подмывает все бросить, но я заставляю себя продолжать. Минуты идут, и раз десять я с трудом удерживаюсь, чтобы не прервать тест.
Мне потребовалось почти 20 минут, чтобы набрать 100 слов. Вот моя новая скорость: 5 слов в минуту.
Для меня это «смерти подобно».
Я зарабатываю тем, что пишу, и совсем недавно научился программировать. Теперь я лишен возможности заниматься и тем и другим. Как я буду отвечать на письма? Как буду работать? Что я натворил?
Я увидел врага, и этот враг — я сам
Вот он, самый главный барьер, мешающий большинству людей перейти на новую раскладку клавиатуры. Технические аспекты перехода — ничто по сравнению с эмоциональными.
Когда вы достигли определенного уровня скорости или легкости выполнения какой-либо задачи, снижение производительности повергает вас в ужас. Особенно это справедливо для машинописи: вы привыкли печатать без всяких усилий, и необходимость напрягаться вызывает возмущение. Еще больше усиливает недовольство понимание того факта, что если вы вернетесь к привычному образу действий, то ситуация мгновенно выправится.
Разум здесь не поможет: у нашего мозга есть неустранимая тенденция считать, что текущее положение дел сохранится и в будущем. В данный момент мой мозг в полной растерянности. Я способен печатать со скоростью лишь пять слов в минуту, и я больше никогда не смогу работать! Моя карьера рухнет! Моя семья будет голодать!
Разумеется, это неправда, но именно так мне в данный момент кажется. Подобные эмоции — главное препятствие для обучения.
Я закрываю ноутбук, беру блокнот и ручку. Мне нужен — причем немедленно! — план, как добиться приемлемой скорости на раскладке Colemak.
Перестраиваем мозг
Первая и самая главная проблема состоит в том, что я не знаю, где располагаются новые клавиши. Разумеется, я распечатал рисунок, и буквы на моей клавиатуре расположены в формате Colemak, но мозг пока не может связать желание напечатать определенную букву с движением пальца.
Поэтому в первую очередь я должен помочь мозгу преобразовать новую раскладку в моторику. Я должен как можно быстрее восстановить способность работать.
К счастью, люди обучаются печати слепым методом уже не одно десятилетие и придумали эффективные средства, которые способны мне помочь. Такие учебные пособия по машинописи, как Mavis Beacon [14] и Typing Trainer [15], выпускаются уже давно и стоят совсем недорого.
К сожалению, эти программы учат слепому методу печати в формате QWERTY, поскольку большинство клиентов хотят иметь дело именно со стандартной раскладкой. Обучение, как правило, начинается с клавиш основного ряда. Однако основные ряды в QWERTY и Colemak отличаются, и поэтому пособия по QWERTY мне ничем не помогут.
Раскладка Dvorak существует довольно давно, и некоторые программы поддерживают ее, а вот формат Colemak относительно новый. Наверное, было бы неплохо использовать обучающую программу, но мне нужно найти ту, которая поддерживает Colemak.
К счастью, у меня есть зацепка. Просматривая сайт Hacker News во время обучения программированию, я наткнулся на пост о Keyzen [16], программе с открытым кодом, которая как раз обучала машинописи; разработал ее Рай Террелл. Это приложение предназначалось для обучения программистов. Программа запускалась в обычном браузере и включала необычные символы — круглые и квадратные скобки, косую черту, — которые часто используют программисты; большинство обучающих программ эти символы, как правило, пропускают. Террелл опубликовал полный текст программы на GitHub и предложил программистам использовать или модифицировать ее.
Сама программа крайне проста: на экране отображается семь символов, начиная с букв основного ряда. Ваша задача — напечатать символы в указанном порядке.
Во время работы программа издает звуки. Если вы нажали правильную клавишу, то слышите щелчок, как при ударе пишущей машинки; при ошибке раздается резкий звук, и символ становится красным.
Как только вы заканчиваете печать, программа предлагает следующий набор символов. Если вы делаете ошибку в каком-то символе, программа автоматически включает его в следующие наборы. Если вы не сделали ошибок три раза подряд, то раздается мелодичный звон, означающий, что вы перешли на следующий уровень. Программа добавляет новый символ, и тренировка продолжается.
Модификация Keyzen
Как и большинство программ обучения машинописи, по умолчанию Keyzen поддерживает раскладку QWERTY. Но поскольку у программы открытый код, мне, возможно, удастся модифицировать ее под раскладку Colemak.
Вот мне и пригодилось обучение программированию.
Я скопировал исходный код Keyzen, затем открыл программные файлы на своем компьютере. Сама программа оказалась простой, и я без труда нашел ту часть, которая управляет выводом символов на экран; организовать нужный мне вывод тоже оказалось несложно.
Оригинальная программа начинала с основного ряда раскладки QWERTY, с указательных пальцев, затем добавляла по одному символу, пока не заканчивался основной ряд. За ним шел верхний ряд, расходясь с середины к краям, затем нижний, в том же порядке.
Взяв эту схему обучения за образец, я отредактировал программу для формата Colemak. Сами клавиши остались теми же, но обучение теперь шло в раскладке Colemak, а не QWERTY.
Закрыв файлы, я получил собственную программу обучения машинописи в раскладке Colemak. Ура!
Если вам интересно, можете попробовать ее сами — она выложена на интернет-странице http://first20hours.com/keyzen-colemak.
Мелкая моторика
Итак, у меня есть обучающая программа, а моя первая цель проста — выучить расположение символов на клавиатуре.
Я запускаю Keyzen и начинаю печатать («_» означает пробел):
nn_nn_n
n_nn_n_
tntt_tn
t_tntt_
tttttnt
Подобные упражнения не очень эффектны, но необходимы. Тренируясь находить отдельные буквы, появляющиеся в случайном порядке, я помогаю мозгу преобразовать символ в мелкую моторику пальцев.
Кроме того, Keyzen помогает эффективному обучению несколькими способами. Во-первых, расклада Colemak разработана так, что наиболее часто используемые буквы располагаются в основном ряду, под самыми сильными пальцами. Программа выводит эти буквы первыми, и поэтому я сначала осваиваю ARSTDHNEIO, а затем перехожу к QWZXYM.
Когда я ошибаюсь, Keyzen добавляет неправильно набранный символ в следующую последовательность. В результате бо2льшую часть времени я тренируюсь набирать буквы, в которых делаю ошибки. Это одна из разновидностей интервального повторения, которое сочетается с мгновенной обратной связью, что делает занятия чрезвычайно эффективными.
Я составил график занятий: не меньше двух сеансов по 20 минут с коротким перерывом между ними, в конце дня перед сном.
С ума сойти! Приобретение нового моторного навыка требует физических изменений в структурах мозга, и, как выяснилось, сон способствует этому процессу.
Учитесь во сне!
В последние четыре десятилетия приобретение моторных навыков было предметом активных исследований психологов. В любой научной библиотеке вы найдете не один стеллаж с работами о приобретении навыков в целом и моторных навыков в частности.
Именно так я и поступил. Я бродил между стеллажами книг по когнитивной психологии в библиотеке Университета штата Колорадо в поисках полезной информации. Найти книги и отчеты об исследованиях не составляло труда. К сожалению, большая часть этих отчетов очень нудная, изобилующая профессиональным жаргоном.
Тем не менее обнаружились и исключения. Мое внимание привлекла одна работа.
«Стадии формирования моторного навыка» (Stages of Motor Skill Learning) (2005) [17]
Успешное обучение моторному навыку требует повторных тренировок…
Эта статья посвящена растущему числу свидетельств того, что формирование моторных навыков проходит несколько стадий, на каждой из которых задействуются разные механизмы хранения информации. Фаза выработки навыка характеризуется быстрым (во время сеанса) и медленным (между сеансами) обучением. В короткий период непосредственно после первых сеансов обучения навык подвержен интерференции со стороны других навыков и вследствие замедления синтеза белка, и это указывает на то, что процесс консолидации имеет место в периоды отдыха между тренировками. Во время занятий, а также в периоды отдыха изменяется активность разных отделов мозга.
Ключевые термины здесь — «интерференция» и «консолидация». Когда вы тренируете какой-то навык, ваш мозг необыкновенно активен — он стремится найти общие схемы и сохранить их в памяти. В случае моторных навыков эти схемы связывают то, что вы видите, слышите, чувствуете на ощупь или на вкус, с возбуждением нейронов, которые управляют мышцами вашего тела. Чем прочнее нервные связи, тем лучше у вас получается.
Во время занятий мозг занят формированием этих связей и ассоциаций, но это не значит, что они мгновенно сохраняются в структуре нейронов. Для их формирования требуется определенное время, и этот процесс называется консолидацией памяти. Консолидация происходит непрерывно, но с наибольшей эффективностью во время сна.
Вот одна из первых обнаруженных мной работ, которая описывает прямую связь между сном и приобретением навыка.
«Практика и сон — залог успеха: Влияние обучения во сне и пластичности на совершенствование навыка» (It’s Practice, with Sleep, That Makes Perfect: Implications of Sleep-Dependent Learning and Plasticity for Skill Performance) (2005) [18]
Тренировку часто считают единственным определяющим фактором совершенствования навыка. Несмотря на то что постоянное повторение новой операции часто благотворно влияет на обучение, благодаря чему появился известный афоризм «Дело мастера боится», многочисленные исследования, проведенные за последнее десятилетие, постепенно меняют эту точку зрения. Их результаты дают основание предположить, что после первоначального сеанса обучения мозг человека продолжает обучаться и в отсутствие дальнейшей практики. Это «отложенное совершенствование» происходит во время сна.
Вот какой вывод делается в этой работе:
Несмотря на то что работа спящего мозга остается для нас загадкой, быстро растущее число исследователей поддерживает теорию о важной роли сна в укреплении памяти. Они приводят множество данных, указывающих на то, что связанные со сном механизмы нейронной пластичности ведут к консолидации навыка и, следовательно, к его отложенному совершенствованию. Разные формы памяти простых и сложных навыков, по всей видимости, требуют разных типов сна для укрепления памяти. Некоторые исследования указывают на важную роль сна в течение первых 24 часов после начальной тренировки.
Похоже, эффективное приобретение навыка, особенно моторного, требует сна, который играет важную роль в консолидации навыка в долговременную память. Новейшие исследования позволяют предположить, что для максимального эффекта лучше ложиться спать в течение четырех часов после тренировки моторного навыка: даже короткий сон лучше, чем ничего. Если пройдет больше четырех часов, то способность мозга консолидировать информацию, собранную во время практики, ослабевает.
Вот почему я занимался машинописью непосредственно перед сном. Если я лягу спать примерно через час после занятий, то помогу мозгу эффективнее консолидировать моторные навыки.
Странно, но я вижу, что это работает. Мое первое занятие было ужасным: я все делал неправильно, постоянно ошибался и с трудом преодолел буквы основного ряда. После полноценного ночного сна я сел за компьютер и вдруг обнаружил, что делаю меньше ошибок. Сон консолидировал то, чему я научился накануне вечером.
Наш мозг действительно крут.
Когнитивная интерференция
Интерференция противоположна консолидации; это разрушение процесса консолидации. Если вы тренируете другой, схожий навык (или просто пользуетесь им) вскоре после занятий новым, это может ослаблять способность мозга консолидировать полученную информацию.
Критический период интерференции, по всей видимости, тоже составляет около четырех часов. Если подождать, пока не завершится процесс консолидации, а потом практиковать конфликтующий навык, то он не будет в такой степени мешать укреплению нового.
Вот почему я не сажусь за клавиатуру QWERTY сразу же после занятий с раскладкой Colemak. Это ослабит способность мозга консолидировать мои занятия с Colemak, снизит скорость приобретения навыка.
Интересно также отметить, что после семи часов занятий с раскладкой Colemak я вдруг обнаружил, что мне трудно перейти на формат QWERTY, хотя я уже очень давно печатаю на стандартной клавиатуре слепым методом. Мой мозг переключает моторику на Colemak и, похоже, затрудняет восприятие QWERTY — по крайней мере, на время.
После того как мой мозг привыкнет к раскладке Colemak, я при желании смогу вернуться к QWERTY: судя по тому, что я читал у других пользователей Colemak, можно стать «клавиатурным билингвом» и при необходимости переходить с одной раскладки на другую. Однако теперь я сосредоточиваюсь в основном на Colemak, чтобы минимизировать интерференцию. Восстановление навыка работы с QWERTY подождет.
Избавиться от привычки подглядывать
Теперь у меня за плечами семь часов намеренной практики, в среднем по 45 минут за вечер. Я без особого труда печатал все последовательности программы Keyzen. Ошибки по-прежнему случаются, но уже гораздо реже.
В течение дня у меня есть небольшая вынужденная практика — ответы на не терпящие отлагательства электронные письма. Когда я сажусь за клавиатуру, то выясняется, что все не так страшно. Печатаю я медленно, но способен выразить свою мысль. Уже прогресс!
Тем не менее я замечаю, что часто смотрю на клавиатуру. Правильные обозначения клавиш очень удобны при вводе бессмысленного набора знаков, например паролей, однако в случае сомнений возникает искушение опустить взгляд. Если я хочу научиться печатать вслепую, то должен как можно быстрее избавиться от вредной привычки. Но сделать это трудно — взгляд опускается сам собой.
Das Keyboard
Чтобы избавиться от привычки подглядывать, я решил приобрести новое средство обучения: клавиатуру без обозначений символов на клавишах.
Das Keyboard — самая крутая клавиатура, которую я когда-либо смогу найти. В модели Ultimate Model S [19] клавиши вообще пустые. Не умея печатать вслепую, вы не сможете пользоваться Das Keyboard… и точка. Забавно наблюдать за реакцией людей, которые впервые видят эту клавиатуру, — теряются даже опытные пользователи.
Я подключил Das Keyboard и закрыл клавиатуру ноутбука листом бумаги, чтобы вообще не видеть обозначения клавиш. Ощущение примерно такое же, как при первой попытке печатать в раскладке Colemak: растерянность и раздражение. Но только на секунду. Включились моторные навыки, приобретенные за первые семь часов занятий, и выяснилось, что я могу печатать вполне сносно. Забывая букву, я охотился за ней в течение нескольких секунд методом проб и ошибок, но все же мог работать.