Чтение онлайн

на главную - закладки

Жанры

Кодеры за работой. Размышления о ремесле программиста
Шрифт:

Сейбел: С другой стороны, программирование стало гораздо доступнее. Вам уже не нужно осваивать все премудрости ассемблера, прежде чем заставить компьютер делать что-то классное.

Завински: Да. Наверное, современные ребята, которые сегодня учатся программированию, начинают с создания веб-приложений, разработки плагинов для Facebook и тому подобного. Брэд Фицпатрик, создатель Живого Журнала (LiveJournal), — мой друг. LiveJournal родился, когда он просто валял дурака и написал скрипт на Perl, чтобы вместе с друзьями сообщать друг другу что-то вроде «Я собираюсь пообедать». Все началось с небольшого скрипта на Perl, который

он затем поместил на веб-сервер. Вероятно, это направление будет развиваться и дальше.

2. Брэд Фицпатрик

Брэд Фицпатрик — самый молодой из моих собеседников и единственный, кто никогда не жил в мире без Интернета или персональных компьютеров. Родился в 1980 году, очень рано занялся программированием — уже в пять лет стал учиться программировать на самодельной копии Apple II. Когда Брэд был подростком, интернет-революция уже развернулась в полную мощь, и он принял в ней активное участие: в старших классах разработал свой первый коммерческий веб-сайт, а летом перед поступлением в колледж начал работу над популярным сообществом LiveJournal (Живой Журнал).

Работа с Живым Журналом, популярность которого стремительно росла, заставила Фицпатрика освоить трудную науку создания расширяемых веб-сайтов. Попутно он вместе с другими программистами основанной им компании Danga Interactive разработал несколько программ с открытым кодом, таких как memcached, Perlbal и MogileFS, которые сегодня применяются на серверах, обслуживающих самые загруженные в мире сайты.

Фицпатрик — типичный (пусть и добившийся необычайных успехов) программист рубежа двух столетий: его основными языками программирования были Perl и Си, хотя при необходимости он работал и с такими языками, как Java, C++, Python, JavaScript и C#. Так или иначе, с сетями связано почти все, что он программирует, — более совершенная инфраструктура веб-сайта, новые протоколы и ПО для лучшего учета записей при обновлении блогов, свой мобильный телефон на автоматическое открытие гаражной двери во время мотоциклетного заезда.

Мы говорили о том, как это — учиться программировать, когда еще читаешь книжки про Красного щенка Клиффорда, и почему Брэд рад, что остался учиться в колледже, одновременно работая над Живым Журналом, и о том, как он научился не бояться читать чужой код.

Сейбел: Как вы стали программистом?

Фицпатрик: Мой отец работал в компании 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 и использовала другой набор изображений, подходящих для этого режима, так что нам везде требовалось два набора графики. Школьники покупали это дело баксов за пять и устанавливали у себя, а оно не работало, и их родители звонили моим родителям и орали: «Твой сын содрал с моего ребенка пять долларов за эту дрянь, которая не работает». Мама отвозила меня туда и ждала в каком-нибудь тупике, пока я занимался отладкой и исправлял ошибки.

Поделиться:
Популярные книги

Аргумент барона Бронина 2

Ковальчук Олег Валентинович
2. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 2

Прометей: повелитель стали

Рави Ивар
3. Прометей
Фантастика:
фэнтези
7.05
рейтинг книги
Прометей: повелитель стали

Убивать чтобы жить 5

Бор Жорж
5. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 5

Газлайтер. Том 10

Володин Григорий
10. История Телепата
Фантастика:
боевая фантастика
5.00
рейтинг книги
Газлайтер. Том 10

Вечный. Книга IV

Рокотов Алексей
4. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга IV

Камень. Книга шестая

Минин Станислав
6. Камень
Фантастика:
боевая фантастика
7.64
рейтинг книги
Камень. Книга шестая

Сумеречный стрелок

Карелин Сергей Витальевич
1. Сумеречный стрелок
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный стрелок

Скандальный развод, или Хозяйка владений "Драконье сердце"

Милославская Анастасия
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Скандальный развод, или Хозяйка владений Драконье сердце

Дракон - не подарок

Суббота Светлана
2. Королевская академия Драко
Фантастика:
фэнтези
6.74
рейтинг книги
Дракон - не подарок

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Седьмая жена короля

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Седьмая жена короля

Третье правило дворянина

Герда Александр
3. Истинный дворянин
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Третье правило дворянина

Кодекс Крови. Книга VI

Борзых М.
6. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VI

Газлайтер. Том 18

Володин Григорий Григорьевич
18. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Газлайтер. Том 18