Было бы легко отмахнуться от этого случая, как от ошибки, связанной с невозвратными затратами, но возвращение к незавершенному программному проекту 20-летней давности многому учит меня о себе.

В «Парке Юрского периода», фильме, который я посмотрел в впечатлительном возрасте, высокомерный миллионер-мечтатель Джон Хаммонд говорит: «Творение — это акт чистой воли». Как и Джей Гэтсби, Хаммонд пошел от скромного начала к великим свершениям и принес бедствия тем, о ком он заботился больше всего.

Оглядываясь назад, я следовал той же философии, пока чуть не провалил университетскую степень, никогда не останавливаясь, чтобы «заточить пилу» или задаться вопросом, насколько реалистичны или желательны мои цели. Я хотел этого, поэтому я мог это сделать; люди, которые терпят неудачу, должны стараться изо всех сил; ошибки вызваны небрежным мышлением и т. д. Однако высокомерие юности может только завести вас до сих пор, и теперь я смотрю на код, который я тогда писал, другими глазами. Я мог бы написать целое эссе о конкретных проблемах, которые сейчас решаю по-другому, но это было бы интересно только узкой аудитории.

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

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

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

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

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