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

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

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

Что вы делаете? Заморозить и включить повтор, пока не стало слишком поздно?

На самом деле, это все только в вашем уме. Твои, мои, все. Мы все делаем это. На самом деле, большинство из нас сделали так много ошибок в своей жизни, что ваша честная ошибка не будет иметь большого значения. Даже если нам всем придется взяться за дело и засучить рукава, чтобы исправить проблемы, вызванные вашей ошибкой, ни у кого не будет права обвинять вас и сваливать все на вас. Завтра это могут быть я, Дженни или Боб внизу. Даже если кто-то окажется настолько жестоким и невнимательным, что на самом деле заговорит об этом, вы должны знать, что он не имеет на это права.

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

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

Или, может быть, это шок от перехода от «Эй, я знаю это» к «Что… за… черт?!». Этот переход повышает вашу бдительность, улучшает ваше восприятие, и вам становится лучше?

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

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

Ваш опыт — это кладбище прошлых неудач, пепел которых удобряет знания, которыми вы обладаете в настоящее время. Единственная разница между хорошими инженерами и плохими состоит в том, что первые не будут пытаться перестраховаться, чтобы избежать неудачи.

Так что вперед, не бойтесь. Сделайте эти ошибки и станьте лучшим программистом!