Кодеры за работой. Размышления о ремесле программиста
Шрифт:
Вот то, что запомнилось из ранних программ. Потом, в средней школе, я уже писал игры, графические редакторы и редакторы уровней для своих друзей, а друзья делали графику для разных уровней, и мы продавали эти игры своим одноклассникам. Помню, что делал игры, которые определяли режим монитора, EGA или VGA. Если игра не могла использовать режим VGA, то переходила обратно в EGA и использовала другой набор изображений, подходящих для этого режима, так что нам везде требовалось два набора графики. Школьники покупали это дело баксов за пять и устанавливали у себя, а оно не работало, и их родители звонили моим родителям и орали: “Твой сын содрал с моего ребенка пять долларов
Сейбел: В то время вы посещали какие-нибудь занятия по программированию?
Фицпатрик: Если честно, нет. Была пара книг из библиотеки, ну, и возня с компьютером. У меня не было ни форумов, ни Интернета. Как-то я зашел на BBS [18] , но там не было ничего полезного. Она не была подключена к Сети, там только играли в настольные игры.
Сейбел: В вашей школе был факультатив по информатике или что-то подобное?
18
BBS (Bulletin Board System) - электронная доска объявлений. Когда кабельные компьютерные сети были редкостью, пользователи компьютеров широко применяли этот способ общения посредством коммутируемых телефонных сетей.
– Прим. науч.ред.
Фицпатрик: Нет, но у нас были уроки информатики. Вел занятия один парень, а потом я потихоньку стал вести что-то вроде продвинутых курсов. Они до сих пор используют графический редактор и графическую библиотеку, которую я написал; конечной целью курса была разработка игры. Я иногда встречаю этого учителя информатики - моя семья с ним дружит, и мы видимся на футбольных матчах, в которых участвует мой брат. И он говорит мне: “Мы до сих пор используем твои библиотеки”.
Я сдал тест повышенного уровня по информатике. Это был последний год, когда тесты сдавали на Паскале, потом все перешли на Си, а еще через год - на Java или что-то вроде того. Я не знал Паскаль, поэтому ходил в соседнюю школу, в которой был факультатив по программированию. Я посещал три-четыре вечерних курса, потом нашел книгу и изучил этот язык. Большую часть времени я рисовал с помощью Паскаля звезды, потому что только что изучил тригонометрию. “О, синус и косинус, забавно. Можно растягивать, сжимать и все такое”.
Сейбел: Что вы получили за этот тест?
Фицпатрик: О, я получил пятерку. Мне нужно было создать классы больших целых чисел. Теперь это одно из заданий, которое я даю на собеседованиях: “Создайте класс для произвольных манипуляций с большими целыми, включая умножение и деление”. Если я сделал это, будучи старшеклассником, то и кандидаты должны справиться.
Сейбел: Летом, перед началом обучения в колледже, вы работали в компании Intel. Вы работали программистом в конце школы?
Фицпатрик: Да, я работал какое-то время в компании Tektronix. Перед тем как получить официальную работу, у меня была хостинговая учетная запись. Но AOL [19] ее прикрыла за создание ботов, зафлуживание их чатов и просто за назойливость. Я тогда написал сценарий, запускающий AOL-клиент из другой Windows-программы. Еще я написал бот, чтобы постоянно заполнять онлайновую форму ввода для получения от них компакт-дисков. Я использовал разные варианты
19
AOL - America Online, американская медиакомпания, поставщик онлайновых сервисов.
– Прим. науч. ред.
Мама уже начала говорить: “Черт возьми, Брэд, у тебя будут неприятности!” А я говорил: “А вот и нет, эта долбаная компания сама виновата”. Однажды дома раздался звонок, я поднял трубку, чего обычно не делал, - звонили из AOL. Этот тип заорал: “Прекратите присылать нам эти заявки!” Я обычно туго соображаю, но тут сразу нашелся и проорал в ответ: “Зачем вы шлете мне эту хрень?! Каждый день почтальон тащит кучу дисков!” Он даже опешил: “Извините, это больше не повторится”. Я украсил ими свою комнату в колледже. Они до сих пор лежат в коробке в гараже. Не могу от них избавиться, потому что все еще помню, как они когда-то классно смотрелись на стенах.
После этого мою учетную запись в AOL заблокировали, а я зарегистрировал учетную запись у одного из местных shell-провайдеров. Тогда я, по сути, и научился работать с UNIX. Я не мог запускать CGI-скрипты, но мог загружать данные на сервер по FTP, поэтому я запускал разную ерунду, написанную на Perl на домашнем компьютере, которая создавала сайт целиком и затем загружала его на сервер. Потом я получил временную летнюю работу в Tektronix. Я хорошо знал Perl и всякие веб-штуки, но никогда не работал с динамическими веб-страницами. Это был 1994 или 1995 год - Сеть тогда была делом совсем новым.
Итак, я пришел в Tektronix. В первый же день они поставили меня перед чем-то и говорят: “Вот твой компьютер”. Это была большая рабочая станция SPARCstation или что-то вроде того, где крутились X и Motif. А потом: “Вот твой броузер”. Кажется, это был Netscape 2, точно не помню. И еще: “Все свои CGI-скрипты записывай в этот каталог”. Помню, как взял какой-то элементарный CGI-скрипт в три строки, чтобы посмотреть его вечером, и подумал: “Черт, здорово-то как!” На следующий день я был на работе уже в шесть утра, просто тронулся на этих CGI.
Потом я занялся динамическим веб-программированием для себя. Где-то в то же время я нашел веб-сервер под Windows с поддержкой CGI. Я убедил своего провайдера - я был на хорошем счету, по крайней мере, вел себя достаточно умно, чтобы мне начали доверять, - и мне сказали: “Ладно, запустим твои CGI, но сначала их проверим”. Они просмотрели их и разместили в своем каталоге. Так и начался мой скрипт Voting Booth, где можно создать тему, например “Твой любимый фильм”, добавлять нужную информацию и голосовать. Он становился все популярнее. Потом я еще пару лет занимался им параллельно основной работе.
Сейбел: Так был создан сайт FreeVote?
Фицпатрик: Да, он стал сайтом FreeVote после того, как мой компьютер перестал справляться с нагрузкой. В то время реклама на баннерах была уже весьма популярна (или стремительно становилась популярной), и я получал все больше и больше денег, заключал все более выгодные контракты с более высокой платой за щелчок. Я дошел до 27 центов за щелчок на одном баннере, а это и по сегодняшним меркам до нелепости много. Так что я получал до 25-27 тысяч в месяц за дурацкие щелчки на баннерах.