Перейти к основному содержимому
01ФУНДАМЕНТ · ГЛАВА 01Печать и клавиатура

Печать и клавиатура

Прочитано 0%Квизы 0/6Тренажёры 0/8Уровень 1 · Новичок

Зачем это нужно

Сразу успокоим: печать — самый механический навык из всей платформы. Здесь нечего «не понять» — только потренировать пальцы, а это получается у всех без исключения, вопрос лишь в количестве повторений. И тренироваться в этой главе можно с любого уровня, хоть с набора двумя пальцами.

А вот зачем это вообще нужно. На чемпионате «Профессионалы» время модуля ограничено: за несколько часов нужно прочитать задание, придумать решение и набрать его в редакторе. Придумать — половина дела. Если ты печатаешь двумя пальцами и после каждого символа ищешь глазами следующую клавишу, то теряешь не секунды, а десятки минут за модуль — их потом трудно наверстать даже отличной идеей. К тому же код не прощает опечаток: пропущенная скобка, лишняя точка с запятой или заглавная буква там, где её не ждали, — и программа не запускается или ведёт себя не так, как задумано. Это не повод переживать — это ровно то, что чинится тренировкой, а не «врождённой грамотностью», и с этого мы и начнём.

Хорошая новость: печать — единственный чемпионатный навык, который можно прокачать ещё до того, как ты выучишь хоть одну строчку кода. Он измеряется числами, растёт от простых ежедневных тренировок и остаётся с тобой навсегда. В этой главе разберём его на уровне отдельных пальцев и отдельных клавиш: где физически лежит каждый символ кода, какой рукой и с каким модификатором его набирать, и что покажет терминал, если ошибиться. Ничего не считаем очевидным — если клавиша есть на клавиатуре, у неё есть точное место и назначение.

Раскладка и ряды клавиатуры

Раскладка (layout) — это то, какой символ отправляет клавиша: одна и та же физическая клавиша при английской раскладке шлёт «l», а при русской — «д». Переключают раскладку сочетанием клавиш: на Ubuntu обычно Alt+Shift или Super+Пробел (Super — клавиша с логотипом между Ctrl и Alt), на Windows чаще Alt+Shift или Win+Пробел, на macOS — Ctrl+Пробел (именно Ctrl: Cmd+Пробел там открывает поиск Spotlight, а не меняет язык) или отдельная клавиша смены языка 🌐 на новых Mac. Код всегда пишут в латинской раскладке — про это отдельный раздел ниже, а пока запомни главное: прежде чем печатать, всегда стоит боковым зрением проверить индикатор раскладки в углу экрана.

Совет

Выработай привычку: боковым зрением поглядывай на индикатор раскладки в углу экрана перед тем, как начать печатать код — привычка на две секунды экономит минуты на исправление команды, набранной не в той раскладке.

Интересный факт

QWERTY придумал в 1873 году Кристофер Шоулз — не для скорости, а чтобы соседние рычаги литер механической печатной машинки не заклинивали друг о друга при быстрой печати. Механических рычагов давно нет полтора века, а раскладка осталась той же.

Как это было
У QWERTY был серьёзный конкурент. В 1936 году Август Дворак, профессор Вашингтонского университета, запатентовал раскладку, в которой самые частые буквы лежат прямо на домашнем ряду: пальцы проходят в разы меньший путь. Но переучивать миллионы машинисток и менять парк печатных машинок оказалось дороже, чем смириться, — мир остался на QWERTY. Раскладка Дворака жива до сих пор: она встроена во все современные ОС, и у неё есть преданное сообщество.

Стандартная клавиатура состоит из четырёх рядов с буквами и цифрами, плюс ряд с модификаторами и пробелом:

  • Ряд цифр — верхний ряд с 10 и знаками - и =. На нём же живут спецсимволы кода при нажатом Shift — подробно разберём чуть ниже.
  • Верхний буквенный рядQWERTYUIOP (в русской раскладке — ЙЦУКЕНГШЩЗ). На нём же справа живут скобки [ и ].
  • Домашний ряд (home row) — средний буквенный ряд, ASDFGHJKL; (ФЫВАПРОЛДЖ). Это база всей слепой печати — подробнее в следующем разделе.
  • Нижний буквенный рядZXCVBNM,./ (ЯЧСМИТЬБЮ).
  • Ряд модификаторовShift, Ctrl, Alt, Super/Cmd, Tab, Caps Lock, Enter и широкий Пробел внизу. Сами по себе они ничего не печатают, но меняют, что напечатает соседняя клавиша — это и есть модификатор (modifier key): клавиша, которая работает только в паре с другой.
КЛАВИАТУРА · ПЯТЬ РЯДОВ1 2 3 4 5 6 7 8 9 0 - =ряд цифрQ W E R T Y U I O P [ ]верхний буквенныйA S D F G H J K L ;домашний рядZ X C V B N M , . /нижний буквенныйShift Ctrl Alt Super Tab Enterмодификаторы
Пять рядов клавиатуры: цифровой, два буквенных, домашний (база слепой печати) и ряд модификаторов.

Полезные сочетания клавиш

