В некоторых программах содержатся циклы, из-за которых они никогда не завершают работу, потому что допущена ошибка. Это называется бесконечным циклом. Я уже о них упоминал, когда рассказывал о шахматной программе, которой я занимался еще в школе. Как бы то ни было, Компьютерный центр автоматически завершал любую программу, которая работала дольше 64 секунд. Поэтому я решил, что все мои компьютеры должны были распечатывать по 60 страниц быстрее, чем за 64 секунды, и написал их так, чтобы каждая из них распечатывала только 60 страниц по номерам: страница 1, страница 2 и так далее. Если запустить программу снова, то она печатала следующие 60 страниц (начиная с 61-й) и так далее. Я написал все свои программы так, чтобы они оставляли данные для следующего запуска на перфокарте, и я мог снова ими воспользоваться, чтобы запустить программы с нужного места.
Каждое утро я отправлялся в Компьютерный центр и запускал свои семь программ. Затем, после полудня, забирал распечатки и запускал их снова. Потом я снова приходил вечером и снова перезапускал их. Каждый день я запускал семь программ по три раза каждую, и за каждый запуск каждая из них выводила на печать по 60 страниц текста. Эти распечатки копились у меня в комнате. Мой сосед по комнате Майк уже начал сердиться из-за этого: бумага стала занимать много места. Гора бумаги и правда росла очень быстро: стопка за стопкой, компьютерные распечатки заполоняли нашу комнату.
Затем, когда я пришел в Компьютерный центр для очередного дневного запуска, я обнаружил, что мои программы оттуда исчезли. Там лежала записка, в которой говорилось, что меня немедленно вызывают в кабинет к профессору.
Я отправился к нему в кабинет. Он сказал мне: «Ладно, теперь присядь». Он включил катушечный магнитофон – нажал на клавишу и начал записывать наш разговор. Помню, что я немного испугался.
«Ты самостоятельно запускал все эти программы», – сказал он.
Я ответил: «Да. Я ходил на курсы программирования. Там я учился писать компьютерные программы. Я запускал их под своим личным студенческим номером. Я не пытался скрыть тот факт, что запускал их именно я».
«Это не имеет никакого отношения к нашим занятиям», – ответил он.
«Это был “Фортран”», – сказал я ему.
«Мы не изучаем “Фортран”», – ответил он. И это была правда. Я зашел достаточно далеко в изучении руководств по программированию, мне было необходимо узнать несколько хитростей для математических символов. Я продвинулся гораздо дальше базового программирования, мы оба это понимали.
Что такое «Фортран»?Фортран – это компьютерный язык программирования, разработанный в 50-е, но спустя полвека по-прежнему широко используемый в научных вычислениях и операциях с числами. Его название произошло от английских слов «Formula Translation». Будучи компилируемым языком, он мощнее и значительно быстрее, чем такие интерпретируемые языки, как «Бейсик».
Он сказал, что потратил какое-то время, пытаясь понять, что мои программы делали, но в конце концов он в них разобрался. Он сказал: «Ты что, пытаешься меня достать?»
Его достать? Я не понимал, о чем он говорил. Думаю, что он чувствовал угрозу из-за растущего недовольства войной во Вьетнаме. Движение «Студенты за демократическое общество» (SDS) пользовалось в то время в кампусе большим влиянием. Но я был аполитичен, только один-единственный раз зарегистрировался в университетском клубе поддержки Республиканской партии! Я был просто обыкновенным покорным студентом, будущим инженером, и я бы никогда не стал ввязываться в какую-то подрывную политическую деятельность!
«Пытаюсь вас достать?» – переспросил я. Я не имел ни малейшего понятия, о чем именно он говорил.
Он снял телефонную трубку и позвонил кому-то в Компьютерный центр. «Да, эти программы… Мистеру Возняку необходимо предъявить счет за компьютерное время».
Тогда я понял, что натворил. Я потратил компьютерное время нашего класса на пять лет вперед. Я ведь даже не знал, что университет за это платил деньги. Я думал, что раз ты учишься в компьютерном классе, то тебе положено компьютерное время. Это казалось мне вполне логичным. И теперь я узнал, что потратил кучу университетских денег. И, насколько мог догадываться, он собирался решить эту проблему за мой счет. Я не думал, что они и вправду станут предъявлять мне, студенту-первокурснику, финансовые претензии. Но я был жутко испуган, ведь речь шла о тысячах долларов – это было во много раз больше стоимости моего обучения.
Таким образом, к концу этого учебного года мне стало понятно, что мне не придется упрашивать своих родителей разрешить мне остаться в Колорадо. Я получил нагоняй из-за злоупотребления компьютерным временем. Я не хотел, чтобы родители об этом узнали. Я не хотел, чтобы им предъявили счет на большую сумму, поэтому вместо того чтобы остаться со всеми своими друзьями к Колорадо, на следующий учебный год я решил перевестись в городской колледж Де Анца.
Вспоминая об этом сейчас, я по-прежнему считаю, что тогда они не должны были выставлять мне за это счет. Они должны были меня похвалить – ведь все эти программы я написал самостоятельно, без чьей-либо помощи.
А еще по тому предмету у меня была высшая оценка.
* * *
Так я снова оказался дома и стал ходить к колледж Де Анца. Я по-прежнему занимался проектированием и перепроектированием компьютеров – тем же, чем и в средней школе. Тогда я раздобыл руководства ко многим популярным мини-компьютерам того времени (они были все размером с коробку из-под пиццы и монтировались на стойках, это были машины производства компаний Varian, Hewlett-Packard, Digital Equipment 1969–1970 годов и другие) и занимался тем, что проектировал их на бумаге заново, чтобы они работали эффективнее при меньшем количестве микросхем.
К тому времени, когда я закончил колледж Де Анца, я в буквальном смысле разработал и перепроектировал несколько самых известных компьютеров в мире. Несомненно, я мог бы с легкостью стать экспертом по проектированию компьютерных систем, ведь я проектировал и перепроектировал их прототипы десятки раз. Однако я по-прежнему не мог их собирать физически. Я был виртуальным экспертом – в программном смысле этого слова. Я не собирал эти компьютеры, но был одержим этим и настолько хорошо знал все их внутренности, что мог бы с легкостью взять любой из них, разобрать и собрать заново – после чего эта машина стала бы работать эффективнее, стоила бы дешевле и стала бы лучше.
У меня не хватало смелости обратиться в компьютерные компании и запросить образцы их дорогостоящего оборудования. Год спустя я познакомился со Стивом Джобсом. Он продемонстрировал отменную невозмутимость, просто позвонив торговым представителям этих компаний и получив необходимые микросхемы бесплатно. Я сам не смог бы такого сделать. Этот союз интраверта и экстраверта (догадайтесь, кто есть кто) очень помогал нам в те дни. Один из нас с легкостью добивался того, что было сложно для другого. Подобных примеров командной работы в этой истории очень много.
* * *
Однажды в колледже Де Анца мой учитель по квантовой физике сказал: «Возняк. Это редкая фамилия. Я знал одного Возняка. Возняк учился в Калифорнийском технологическом университете».
«Это был мой отец, – сказал я. – Он учился в Калифорнийском университете».
«Что ж, он был отличным футболистом».
Я подтвердил, что это был мой отец. В команде он был квотербеком.
«Да, – сказал преподаватель. – Мы вообще-то не ходили на футбольные игры, но в Калифорнийском университете обязательно нужно было посмотреть на игру Джерри Возняка. Он был там знаменитостью».
Знаете, я думаю, что мой отец был лучшим квотербеком за всю историю Калифорнийского университета. Им даже интересовались Лос-Анджелес Рэмс[2], но я не думаю, что он был готов играть в профессиональной лиге. Как бы то ни было, было очень приятно услышать, что учитель физики запомнил моего отца благодаря его достижениям в футболе. Я почувствовал, что мы творили с ним историю вместе. Этот преподаватель как-то раз показал мне газету, выпущенную в Калифорнийском университете, где была напечатана фотография моего отца в футбольной форме.