Читаем Кодеры за работой. Размышления о ремесле программиста полностью

Фицпатрик: Мой отец работал в компании Mostek, выпускавшей компьютерную память, и был увлечен компьютерами. Он собрал Apple II практически из запасных частей. Помню, как они с мамой месяцами сидели перед телевизором, собирая его по кускам. Отец мог принести с работы ПЗУ, которые компания не собиралась продавать, потому что в них один или несколько битов залипли в ноль или единицу. Потом им как-то удалось достать ПЗУ Apple II, и они припаивали их на те мертвые чипы, пока наконец не получили работающую память, в которой залипшие биты принимали правильные значения. В результате отцу и многим его коллегам удалось собрать самодельные компьютеры Apple II. Я играл с ним лет с двух или около того и смотрел, как отец на нем программирует.

Сейбел: Он занимался программированием или разработкой железа?

Фицпатрик: Он инженер-электротехник, а программирование — его хобби. Он научил меня программировать, когда мне было пять лет, и шутил, что я заткнул его за пояс лет в шесть или семь. Мама говорит, что я читал библиотечное руководство по программированию Apple II одновременно с книжками про Красного щенка Клиффорда. Вместо «переменные» я говорил «драгоценные». Программирование вместе с отцом — одно из первых воспоминаний в моей жизни. Как он затащил меня в кухню, написал на листке бумаги какой-то код и спросил: «Как думаешь, что делает эта программа?» Там было что-то вроде 10 PRINT HELLO, 20 GOTO 10.

Сейбел: Итак, вы начинали с Бейсика?

Фицпатрик: Да, это был Бейсик. Я не мог работать с мышью, графическими режимами с высокими разрешением и цветами, пока один из друзей нашей семьи не познакомил меня с языком Си и не установил для меня Turbo С. Мне было лет восемь или десять. Отец перешел в Intel в 1984, и мы переехали в Портленд. Он участвовал в разработке процессоров i386 и i486. Отец до сих пор в Intel, и у нас всегда новые классные компьютеры.

Сейбел: Программировали ли вы когда-либо на ассемблере?

Фицпатрик: Да, я немного писал на ассемблере для калькулятора, вроде тех калькуляторов Texas Instruments с процессорами Z80.

Сейбел: Помните, чем вас привлекло программирование?

Фицпатрик: Не знаю. Это всегда было весело. Мама выгоняла меня из-за компьютера, выдавала мне купоны для работы за компьютером, лишь бы я шел на улицу поиграть с друзьями. Друзья говорили: «Опять Брэд за компьютером, вот зануда». А мама: «Иди погуляй».

Сейбел: Помните первую интересную программу, написанную вами?

Фицпатрик: У нас был принтер фирмы Epson, а к нему прилагались огромные толстые руководства с разделом для программистов в конце. Я писал что-то (еще на компьютере Apple) для рисования графики с высоким разрешением, и когда моя программа заканчивала рисовать линии, узоры или еще что-то, я нажимал Ctrl-C. Все это в фоновом режиме сохранялось в неотображаемом кадровом буфере, после чего я загружал другую свою программу, которая читала изображение с экрана и распечатывала его.

А еще раньше я написал программу, которая позволяла мне печатать, как на пишущей машинке: при каждом нажатии клавиши головка принтера перемещалась, а при нажатии backspace двигалась назад.

Одна из первых моих программ делала примерно следующее: сравниваю значение переменной К со следующим введенным символом. Если К = а, вывожу на экран значение а, если К = b — значение Ь. Я добавил условия для каждой буквы и для большинства знаков препинания. Но в какой-то момент понял: «Стоп, я же могу просто написать: „вывести на экран значение переменной"», — и заменил 40 строк кода одной. Я подумал: «Черт, это же здорово!» Неплохое обобщение для шестилетнего.

