Чувак, я шлікую твій код. Не ти.

Я провів перше десятиліття свого приблизно 16 років написання коду, надмірно прикріпленого до написаного мною коду. Я пишався тим, що розробляв і писав. Це була моя дитина. Я витрачав години на копітке написання, рефакторинг, полоскання та повторення. Я спостерігав, як дозрівають мій код та бібліотеки. Я загалом був задоволений результатом. Ніхто не міг напасти на нього, не відразу взявши на себе роль захисника батьків. Зрештою, цей код був частиною мене. Це була сума всіх моїх років навчання та практики. Мене засліпило кохання. Жодна дитина не симпатичніша за вашу власну.

багато часу

Я впевнений, що багато людей, які витратили роки на написання коду, можуть ідентифікуватись із зазначеним вище. На жаль, це дійсно жахливе мислення на практиці. Ось тематичне дослідження, засноване на вашому справді багаторічному досвіді:

Я витрачаю надмірну кількість часу на написання клієнта OAuth 2.0 на Python (це під час чернеток специфікації, перш ніж було доступно багато клієнтів). На той момент був доступний ще один клієнт, але це був монстр і справді здався мені надмірним. Я витратив багато часу, перекопуючи RFC, розуміючи протокол до найнижчого рівня. Я витратив стільки ж часу на дослідження відхилень у реалізаціях провайдерів, що нагадало мені про ранні дні розробки браузера на стороні клієнта. Потім я витратив досить багато часу на проектування та впровадження бібліотеки, якою пишався з. Він перевершив кодовий слід іншої бібліотеки більш ніж на два порядки, і, наскільки я міг зрозуміти, пропонував стільки ж функціональних можливостей.

Я зрозумів, що написав цю бібліотеку у вакуумі і хотів би отримати відгук від когось більш закріпленого у спільноті Python. Я дивився виступ когось, хто мені сподобався, тому вирішив звернутися до них і попросити переглянути код. На мій жах, він розірвав його на частини. Відчувалося, ніби мені виривають серце і тупають далі. Як він міг побачити щось погане в цьому тілі досконалості, яке я створив ?! Я знайшов повідомлення в його акаунтах у соціальних мережах, що тикали в різні області коду (насправді не посилаючись назад на код, щоб зберегти анонімність). Щелепа вдарилася об підлогу. Я не міг повірити, що щойно сталося.

Я вистрілив у відповідь. Я надіслав йому електронний лист із моїм пір’ям. Щось із ефекту ") * &#$ # $ (*) &#$) # (* & ASD & *.". Його відповідь була:

Я спав на ньому. Хоча я все ще відчував, що є набагато кращий спосіб надіслати відгук, це змусило мене розглянути кілька великих питань. Як би він міг чітко розділити мою особу з моїм кодом? Чи не були вони фактично одним і тим же, оскільки мій код є продуктом моїх зусиль?

Потім лампочка згасла. Я помилявся. Я зрозумів, що, хоча написаний мною код справді є моїм, жодним чином, форма чи форма не представляє мене як людину. Мало того, але жоден інженер-програміст ніколи не вирішить одну і ту ж проблему однаково. Фокус полягає в тому, щоб слухати, що говорять інші, і розуміти, що:

а) Кожен вирішує проблеми по-різному,

b) Кожна людина має різний механізм доставки, з надзвичайно різним ступенем такту, і

в) Вони не говорять про вас, вони говорять про код

Людина, що має найменшу тактовність, скаже: "цей код жахливий". Вони не називають вас придурком. Вони не говорять, що ти некомпетентний. Вони кажуть, що ваш код неоптимальний. Як би дивно це не звучало, як тільки ви прийшли до цього розуміння, опрацювання найжорстокішого перегляду коду або навіть наявність коду, який ви повністю написали, повністю стертий з контролю джерел, стає простіркою. Більше ви не сприймаєте речі, які люди говорять, як особисті напади, а як джерела знань для покращення власних знань та професійного розвитку. Якщо хтось каже “цей код відмовно”, ви схильні запитати, чому вони думають, що це і як його можна вдосконалити, а не вступати в аргументи, що базуються на пристрасті, а не на обґрунтованих технічних міркуваннях. Ви також будете здивовані тим, скільки разів люди вважають ваш код відстійним, оскільки вони недостатньо добре розуміють проблемний домен. Ви також будете здивовані тим, як часто ви можете навчитися чудовим речам у тих, хто трохи менш кмітливий у розмовному тактові.

Звичайно, я не виступаю за те, що розривати чийсь код на словах або в соціальних мережах - це добре в будь-якому випадку. Зазвичай найкраще проводити індивідуальні дискусії з кимось, хто звернувся до вас для перегляду. Тут я намагаюся досягти важливості можливості відокремитися від коду, який ви пишете. Це допоможе вам багато тонн протягом вашої кар’єри.