Модификаторы из ряда выше на практике чаще всего встречаются в связке с одной буквой — как сочетание клавиш (keyboard shortcut) для стандартной команды вроде «скопировать» или «сохранить». Эти сочетания одинаковы почти в любой программе, но модификатор различается по операционной системе: на macOS почти всё завязано на Cmd (⌘), а на Windows и Ubuntu — на Ctrl. Переключай вкладку под свою систему — платформа запомнит выбор для всех глав:

СочетаниеДействие
Ctrl+CСкопировать выделенное
Ctrl+VВставить из буфера обмена
Ctrl+XВырезать выделенное
Ctrl+ZОтменить последнее действие
Ctrl+YПовторить отменённое действие
Ctrl+SСохранить файл
Ctrl+AВыделить всё
Ctrl+FНайти на странице или в файле
Alt+TabПереключиться между открытыми окнами или приложениями
Win+PrtScnСкриншот всего экрана (сохраняется файлом)

Две последние строки — не опечатка, а реальная разница между системами. Переключение окон на macOS всегда держится на Cmd, а на Windows и Ubuntu — на Alt, хотя копирование-вставка там же держится на Ctrl. Со скриншотом разница ещё глубже: на macOS это всегда Cmd+Shift+цифра, на Windows — отдельная клавиша PrtScn в сочетании с Win (без неё картинка просто копируется в буфер, но не сохраняется файлом), а на Ubuntu 22.04 и новее (окружение GNOME) голый PrtScn открывает панель выбора — область, окно или весь экран, — и сразу сохранить снимок всего экрана файлом даёт Shift+PrtScn (в GNOME до 42-й версии, например в Ubuntu 20.04, файл сохранял и одиночный PrtScn — отсюда путаница в старых инструкциях). На других окружениях рабочего стола Linux (KDE, Xfce) сочетание может отличаться — при сомнении ищи в системных настройках по слову «Screenshot».

Важно

Есть одно важное исключение из таблицы выше: в терминале Ctrl+C не копирует. Там это же сочетание прерывает выполняющуюся команду — совсем другая команда клавиатуры на уровне операционной системы. Подробный разбор с таблицей по трём системам — в главе про терминал. Уже сейчас, если нужно скопировать текст ИЗ терминала: на Ubuntu (GNOME Terminal) для этого отдельное сочетание — Ctrl+Shift+C.

Не заучивай список — попробуй нажать каждое сочетание по-настоящему прямо сейчас:

Выполнено: 0 из 10

Нажми сочетание: Скопировать выделенное

Кликни сюда, затем нажми сочетание клавиш
Отвечено вопросов: 0 из 4
Какое сочетание вставляет из буфера обмена и на Windows, и на Ubuntu?
Каким модификатором почти всегда пользуется macOS вместо Ctrl других систем?
Чем переключение между окнами на macOS отличается от Windows и Ubuntu?
Как в Ubuntu 22.04+ (GNOME) сразу сохранить скриншот всего экрана файлом?
Отвечено верно: 0 из 4

Выделение текста мышью

Прежде чем сочетание вроде Ctrl+C вообще что-то скопирует, нужно выделить (select) текст — отметить кусок, с которым будет работать команда. За выделение отвечает Selection API браузера (window.getSelection()) — обычный веб-стандарт, которому больше десяти лет, работает в любом браузере. У выделения мышью есть несколько разных жестов, и они экономят время не хуже горячих клавиш:

  • Двойной клик по слову — выделяет слово целиком, без соседних пробелов и знаков препинания.
  • Тройной клик (три клика подряд без паузы) — выделяет весь абзац или строку целиком.
  • Клик, затем Shift+клик в другом месте — продлевает уже начатое выделение до точки второго клика.
  • Протяжка (зажать левую кнопку мыши и вести курсор, не отпуская) — выделяет произвольный кусок текста, без всякой привязки к границам слов; так можно выделить то, что не выделит ни двойной, ни тройной клик.
Интересный факт

window.getSelection() — часть Selection API, который браузеры поддерживают одинаково с 2015 года (статус Baseline на MDN). Именно этот API читает текст, который ты выделил мышью, — на нём построена, например, кнопка «поделиться цитатой» на новостных сайтах.

Потренируй все четыре жеста прямо здесь — движок сам проверит, что ты выделил, независимо от того, каким способом ты это сделал:

Выполнено: 0 из 4

Дважды кликни по слову «домашнего» — двойной клик выделяет слово целиком.

Слепая печать начинается с домашнего ряда клавиатуры.

Домашний ряд и позиция пальцев

Слепая печать (touch typing) — это набор текста без взгляда на клавиатуру: пальцы находят клавиши по мышечной памяти (muscle memory — навык, закреплённый многократным повторением настолько, что тело выполняет его без сознательного контроля), а глаза остаются на экране, где ты сразу видишь и текст, и свои опечатки.

Рука на клавиатуре с подсветкой в полумраке
Слепая печать: глаза на экране, пальцы находят клавиши сами — по мышечной памяти.Фото: Pexels, pexels.com/photo/735911 — свободная лицензия Pexels, атрибуция не требуется

