Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста
Все авторские права соблюдены. Напишите нам, если Вы не согласны.
Описание книги "Кодеры за работой. Размышления о ремесле программиста"
Описание и краткое содержание "Кодеры за работой. Размышления о ремесле программиста" читать бесплатно онлайн.
Программисты - люди не очень публичные, многие работают поодиночке или в небольших группах. Причем самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове. Питер Сейбел, писатель-программист, снимает покров таинственности с этой профессии. Он взял интервью у 15 величайших профессионалов: Кена Томпсона, создателя UNIX, Верни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Саймона Пейтон-Джонса, Питера Норвига, Джошуа Блоха, Брэда Фицпатрика, создателя Живого Журнала, и других. Все они “подсели” на программирование еще в школе. Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу.
Вы узнаете, что они думают о будущем программирования и как сами научились программировать, как, по их мнению, нужно проектировать ПО, как выбор языка программирования влияет на продуктивность и можно ли облегчить выявление труднонаходимых ошибок.
Работа с Живым Журналом, популярность которого стремительно росла, заставила Фицпатрика освоить трудную науку создания расширяемых веб-сайтов. Попутно он вместе с другими программистами основанной им компании 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 и использовала другой набор изображений, подходящих для этого режима, так что нам везде требовалось два набора графики. Школьники покупали это дело баксов за пять и устанавливали у себя, а оно не работало, и их родители звонили моим родителям и орали: “Твой сын содрал с моего ребенка пять долларов за эту дрянь, которая не работает”. Мама отвозила меня туда и ждала в каком-нибудь тупике, пока я занимался отладкой и исправлял ошибки.
Сейбел: В то время вы посещали какие-нибудь занятия по программированию?
Фицпатрик: Если честно, нет. Была пара книг из библиотеки, ну, и возня с компьютером. У меня не было ни форумов, ни Интернета. Как-то я зашел на BBS[18], но там не было ничего полезного. Она не была подключена к Сети, там только играли в настольные игры.
Сейбел: В вашей школе был факультатив по информатике или что-то подобное?
Фицпатрик: Нет, но у нас были уроки информатики. Вел занятия один парень, а потом я потихоньку стал вести что-то вроде продвинутых курсов. Они до сих пор используют графический редактор и графическую библиотеку, которую я написал; конечной целью курса была разработка игры. Я иногда встречаю этого учителя информатики - моя семья с ним дружит, и мы видимся на футбольных матчах, в которых участвует мой брат. И он говорит мне: “Мы до сих пор используем твои библиотеки”.
Я сдал тест повышенного уровня по информатике. Это был последний год, когда тесты сдавали на Паскале, потом все перешли на Си, а еще через год - на Java или что-то вроде того. Я не знал Паскаль, поэтому ходил в соседнюю школу, в которой был факультатив по программированию. Я посещал три-четыре вечерних курса, потом нашел книгу и изучил этот язык. Большую часть времени я рисовал с помощью Паскаля звезды, потому что только что изучил тригонометрию. “О, синус и косинус, забавно. Можно растягивать, сжимать и все такое”.
Сейбел: Что вы получили за этот тест?
Фицпатрик: О, я получил пятерку. Мне нужно было создать классы больших целых чисел. Теперь это одно из заданий, которое я даю на собеседованиях: “Создайте класс для произвольных манипуляций с большими целыми, включая умножение и деление”. Если я сделал это, будучи старшеклассником, то и кандидаты должны справиться.
Сейбел: Летом, перед началом обучения в колледже, вы работали в компании Intel. Вы работали программистом в конце школы?
Фицпатрик: Да, я работал какое-то время в компании Tektronix. Перед тем как получить официальную работу, у меня была хостинговая учетная запись. Но AOL[19] ее прикрыла за создание ботов, зафлуживание их чатов и просто за назойливость. Я тогда написал сценарий, запускающий AOL-клиент из другой Windows-программы. Еще я написал бот, чтобы постоянно заполнять онлайновую форму ввода для получения от них компакт-дисков. Я использовал разные варианты своего имени, чтобы их программа защиты от дублирования не отправила мне всего лишь один диск, поскольку каждый из них предоставлял 100 или 5000 часов бесплатной работы. Я ввел данные несколько тысяч раз, так что где-то неделю почтальон приносил мне пачки дисков.
Мама уже начала говорить: “Черт возьми, Брэд, у тебя будут неприятности!” А я говорил: “А вот и нет, эта долбаная компания сама виновата”. Однажды дома раздался звонок, я поднял трубку, чего обычно не делал, - звонили из AOL. Этот тип заорал: “Прекратите присылать нам эти заявки!” Я обычно туго соображаю, но тут сразу нашелся и проорал в ответ: “Зачем вы шлете мне эту хрень?! Каждый день почтальон тащит кучу дисков!” Он даже опешил: “Извините, это больше не повторится”. Я украсил ими свою комнату в колледже. Они до сих пор лежат в коробке в гараже. Не могу от них избавиться, потому что все еще помню, как они когда-то классно смотрелись на стенах.
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Кодеры за работой. Размышления о ремесле программиста"
Книги похожие на "Кодеры за работой. Размышления о ремесле программиста" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста"
Отзывы читателей о книге "Кодеры за работой. Размышления о ремесле программиста", комментарии и мнения людей о произведении.