Сліпий друк для програмістів: чому швидкість кодування — це не лише WPM
Швидкий друкар усе ще може бути повільним кодером
Це поширена несподіванка: хтось, хто показує 90+ WPM на звичайних англійських словах, сідає писати код і не почувається швидшим за друкаря на 50 WPM. Причина проста — стандартний тест друку майже повністю складається з малих літер і пробілів. Код — ні. Типовий рядок JavaScript чи Python напханий символами, яких словниковий тест ледь торкається: дужки, підкреслення, лапки, знаки рівності, двокрапки — плюс постійні перемикання між малими й великими літерами для camelCase і тягнення до ряду цифр заради символів.
Кожен із них — маленька затримка. Помнож на тисячі рядків на тиждень, і вийде реальна прірва між «швидким друкарем» і «швидким кодером».
Символи, що справді тебе сповільнюють
- Дужки та фігурні дужки —
()[]{}— розташовані по краях верхнього ряду й потребують англійської розкладки, з чим мізинець у звичайній прозі стикається рідко. - Символи з Shift —
_=+:"— вимагають утримуваного модифікатора, а це інший рух, ніж друк звичайної літери. - camelCase і snake_case — постійні мікроперемикання регістру (або тягнення до підкреслення), які тести зі словами ніколи не тренують.
- Відступи — два чи чотири пробіли на початку кожного рядка, надруковані правильно й послідовно, чого плавний абзац слів ніколи не вимагає.
Жоден із них сам по собі не складний. Бракує повторення — більшість людей просто ніколи не відпрацьовували їх так, як відпрацьовували абетку в школі.
Чому звичайний тест друку цього не виправить
Тести друку за словами беруть слова зі словникової бази поширених слів — корисно для чистої швидкості й точності, але бази слів за задумом здебільшого складаються зі звичайного тексту малими літерами. Можна вичавити максимум WPM на такому тесті й усе одно плутатися щоразу, коли друкуєш !== або тягнешся до закривальної дужки трьома рядками нижче. Навичка справді інша й потребує власного тренування.
Тренування друку коду цілеспрямовано
Саме для цієї прогалини створена гра Code Typing — вона бере справжні рядки JavaScript і Python, а не випадкові слова, і чутлива до регістру та пробілів, як справжній редактор. Кілька способів вичавити з неї максимум:
- Не пропускай відступи. Початкові пробіли — частина рядка й частина вправи: друкувати їх правильно, щоразу, — половина сенсу.
- Читай, перш ніж друкувати. Код має передбачувані форми —
(майже завжди означає, що далі буде),{означає}. Передбачення скорочує дрібні паузи, що накопичуються. - Дай мізинцю вивчити краї клавіатури. Дужки й символи скупчуються на крайніх краях верхніх рядів; свідоме тренування переводить їх із «шукай» у м’язову пам’ять.
- Тренуй обидві мови, якщо користуєшся обома. Стиль Python із двокрапками та відступами й стиль JavaScript із фігурними дужками та крапками з комою тренують дещо різні рефлекси.
Це нашаровується на основи
Тренування символів працює найкраще поверх міцних основ — якщо ти досі шукаєш літерні клавіші, почни з уроків сліпого друку, зокрема з окремого уроку про символи програмування, що охоплює фігурні й квадратні дужки та оператори порівняння. Коли основи автоматичні, тренування, специфічне для коду, закриває решту прірви між твоїм результатом WPM і тим, наскільки швидко ти насправді почуваєшся, пишучи справжній код.