Основа метода — домашний ряд (home row): после каждого нажатия каждый палец возвращается на одну и ту же клавишу. Левая рука стоит на ФЫВА (ASDF), правая — на ОЛДЖ (JKL;), а на клавишах F и J — то есть на А и О в русской раскладке — есть маленькие выступы: по ним указательные пальцы находят позицию на ощупь, не глядя на клавиатуру вообще.

Найди их на схеме ниже — это ровно те же две клавиши, о которых только что шла речь:

клавиша ``клавиша 11клавиша 22клавиша 33клавиша 44клавиша 55клавиша 66клавиша 77клавиша 88клавиша 99клавиша 00клавиша --клавиша ==клавиша ⌫клавиша TabTabклавиша QQклавиша WWклавиша EEклавиша RRклавиша TTклавиша YYклавиша UUклавиша IIклавиша OOклавиша PPклавиша [[клавиша ]]клавиша \\клавиша Caps LockCaps Lockклавиша AAклавиша SSклавиша DDклавиша FFклавиша GGклавиша HHклавиша JJклавиша KKклавиша LLклавиша ;;клавиша ''клавиша EnterEnterклавиша ShiftShiftклавиша ZZклавиша XXклавиша CCклавиша VVклавиша BBклавиша NNклавиша MMклавиша ,,клавиша ..клавиша //клавиша ShiftShiftклавиша CtrlCtrlклавиша WinWinклавиша AltAltклавиша ПробелПробелклавиша AltAltклавиша WinWinклавиша MenuMenuклавиша CtrlCtrl

У каждого пальца — своя зона: он отвечает за клавиши строго над и под своей домашней позицией, а указательные пальцы дополнительно прикрывают ещё одну соседнюю колонку в сторону центра клавиатуры.

клавиша ` — палец: мизинец левой руки`клавиша 1 — палец: мизинец левой руки1клавиша 2 — палец: безымянный левой руки2клавиша 3 — палец: средний левой руки3клавиша 4 — палец: указательный левой руки4клавиша 5 — палец: указательный левой руки5клавиша 6 — палец: указательный правой руки6клавиша 7 — палец: указательный правой руки7клавиша 8 — палец: средний правой руки8клавиша 9 — палец: безымянный правой руки9клавиша 0 — палец: мизинец правой руки0клавиша - — палец: мизинец правой руки-клавиша = — палец: мизинец правой руки=клавиша ⌫ — палец: мизинец правой рукиклавиша Tab — палец: мизинец левой рукиTabклавиша Q — палец: мизинец левой рукиQклавиша W — палец: безымянный левой рукиWклавиша E — палец: средний левой рукиEклавиша R — палец: указательный левой рукиRклавиша T — палец: указательный левой рукиTклавиша Y — палец: указательный правой рукиYклавиша U — палец: указательный правой рукиUклавиша I — палец: средний правой рукиIклавиша O — палец: безымянный правой рукиOклавиша P — палец: мизинец правой рукиPклавиша [ — палец: мизинец правой руки[клавиша ] — палец: мизинец правой руки]клавиша \ — палец: мизинец правой руки\клавиша Caps Lock — палец: мизинец левой рукиCaps Lockклавиша A — палец: мизинец левой рукиAклавиша S — палец: безымянный левой рукиSклавиша D — палец: средний левой рукиDклавиша F — палец: указательный левой рукиFклавиша G — палец: указательный левой рукиGклавиша H — палец: указательный правой рукиHклавиша J — палец: указательный правой рукиJклавиша K — палец: средний правой рукиKклавиша L — палец: безымянный правой рукиLклавиша ; — палец: мизинец правой руки;клавиша ' — палец: мизинец правой руки'клавиша Enter — палец: мизинец правой рукиEnterклавиша Shift — палец: мизинец левой рукиShiftклавиша Z — палец: мизинец левой рукиZклавиша X — палец: безымянный левой рукиXклавиша C — палец: средний левой рукиCклавиша V — палец: указательный левой рукиVклавиша B — палец: указательный левой рукиBклавиша N — палец: указательный правой рукиNклавиша M — палец: указательный правой рукиMклавиша , — палец: средний правой руки,клавиша . — палец: безымянный правой руки.клавиша / — палец: мизинец правой руки/клавиша Shift — палец: мизинец правой рукиShiftклавиша Ctrl — палец: мизинец левой рукиCtrlклавиша Win — палец: большой палецWinклавиша Alt — палец: большой палецAltклавиша Пробел — палец: большой палецПробелклавиша Alt — палец: большой палецAltклавиша Win — палец: большой палецWinклавиша Menu — палец: большой палецMenuклавиша Ctrl — палец: мизинец правой рукиCtrl
  • мизинец левой руки
  • безымянный левой руки
  • средний левой руки
  • указательный левой руки
  • указательный правой руки
  • средний правой руки
  • безымянный правой руки
  • мизинец правой руки