Вот то, что запомнилось из ранних программ. Потом, в средней школе, я уже писал игры, графические редакторы и редакторы уровней для своих друзей, а друзья делали графику для разных уровней, и мы продавали эти игры своим одноклассникам. Помню, что делал игры, которые определяли режим монитора, EGA или VGA. Если игра не могла использовать режим VGA, то переходила обратно в EGA и использовала другой набор изображений, подходящих для этого режима, так что нам везде требовалось два набора графики. Школьники покупали это дело баксов за пять и устанавливали у себя, а оно не работало, и их родители звонили моим родителям и орали: «Твой сын содрал с моего ребенка пять долларов за эту дрянь, которая не работает». Мама отвозила меня туда и ждала в каком-нибудь тупике, пока я занимался отладкой и исправлял ошибки.

Сейбел: В то время вы посещали какие-нибудь занятия по программированию?

Фицпатрик: Если честно, нет. Была пара книг из библиотеки, ну, и возня с компьютером. У меня не было ни форумов, ни Интернета. Как-то я зашел на BBS[18], но там не было ничего полезного. Она не была подключена к Сети, там только играли в настольные игры.

Сейбел: В вашей школе был факультатив по информатике или что-то подобное?

Перейти на страницу:

Похожие книги

Адмирал Советского Союза
Адмирал Советского Союза

Николай Герасимович Кузнецов – адмирал Флота Советского Союза, один из тех, кому мы обязаны победой в Великой Отечественной войне. В 1939 г., по личному указанию Сталина, 34-летний Кузнецов был назначен народным комиссаром ВМФ СССР. Во время войны он входил в Ставку Верховного Главнокомандования, оперативно и энергично руководил флотом. За свои выдающиеся заслуги Н.Г. Кузнецов получил высшее воинское звание на флоте и стал Героем Советского Союза.В своей книге Н.Г. Кузнецов рассказывает о своем боевом пути начиная от Гражданской войны в Испании до окончательного разгрома гитлеровской Германии и поражения милитаристской Японии. Оборона Ханко, Либавы, Таллина, Одессы, Севастополя, Москвы, Ленинграда, Сталинграда, крупнейшие операции флотов на Севере, Балтике и Черном море – все это есть в книге легендарного советского адмирала. Кроме того, он вспоминает о своих встречах с высшими государственными, партийными и военными руководителями СССР, рассказывает о методах и стиле работы И.В. Сталина, Г.К. Жукова и многих других известных деятелей своего времени.Воспоминания впервые выходят в полном виде, ранее они никогда не издавались под одной обложкой.

Николай Герасимович Кузнецов

Биографии и Мемуары
100 великих гениев
100 великих гениев

Существует много определений гениальности. Например, Ньютон полагал, что гениальность – это терпение мысли, сосредоточенной в известном направлении. Гёте считал, что отличительная черта гениальности – умение духа распознать, что ему на пользу. Кант говорил, что гениальность – это талант изобретения того, чему нельзя научиться. То есть гению дано открыть нечто неведомое. Автор книги Р.К. Баландин попытался дать свое определение гениальности и составить свой рассказ о наиболее прославленных гениях человечества.Принцип классификации в книге простой – персоналии располагаются по роду занятий (особо выделены универсальные гении). Автор рассматривает достижения великих созидателей, прежде всего, в сфере религии, философии, искусства, литературы и науки, то есть в тех областях духа, где наиболее полно проявились их творческие способности. Раздел «Неведомый гений» призван показать, как много замечательных творцов остаются безымянными и как мало нам известно о них.

Рудольф Константинович Баландин

Биографии и Мемуары
100 великих интриг
100 великих интриг

Нередко политические интриги становятся главными двигателями истории. Заговоры, покушения, провокации, аресты, казни, бунты и военные перевороты – все эти события могут составлять только часть одной, хитро спланированной, интриги, начинавшейся с короткой записки, вовремя произнесенной фразы или многозначительного молчания во время важной беседы царствующих особ и закончившейся грандиозным сломом целой эпохи.Суд над Сократом, заговор Катилины, Цезарь и Клеопатра, интриги Мессалины, мрачная слава Старца Горы, заговор Пацци, Варфоломеевская ночь, убийство Валленштейна, таинственная смерть Людвига Баварского, загадки Нюрнбергского процесса… Об этом и многом другом рассказывает очередная книга серии.

Виктор Николаевич Еремин

Биографии и Мемуары / История / Энциклопедии / Образование и наука / Словари и Энциклопедии