На прошлой неделе я писал о том, что практика лежит в основе искусства, будь то музыка или программирование. Я научился практиковать у своего первого великого учителя, Майка Гросса. Вот чему он меня научил:

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

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

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

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

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

Вот как тот же совет относится к программированию:

Тщательно расчешите свою программу, а затем отпустите ее. Повторение! Нет ничего менее полезного, чем программа, которую не выпускают. В какой-то момент вы должны отпустить что-то, бородавки и все такое. Вернитесь и перепишите его потом. Искусство программирования — это в значительной степени искусство переписывания.

Принимайте отзывы о своем программировании без защиты. В музыке запись заставляет вас считаться с тем, как вы звучите. Некоторые программисты пытаются спорить с отзывами своих коллег или находят причину внутренне отклонить их. Вы должны в какой-то степени учитывать источник обратной связи, но оценивать его как можно более безлично.

Следите за своим уровнем энергии и настроением во время программирования. Когда вы устали или расстроены, ваше суждение ухудшается. Худшие из худших ошибок в подавляющем большинстве случаев создаются поздно ночью.

Обратите внимание на мельчайшие детали. Назовите функции и переменные с намерением. Делайте осмысленные комментарии в системе контроля версий. Поминутно отслеживайте, на что вы тратите время, и минимизируйте потери — как можно больше используйте «домашнюю строку» клавиатуры, создавайте псевдонимы для распространенных команд, пишите сценарии для распространенных задач.

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