Выбрать главу

Покупатели были в восторге от цветной картинки! Я быстро понял, что Роберта наткнулась на золотую жилу – надо было ее разрабатывать по-крупному.

Мы немедленно запустили в разработку еще несколько приключенческих игр.

Роберта была в лучшем случае начинающей разработчицей. Тем не менее она практически в одиночку создала хит номер один среди тогдашних компьютерных игр. Она закончила разработку Wizard and the Princess и сразу же после нее выпустила следующую игру – Mission Asteroid. Роберта пахала изо всех сил, но часов в сутках у нее от этого больше не становилось.

Hi-Res Adventure #4. Ulysses and the Golden Fleece

Может быть, разработкой приключенческих игр мог бы заниматься кто-то еще?

У нас уже было несколько наемных работников, которые сидели за компьютерами и копировали диски. И один из них, Боб Дэвис, подошел ко мне и сказал, что у него есть идея для игры под названием Ulysses and the Golden Fleece.

Я дал ему полную свободу, и вскоре у меня появилась еще одна игра на продажу. Отлично!

– ИНТЕРЛЮДИЯ –

(Небольшое отступление, чтобы я мог вклинить что-нибудь другое)

Глава 13. Советы программистам

Умный человек разрешает проблему. Мудрый избегает ее.

Альберт Эйштейн

ПРИМЕЧАНИЕ. Эта глава адресована программистам и тимлидам. Остальные читатели, возможно, предпочтут (а может, и не предпочтут) перейти сразу к следующей главе.

Есть на свете одна книга, которую я бы порекомендовал всем, кто хочет построить карьеру программиста, или тем, кто хочет заниматься яхтингом, да и всем остальным тоже: «Дзэн и искусство ухода за мотоциклом»[17]. Эта книга оказала огромное влияние на мою карьеру разработчика программного обеспечения, а спустя десятилетия – еще и капитана яхты.

Тем не менее я не могу утверждать, что по-настоящему прочитал эту книгу. Я пытался сделать это несколько раз и действительно прочел ее от корки до корки, но так и не смог до конца понять все, что прочел. Автор этого творения, Роберт Пёрсиг, был профессором в университете и писал так, как можно ожидать от профессора. Его роман автобиографичен – читается он как блог о путешествии по стране на мотоцикле, которое Пёрсиг совершил со своим сыном Крисом. Как пишет сам автор, эта книга имеет очень мало отношения к дзэн-буддизму или уходу за мотоциклами. Вместо этого книга посвящена скорее его личным размышлениям на тему отношения к окружающему миру.

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

Что именно я оттуда вынес:

• Как анализировать проблему.

• Как разбить большую проблему на мелкие части.

• Как определить, что по-настоящему важно.

Моя философия разработки программного обеспечения выросла из чтения книг Пёрсига (он написал и еще одну книгу, «Лайла»[18] – своего рода продолжение первой книги; в «Лайле» он рассказывает о яхтах и путешествиях). В частности, эта книга помогла мне начать думать о двигателе или даже о программе как о комплексе подсистем, у каждой из которых есть какая-то определенная функция или цель.

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

Это привело меня к правилу номер один в разработке программного обеспечения:

Чем меньше, тем проще.

Кен Уильямс

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

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

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

вернуться

17

Пёрсиг Р. Дзэн и искусство ухода за мотоциклом. М.: АСТ, 2023. – Прим. ред.

вернуться

18

Пёрсиг Р. Лайла: исследование морали. М.: АСТ, 2014. – Прим. ред.