Глава 5. (1972–1973) Юность: Кен получает образование

…Десять лет по три дня в неделю я читал книги в публичной библиотеке, и это было лучше, чем колледж. Люди должны заниматься самообразованием – так можно получить полноценное образование совершенно бесплатно…

Рэй Брэдбери, писатель

В выпускном классе средней школы мы поехали на экскурсию в Калифорнийский университет в Лос-Анджелесе (UCLA). Единственная часть поездки, которая мне запомнилась, – именно тогда я впервые увидел компьютер.

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

Я не знаю, было ли то, что я увидел в Калифорнийском университете, полноценным компьютером, или это был просто монитор с клавиатурой, а компьютер, к которому они были подключены, находился где-то еще. Все, что я помню, – как я подошел к клавиатуре и впервые в жизни сыграл в компьютерную игру. Это была текстовая игра Star Trek по мотивам телесериала «Звездный путь».


Игра Star Trek


Star Trek – текстовая стратегическая компьютерная игра, основанная на телесериале «Звездный путь». Игрок выступает в роли командира звездолета «Энтерпрайз», который странствует по галактике и выслеживает клингонские военные корабли в течение отведенного времени. Игра начинается с краткого текстового описания поставленной перед игроком задачи, после чего можно вводить команды. В начале каждой миссии задается то или иное количество клингонских кораблей, дружественных звездных баз и звезд, разбросанных по всей галактике. Галактика изображена в виде сетки «квадрантов» 8 на 8. Каждый квадрант также разделен на секторы – тоже сеткой 8 на 8. Количество звезд, клингонских кораблей и звездных баз в любом квадранте задается в начале игры, но их точное положение меняется каждый раз, когда игрок входит в этот квадрант.

«Википедия» https://en.wikipedia.org/wiki/Star_Trek_(1971_video_game)

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

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

Таким образом, в моем расписании оказались занятия по физике, высшей математике и вычислительной технике.

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

Высшая математика оказалась мне не по зубам. Если на занятиях по физике еще было весело, то на высшей математике приходилось решать дифференциальные уравнения. Не то чтобы я не пытался учиться. Это было просто «не мое».

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


Первое крупное поражение Кена: высшая математика


В те дни написание программного кода выглядело совсем иначе, чем сейчас. Я даже не видел компьютер, для которого программировал. Вместо этого нас усаживали в комнату с несколькими «устройствами подготовки данных» (УПД)[3] – мы жали на клавиши, устройства пробивали дырки в перфокартах. А потом нужно было отнести готовую пачку карт в специальное окошко, где с ними дальше работал какой-то невидимый оператор компьютера. В корзину для бумаг скидывали распечатки с ошибками компилятора или результатами работы вашей компьютерной программы, если она изволила выполниться.


Устройство подготовки данных


Чтобы написать код, мне нужно было сесть за клавиатуру УПД и набрать на этой клавиатуре компьютерную программу – по одной строке за раз. Каждая строка, которую я набирал, заполняла одну перфокарту.


Перфокарта (максимум 80 знаков на каждой карте)


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

По вечерам после учебы я работал. Каждый вечер, часто по многу раз за вечер, мы с Робертой заезжали в университет, чтобы посмотреть, успешно ли выполнилась моя программа. Я заглядывал в корзину с компьютерными распечатками, надеясь найти хоть одну с моим именем. Иногда мы с Робертой часами сидели и ждали, пока программа выполнится, а потом выяснялось, что я где-то допустил небольшую ошибку, и мне нужно было заменить какую-то перфокарту в стопке и снова отдать стопку оператору, и опять долго ждать результатов.

Звучит примитивно? Так оно и было. Программирование было многочасовым делом, над которым нужно было корпеть днем и ночью. Чтобы отладить программу, надо было посмотреть распечатку, которую я получал через несколько часов после того, как передал стопку перфокарт оператору. Приходилось держать несколько раздельных коробок с перфокартами для разных программ. Часто получалось так, что я отправлял свою программу оператору, ждал четыре часа, приезжал в университет и обнаруживал, что по оплошности допустил опечатку в какой-нибудь малоизвестной команде. Это значило, что мне нужно быстро исправить ошибку и заново подать перфокарты оператору – и я терял несколько часов. Но мне было все равно! Среди всех занятий в мои студенческие годы это было самое интересное.

Кстати, много лет спустя, когда я уже работал программистом-разработчиком в компании Bekins Moving and Storage, другой программист принес из компьютерного зала мою коробку с карточками, но без распечатки.