Текстовая версия: таблица «палец → клавиши»
ПалецДомашняя клавиша (EN / RU)Дополнительно тянется к
Левый мизинецA / ФQ Z 1 ` Tab Shift Caps Lock
Левый безымянныйS / ЫW X 2
Левый среднийD / ВE C 3
Левый указательныйF / А (с выступом)R V 4, а также T G B 5
Правый указательныйJ / О (с выступом)U M 7, а также Y H N 6
Правый среднийK / ЛI , 8
Правый безымянныйL / ДO . 9
Правый мизинец; / ЖP / 0 - = [ ] \ Enter Shift
Оба большихПробел

Заметь: правый мизинец домашней клавишей держит ; (точку с запятой) — ту самую, которая в коде почти на каждой строке. Не глядя на клавиатуру, её проще всего найти именно от этой позиции, а не искать заново каждый раз.

Прогресс измеряют двумя числами. Точность (accuracy) — процент символов, набранных без ошибки. Скорость — в словах в минуту (words per minute, WPM); за «слово» по международному стандарту принято считать 5 символов, включая пробелы и знаки препинания, — так скорость можно сравнивать независимо от языка и длины реальных слов. Порядок важен именно такой: сначала точность, потом скорость. Если гнать вперёд с точностью 85%, ты тренируешь не печать, а исправление опечаток. Держи точность выше 95% — и скорость подтянется сама. Для старта нормально печатать 20–30 WPM; для комфортной работы с кодом хватает 40–50.

Тренироваться удобнее на специальных тренажёрах — вот четыре проверенных, у каждого своя сильная сторона:

Отвечено вопросов: 0 из 4
Что такое домашний ряд (home row)?
По каким клавишам указательные пальцы находят позицию на ощупь, не глядя на клавиатуру?
Что важнее наращивать в первую очередь?
Какой клавишей по умолчанию домашней стоит правый мизинец?
Отвечено верно: 0 из 4

Потренируйся печатать: латиница

Разомнись на классической фразе — в ней встречаются почти все буквы английского алфавита, поэтому ей разминают пальцы перед любой тренировкой. Сначала точность, скорость придёт сама — не гони темп в первом заходе:

Цель: скорость ≥ 55 зн/мин, точность ≥ 90%

the quick brown fox jumps over the lazy dog

Пройди фрагмент — появится призрак твоего рекорда, и начнётся гонка с собой 👻

клавиша ``клавиша 11клавиша 22клавиша 33клавиша 44клавиша 55клавиша 66клавиша 77клавиша 88клавиша 99клавиша 00клавиша --клавиша ==клавиша ⌫клавиша TabTabклавиша QQклавиша WWклавиша EEклавиша RRклавиша TTклавиша YYклавиша UUклавиша IIклавиша OOклавиша PPклавиша [[клавиша ]]клавиша \\клавиша Caps LockCaps Lockклавиша AAклавиша SSклавиша DDклавиша FFклавиша GGклавиша HHклавиша JJклавиша KKклавиша LLклавиша ;;клавиша ''клавиша EnterEnterклавиша ShiftShiftклавиша ZZклавиша XXклавиша CCклавиша VVклавиша BBклавиша NNклавиша MMклавиша ,,клавиша ..клавиша //клавиша ShiftShiftклавиша CtrlCtrlклавиша WinWinклавиша AltAltклавиша ПробелПробелклавиша AltAltклавиша WinWinклавиша MenuMenuклавиша CtrlCtrl
следующая: T — указательный левой руки

Пройди разминку хотя бы дважды: со второго захода рядом с твоим прогрессом побежит призрак твоего же лучшего результата. Побей свой призрак — это самый честный соперник: он печатает ровно так быстро, как ты в свой лучший раз.

Спецсимволы кода: что где и как зажимать

Буквы ты найдёшь быстро — они одинаковы что в тексте, что в коде. А вот спецсимволы — главная засада новичка: половина из них прячется за Shift, и именно из них состоит скелет любой программы: скобки, кавычки, двоеточия, точки с запятой. Разберём каждый по отдельности: где физическая клавиша и нужен ли Shift. Вот где живут все верхние символы разом:

клавиша `~`клавиша 1!1клавиша 2@2клавиша 3#3клавиша 4$4клавиша 5%5клавиша 6^6клавиша 7&7клавиша 8*8клавиша 9(9клавиша 0)0клавиша -_-клавиша =+=клавиша ⌫клавиша TabTabклавиша QQклавиша WWклавиша EEклавиша RRклавиша TTклавиша YYклавиша UUклавиша IIклавиша OOклавиша PPклавиша [{[клавиша ]}]клавиша \|\клавиша Caps LockCaps Lockклавиша AAклавиша SSклавиша DDклавиша FFклавиша GGклавиша HHклавиша JJклавиша KKклавиша LLклавиша ;:;клавиша '"'клавиша EnterEnterклавиша ShiftShiftклавиша ZZклавиша XXклавиша CCклавиша VVклавиша BBклавиша NNклавиша MMклавиша ,<,клавиша .>.клавиша /?/клавиша ShiftShiftклавиша CtrlCtrlклавиша WinWinклавиша AltAltклавиша ПробелПробелклавиша AltAltклавиша WinWinклавиша MenuMenuклавиша CtrlCtrl

Верхний ряд под Shift: цифры превращаются в символы

Если держать Shift и нажать клавишу с цифрой, вместо цифры напечатается символ. Но — важная деталь — этот символ разный в английской и русской раскладке, потому что раскладка меняет не только буквы, но и весь верхний ряд:

РАСКЛАДКА · ОДНА КЛАВИША, РАЗНЫЙ СИМВОЛShift + 4EN — латинская$RU — русская;
Одна и та же клавиша Shift+4: доллар $ в латинской раскладке, точка с запятой ; в русской.
КлавишаБез ShiftShift · EN (латинская раскладка)Shift · RU (русская раскладка)
11!!
22@"
33#
44$;
55%%
66^:
77&?
88**
99((
00))
--__
==++

Заметь клавиши 2, 3, 4, 6, 7 — на них символ зависит от раскладки. Если по привычке остаться в русской раскладке и нажать Shift+4, ожидая доллар $ (например, для переменной в терминале), вместо него напечатается точка с запятой ; — а Shift+6 вместо ^ даст двоеточие :. Это не баг тренажёра и не опечатка — это раскладка молча подставила другой символ. Отсюда практический вывод: для кода раскладка должна быть латинской всегда, без исключений, даже если сам код — на русском (в комментариях, например).

Важно

Для кода раскладка должна быть латинской — всегда, без исключений. Даже один спутанный Shift+цифра в русской раскладке подставит не тот символ, и код просто не скомпилируется.

Скобки ( и ), кстати, — то редкое исключение, где обе раскладки совпадают: Shift+9 и Shift+0 дают одно и то же что в EN, что в RU.

Отдельный вопрос — AltGr (правый Alt, второй модификатор рядом с пробелом). На европейских клавиатурах (немецких, французских) им пользуются постоянно: там @, {, }, [, ] часто вообще не печатаются без AltGr. На стандартной клавиатуре, купленной в России, — другая история: символы верхнего ряда и так печатаются обычным Shift, а AltGr для кода не нужен вовсе. Он пригодится, только если у тебя импортная (европейская) клавиатура с непривычной раскладкой клавиш — тогда стоит один раз свериться со схемой именно своей модели.

Скобки, кавычки и остальные символы кода — по одному

Разберём короткую строку, где встречаются сразу и круглые, и фигурные скобки, и квадратные, и точка с запятой, и двоеточие, и доллар, и кавычки. Она написана в стиле, который ты увидишь в главах про Kotlin, — понимать её смысл сейчас не нужно, только видеть, где живёт каждый знак:

Нажми на часть выражения

Ключевой вывод из этой строки: ; и : живут на одной физической клавише — разница только в Shift. Без него — точка с запятой (конец команды), с ним — двоеточие (аннотация типа). Перепутать легко, если Shift зажат чуть дольше или чуть короче нужного, поэтому эта пара — частый источник опечаток даже у опытных.

Вторая строка — та же тема, но со стрелкой ->, которую печатают двумя нажатиями подряд:

Нажми на часть выражения
Отвечено вопросов: 0 из 4
Ты в русской раскладке и нажимаешь Shift+4. Что напечатается вместо доллара $?
На какой физической клавише живут одновременно ; и :?
Из скольких нажатий состоит стрелка -> в коде?
Нужен ли AltGr для набора { } [ ] на стандартной клавиатуре, купленной в России?
Отвечено верно: 0 из 4

Потренируйся печатать: символы

Спецсимволы тормозят новичков сильнее всего именно потому, что до них не доходят пальцы-новобранцы — домашний ряд успевает стать привычкой, а скобки и стрелки ещё нет. Потренируй их отдельно, связками — только те символы, что уже разобраны выше: скобки, кавычки, ;, :, =:

Цель: скорость ≥ 95 зн/мин, точность ≥ 90%

() {} []
клавиша ``клавиша 11клавиша 22клавиша 33клавиша 44клавиша 55клавиша 66клавиша 77клавиша 88клавиша 99клавиша 00клавиша --клавиша ==клавиша ⌫клавиша TabTabклавиша QQклавиша WWклавиша EEклавиша RRклавиша TTклавиша YYклавиша UUклавиша IIклавиша OOклавиша PPклавиша [[клавиша ]]клавиша \\клавиша Caps LockCaps Lockклавиша AAклавиша SSклавиша DDклавиша FFклавиша GGклавиша HHклавиша JJклавиша KKклавиша LLклавиша ;;клавиша ''клавиша EnterEnterклавиша ShiftShiftклавиша ZZклавиша XXклавиша CCклавиша VVклавиша BBклавиша NNклавиша MMклавиша ,,клавиша ..клавиша //клавиша ShiftShiftклавиша CtrlCtrlклавиша WinWinклавиша AltAltклавиша ПробелПробелклавиша AltAltклавиша WinWinклавиша MenuMenuклавиша CtrlCtrl
следующая: 9 — безымянный правой руки (+ Shift)
Совет

Остальные значки — ==, !=, &&, ||, ?? и другие — тебе пока трогать не нужно: до них дело дойдёт в главах про Kotlin, когда у каждого появится смысл, а не только клавиша. Здесь тренируем только то, что уже разобрано.

А теперь — короткая строка кода целиком, ровно та, что уже разобрана по символам выше. Не пугайся длины строки — это просто буквы и уже знакомые значки, набранные подряд:

Цель: скорость ≥ 110 зн/мин, точность ≥ 90%

val double: (Int) -> Int = { n -> n * 2 }

Набираем команды терминала и git

Команды терминала и git наберёшь этими же самыми клавишами — просто в других сочетаниях. Здесь важно другое умение: видеть, где в строке команда, где флаг (flag — необязательный параметр, который включает или меняет поведение команды; начинается с - или --), а где аргумент (argument — значение, с которым команда работает). Подробно термин и синтаксис Linux-терминала разберём в следующей главе, а сейчас — только состав строки как текста для печати.

Нажми на часть выражения
Нажми на часть выражения
Отвечено вопросов: 0 из 4
В команде ls -la --color=auto, чем являются -la и --color?
Зачем в git commit -m "готова часть 1" нужны кавычки вокруг текста?
Что означают два дефиса подряд перед именем флага, как в --color?
Почему в -m важно, что буква строчная?
Отвечено верно: 0 из 4

Потренируйся печатать: код и команды

Длинная строка, где буквы, скобки и спецсимволы перемешаны вперемешку — как в настоящем коде:

Цель: скорость ≥ 125 зн/мин, точность ≥ 90%

val x = 5

И команда git — набери её так, будто действительно фиксируешь свою работу:

Цель: скорость ≥ 140 зн/мин, точность ≥ 90%

git status

Типичные ошибки

В браузере терминал не запустить, поэтому эти ошибки не «нажми и увидишь» — но сообщения ниже настоящие, проверенные на реальном терминале и реальном git, слово в слово. Учись узнавать их по тексту: на чемпионате именно так и придётся — читать вывод терминала и понимать, что произошло.

1. Не та раскладка — команда «напечаталась» кириллицей

Раскладка переключена на русскую, но ты по привычке набираешь ls. Клавиши те же самые физически, но при русской раскладке L отправляет «д», а S — «ы», поэтому в терминале появляется:

НЕ ТА РАСКЛАДКА · ОШИБКА В ТЕРМИНАЛЕL · Sте же физические клавишидыраскладка RU включенаbash: ды:command not foundфизические клавиши те же — раскладка решает, какой символ они отправят
Те же физические клавиши L и S: в русской раскладке получается «ды», и bash не находит такую команду.
ды

и после Enter:

bash: ды: command not found

Перевод: «bash: ды: команда не найдена».

Причина: раскладка меняет не физику клавиш, а то, какой символ они посылают. Вся строка превратилась в бессмысленный набор кириллических букв — bash честно ищет команду с именем «ды» и не находит.

Как починить: прежде чем печатать, проверь индикатор раскладки в углу экрана и переключи на латиницу (Alt+Shift или Super+Пробел на Ubuntu). Со временем начнёшь замечать неправильную раскладку по одному виду набранного текста, ещё до Enter.

2. Shift держится на одну букву дольше нужного — меняется флаг

Вместо git commit -m "готова часть 1" Shift не отпустили вовремя, и получилось git commit -M "готова часть 1" — заглавная M.

error: unknown switch `M'