– Где моя распечатка? У меня там баг? – спросил я. Коллега ответил: «Да» и открыл коробку. Оттуда выполз таракан[4]. Шутки программистов не всегда понятны людям, далеким от IT.

Вместе с супружеством появились счета и ответственность. К моменту, как мы поженились, я закончил только первый курс университета.

Роберта все еще работала, но сказать, что у нас финансовые трудности, значило бы ничего не сказать. Роберта об этой своей работе вспоминает с немалым отвращением. До движения #metoo тогда еще оставалось несколько десятилетий.

Мистер С ‹…›, сальный и толстый немолодой мужчина, наверное, лет сорока или пятидесяти, любил заставлять меня забираться на стремянку, чтобы расставить папки по полкам. Стремянка была приставлена к высокой стене, где полки с папками шли до самого потолка. Я все еще носила короткие платья или юбки (как и большинство девушек в те времена!). Поэтому он и требовал, чтобы я лезла на стремянку и «расставляла папки» на «верхнюю полку», а он в это время стоял внизу и глядел вверх. Еще и замечания всегда делал такие двусмысленные…

Роберта Уильямс

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

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

Работа на фабричной производственной линии – страшная скука. В скафандре мне было не только скучно, но еще жарко, потно и неприятно. Чтобы не сойти с ума, я начал анализировать процессы и быстро придумал, как повысить производительность. Несколько недель мой участок работал почти в два раза быстрее обычного. Это вовсе не значило, что завод стал работать продуктивнее – наоборот, моя бригада маялась от безделья, а готовые изделия лежали на полу, пока следующая бригада дальше по производственной линии пыталась обработать все то, что мы им подавали. Я пошел к начальнику и спросил, нельзя ли мне поработать над оптимизацией всей линии, чтобы справиться с заторами.

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

Но мы с Робертой оказались на мели. Я нигде не учился, не работал, еще и с беременной женой. Что делать?

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

Все перевернулось, когда я увидел рекламу школы компьютерного программирования – она обещала будущим айтишникам ДЕНЬЖИЩИ.

Школа была не из дешевых: пять тысяч долларов! Но была и хорошая новость: можно было взять в банке студенческий кредит (их для молодежи субсидировало правительство) и платить всего 47 долларов в месяц. Выплаты начинались только через год после окончания учебы. Расплачиваться за этот кредит мне в любом случае пришлось бы много лет, но если бы я смог найти работу, где платили бы те самые ДЕНЬЖИЩИ, то все бы у меня было бы в шоколаде. Единственная загвоздка заключалась в том, что мне нужен был поручитель по кредиту: если я не смогу выплачивать кредит, банк стрясет деньги с поручителя. Моим родителям это было не по карману, но родители Роберты сходу сказали: «ДА!»

Если для окончания университета мне нужно было бы ходить туда еще три года, школа Control Data Institute (CDI) обещала сделать из меня программиста всего за девять месяцев.

Это было слишком хорошо, чтобы быть правдой.


В объявлении говорилось: «Программисты с двухлетним опытом работы, как мужчины, так и женщины, могут зарабатывать до 8–10 тысяч долларов в год».

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


Компьютер IBM 407 Accounting Machine


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

Для учебы на программиста время было что надо – индустрия зарождалась практически у меня на глазах. Авторы курсов хотели продемонстрировать учащимся всю эволюцию компьютерной техники – сначала у нас были теоретические занятия на темы вроде двоичного исчисления, потом нас попросили запрограммировать один из самых ранних компьютеров, IBM 407 Accounting Machine. Программировали его напрямую – вставляя провода в отверстия на печатной плате![5]


Компьютер IBM 1401


От IBM 407 мы перешли к небольшому мейнфрейму IBM 1401[6]. Теперь программирование было уже больше похоже на то, чем я занимался в университете: программы вводили в компьютер с помощью перфокарт.

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

К самому концу курса мы перешли на «современный» (по меркам 1973 года) компьютер IBM System 3. Я освоил настоящий язык компьютерного программирования – RPG II.

Девять месяцев я пробыл прямо-таки в раю. У меня был талант к программированию, и я быстро обогнал всю группу. Я осваивал новую информацию и за считаные минуты выполнял задания, на которые у однокашников уходили часы. Это давало мне практически неограниченное время за компьютером – программируй сколько влезет.


Компьютер IBM System 3. Фотография I. B.M. Italia (проектирование, разработка, производство)


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

Теперь пришло время всерьез заняться поисками работы.

Загрузка...