(ниже git ещё печатает подробную справку по всем своим флагам — это нормально, читать её необязательно, если сообщение об ошибке уже понятно).

Перевод: «ошибка: неизвестный ключ M».

Причина: git различает регистр букв во флагах. -m для git commit значит «дальше текст сообщения», а -M для git commit git вообще не знает — отсюда ошибка. Важно: это не всегда безобидно. Например, в другой команде, git branch -M, заглавная -M — существующий флаг, и означает «переименовать ветку, даже если целевое имя уже занято», то есть может молча затереть чужую ветку. Держать Shift на долю секунды дольше нужного — частая причина таких сюрпризов, и не каждый раз она выглядит как ошибка.

Как починить: отпускай Shift сразу после дефиса, ещё до нажатия буквы флага. Если ошибка всё же вылезла — просто перечитай команду перед Enter.

3. «Умные» кавычки из текстового редактора ломают сообщение коммита

Команда скопирована из Word или Google Docs, где автозамена превратила прямые кавычки в типографские «ёлочки»: git commit -m “fix the bug” — кавычки здесь не те, что печатает клавиатура ("), а другие символы ( и ).

error: pathspec 'the' did not match any file(s) known to git
error: pathspec 'bug”' did not match any file(s) known to git

Перевод: «ошибка: путь-шаблон (pathspec — так git называет описание файла или маски файлов) 'the' не соответствует ни одному файлу, известному git» — и то же для 'bug”'.

Причина: терминал не считает символы и кавычками — это для него просто два обычных символа, а не граница строки. Поэтому команда разрезается по пробелам как обычно: -m получает только слово “fix, а the и bug” остаются отдельными аргументами. git решает, что это имена файлов, которые нужно закоммитить точечно, не находит таких файлов — и жалуется на каждый.

Как починить: набирай кавычки сам, руками, в терминале, а не копируй текст с кавычками из текстовых редакторов и мессенджеров — там почти везде включена автозамена на «красивые» кавычки. Если очень нужно вставить скопированный текст, проверь глазами, что кавычки вертикальные — ", а не «ёлочки» или «лапки».

4. Заглавная буква в пути — регистр в Linux имеет значение

По привычке из Windows набрано cd Documents с заглавной D, а папка в проекте на самом деле называется documents, со строчной.

bash: cd: Documents: No such file or directory

Перевод: «bash: cd: Documents: нет такого файла или каталога».

Причина: в отличие от Windows и обычно macOS, файловая система Linux различает регистр букв в именах: Documents и documents — два совершенно разных, не связанных друг с другом имени. Лишняя заглавная буква — от случайно зажатого Shift или машинальной привычки — и указанного пути просто не существует.

Как починить: набирай путь строго тем регистром, каким папка называется на самом деле. При сомнении набери первые буквы и нажми Tab — автодополнение само покажет и подставит правильный регистр, если файл или папка существуют.

Отвечено вопросов: 0 из 4
Терминал показывает bash: ды: command not found. Что произошло?
git пишет error: unknown switch `M'. В чём вероятная причина?
Чем опасен флаг -M в другой команде, git branch -M, если сравнивать с ошибкой -M в git commit?
Почему сообщение коммита, вставленное из Word, может вызвать error: pathspec 'the' did not match any file(s)?
Отвечено верно: 0 из 4

Слова главы

touch typing
1 / 10
Углубиться

Откуда взялась слепая печать. Метод придумал судебный стенографист Фрэнк Макгаррин: в 1888 году он выиграл публичное соревнование по скорости печати у чемпиона, печатавшего глядя на клавиши, — и с тех пор десятипальцевый метод стал стандартом обучения машинисток, а потом и программистов.

Что считается быстрым. Стандарт WPM определяет «слово» как 5 символов — так скорость можно сравнивать независимо от языка и длины слов. Профессиональные наборщики держат 43–80 WPM, а рекорды на стенотипе (специальной аккордовой клавиатуре) доходят до 360 WPM. Тебе столько не нужно: программист больше думает, чем печатает, — но каждая опечатка в коде стоит дороже, чем в переписке, поэтому точность у разработчиков ценится выше скорости.

Раскладки для скорости — Dvorak и Colemak. ЙЦУКЕН и QWERTY изначально проектировались не для скорости, а чтобы механические печатные машинки XIX века не заклинивали от слишком быстрого набора соседних клавиш. Позже придумали альтернативные раскладки — Dvorak (1936) и Colemak (2006), — которые кладут самые частые буквы на домашний ряд и заметно сокращают путь пальцев. На них можно печатать быстрее, но переучиваться с QWERTY на них долго, а вся общая техника (компьютеры в классе, экзаменах, на работе) — QWERTY, поэтому для чемпионата смысла переходить нет.

Почему monkeytype любят разработчики. Это проект с открытым исходным кодом: весь сайт лежит на GitHub, и любой может предложить улучшение. Когда пройдёшь главы про git, сможешь заглянуть внутрь настоящего живого проекта с двадцатью тысячами звёзд.

Дальше по теме:

  • Touch typing — история метода, домашний ряд и исследования скорости
  • Words per minute — как устроена метрика WPM и какие скорости считаются нормой
  • monkeytype на GitHub — исходный код тренажёра, открытый проект

Куда дальше: проверенные ресурсы

  • klavogonki.ru — русскоязычная игра-гонка на скорость печати: соревнуешься в реальном времени с другими игроками. Открывай, если тренировка по одному воспринимается скучно и нужен соревновательный азарт.

  • typingstudy.com — 15 бесплатных уроков слепой печати с поддержкой русской раскладки и тестом скорости в конце каждого. Открывай, если хочется структурированный курс «урок за уроком», а не свободную практику.

  • keybr.com — тот же тренажёр, что уже встречался выше, но сюда стоит вернуться отдельно: он запоминает именно твои слабые клавиши между заходами.

  • monkeytype.com — быстрый тест на 15/30/60 секунд с режимами для кода (code_kotlin, code_javascript и другие). Открывай для короткой ежедневной проверки прогресса.

  • klavaro.sourceforge.io — офлайн-тренажёр, если интернет на занятии нестабилен или хочется тренироваться без браузера вообще.

  • ratatype.com — курс с уроками и понятной статистикой прогресса по каждому пальцу отдельно. Открывай, если нужна наглядная разбивка ошибок именно по рукам.

  • 10fastfingers.com — тест на 60 секунд топ-200 слов языка и соревнования с другими пользователями. Открывай для быстрой сверки своего WPM со средним по больнице.

  • Видео и материалы сообщества — ниже — ролики по теме и ссылки от студентов и преподавателей смотри в самом низу страницы.

Символы и команды главы

Шпаргалка по всему, что встретилось в этой главе. Вернись сюда, если забудешь, «что это за клавиша» или «как называется этот значок».

Символ / командаКак называетсяЧто делаетПример
Alt+Shift / Super+Пробелсмена раскладкипереключает между латиницей и кириллицей
( )круглые скобкивызов функции, группировка аргументовbonus(base)
{ }фигурные скобкиограничивают блок кода{ n -> n * 2 }
[ ]квадратные скобкиобращение к элементу списка по индексуitems[0]
;точка с запятойзавершает команду; домашняя клавиша правого мизинца, без Shiftprintln(x);
:двоеточиеаннотация типа; та же клавиша, что и ;, но с Shiftbase: Int
->стрелкадва символа подряд: дефис и Shift-точка(Int) -> Int
$долларподстановка значения в строку; только в латинской раскладке"$name"
"двойная кавычкаограничивает строку любой длины"текст"
'одинарная кавычката же клавиша, что и ", но без Shift'a'
=знак равноприсваивание; с Shift на той же клавише — +x = 5
-дефискороткий флаг команды; без Shift-la
--двойной дефисдлинный флаг команды--color
ls -la --color=autoкоманда с флагамисписок файлов, подробно, с подсветкой
git commit -m "текст"git-командафиксирует изменения с сообщением
Углубиться: раскладка на разных системах

Комбинации для смены раскладки не универсальны — на разных дистрибутивах Linux, версиях Windows и в разных настройках клавиатуры они могут отличаться. Если Alt+Shift не срабатывает, ищи настройки в системном меню по словам «раскладка клавиатуры» (keyboard layout) или «языки ввода» (input languages) — там же можно назначить свою комбинацию.

Челлендж ⭐

Задача на неделю, а не на один вечер. Цель из двух ступеней:

  1. На monkeytype пройди тест на 60 секунд (обычный английский) с точностью не ниже 95% и скоростью не ниже 25 WPM.
  2. Затем в настройках языка переключись на один из режимов для кода (например code_kotlin) и пройди тест с точностью не ниже 90% — спецсимволы уронят и скорость, и точность, это нормально.

Сделай скриншот результата каждой ступени — он и есть твой ответ.

Ступень ⭐. Набери без единой ошибки (переписывай, если ошибся хоть раз) вот эту строку — в ней есть всё, что разобрано в этой главе: скобки трёх видов, точка с запятой, двоеточие, стрелка и доллар:

Цель: скорость ≥ 150 зн/мин, точность ≥ 90%

fun bonus(base: Int): String { return "итог: ${base + 9}"; }
Решение (сначала попробуй сам)

Рабочий план, если цель не берётся с наскока:

  1. Дни 1–3: только keybr, 15 минут в день. Он даёт буквы маленькими порциями и сам находит твои слабые клавиши. Не смотри на клавиатуру вообще — лучше медленно и вслепую, чем быстро и подглядывая.
  2. Точность ниже 95%? Замедлись. Это главный секрет: снижай темп до тех пор, пока ошибки почти не исчезнут. Скорость — побочный эффект точности, а не наоборот.
  3. Дни 4–7: monkeytype, 2–3 теста в день. Сначала обычный английский, потом один тест в режиме кода. Спецсимволы из блока тренировки выше набирай отдельно, связками по 2–3 символа: -> => != == {}.
  4. Строку со звёздочкой не удаётся набрать без единой ошибки? Раздели её на куски по SyntaxBreakdown выше: сначала fun bonus(base: Int) отдельно, добьёшься нуля ошибок — добавь : String { return, и так далее, кусок за куском.
  5. Не проходишь по WPM, но точность 97%+? Ты на верном пути — добавь ещё пару дней, скорость на такой точности растёт быстро. Хуже обратная ситуация: высокий WPM при точности 90% значит, что пора замедлиться.

Сводная проверка по всей главе: 8 вопросов, 5:00 на всё, без подсказок по ходу. Вопросы показываются по одному, ответ изменить нельзя. Если время выйдет — экзамен завершится с тем, что успел ответить. Пересдавать можно сколько угодно раз.

Что должен уметь

  • Ставить пальцы на домашний ряд (home row) по выступам на клавишах F/А и J/О и возвращать их туда после каждого нажатия; называть, какой палец за какие клавиши отвечает по таблице «палец → клавиши».
  • Объяснять, почему точность (accuracy) важнее скорости, и называть свой текущий WPM.
  • Переключать раскладку (layout) на латинскую перед тем, как печатать код, и узнавать по экрану, что раскладка перепутана (кириллица вместо латиницы).
  • Находить и печатать не глядя каждый из символов ( ) { } [ ] ; : -> $ " ', объясняя для каждого физическую клавишу и нужен ли Shift.
  • Объяснять, зачем на стандартной российской клавиатуре не нужен AltGr, и когда он всё-таки пригождается.
  • Пользоваться базовыми сочетаниями клавиш (копировать/вставить/сохранить/отменить и другие) на своей операционной системе, зная, чем Windows и Ubuntu отличаются от macOS.
  • Читать команду терминала или git, деля её на команду, флаг (flag) и аргумент (argument): ls -la --color=auto, git commit -m "текст".
  • Узнавать по тексту четыре типичные ошибки этой главы — неправильную раскладку, спутанный регистр флага, «умные» кавычки из текстового редактора, спутанный регистр в пути — и понимать, чем каждая вызвана.
  • Тренироваться на keybr, monkeytype, klavaro, ratatype, klavogonki, typingstudy или 10fastfingers самостоятельно: выбирать режим, читать свои метрики и видеть прогресс.

Комментарии

Комментарии появятся после настройки. Нужен аккаунт GitHub — вход прямо в виджете выше.