Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста

Тут можно читать онлайн Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста - бесплатно ознакомительный отрывок. Жанр: Биографии и Мемуары, издательство Символ-Плюс, год 2011. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Кодеры за работой. Размышления о ремесле программиста
  • Автор:
  • Жанр:
  • Издательство:
    Символ-Плюс
  • Год:
    2011
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-93286-188-2
  • Рейтинг:
    3.4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста краткое содержание

Кодеры за работой. Размышления о ремесле программиста - описание и краткое содержание, автор Питер Сейбел, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Программисты - люди не очень публичные, многие работают поодиночке или в небольших группах. Причем самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове. Питер Сейбел, писатель-программист, снимает покров таинственности с этой профессии. Он взял интервью у 15 величайших профессионалов: Кена Томпсона, создателя UNIX, Верни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Саймона Пейтон-Джонса, Питера Норвига, Джошуа Блоха, Брэда Фицпатрика, создателя Живого Журнала, и других. Все они “подсели” на программирование еще в школе. Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу.

Вы узнаете, что они думают о будущем программирования и как сами научились программировать, как, по их мнению, нужно проектировать ПО, как выбор языка программирования влияет на продуктивность и можно ли облегчить выявление труднонаходимых ошибок.

Кодеры за работой. Размышления о ремесле программиста - читать онлайн бесплатно ознакомительный отрывок

Кодеры за работой. Размышления о ремесле программиста - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Питер Сейбел
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Кнут:Верно.

Сейбел:Каким образом вам удается так относиться к своим программам? Программисты зачастую хотят защитить свое дитя, поэтому они, как правило, стараются не очень усердно тестировать свои программы.

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

Например, одно из моих лучших профессиональных достижений во время работы в Burroughs Corporation было связано с деятельностью по обнаружению ошибок в устройстве их аппаратного обеспечения. Их инженеры показывали мне спецификации для своих компьютеров, а мне нужно было сконструировать примеры, при которых они бы ошибались на единицу или что-то вроде того. Я нашел свыше 200 ошибок в их компьютерах серии В-5000, прежде чем они поступили в производство, хотя перед этим они прошли тест на эмуляторах.

Сейбел:То есть, по сути, вы изобретали программы, которые были верны с точки зрения семантики языка, но машина исполняла их некорректно?

Кнут:Да. Конечно же, если у них плавающая запятая неправильно вычисляла произведение двух чисел, я пытался найти примеры чисел, когда плавающая запятая не работала. Кроме того, иногда они реали-зовывали стек аппаратно, и у них были ситуации, когда регистры были пусты или не на верху стека, и я пытался придумать сценарии, в которых их логика не работала.

Сейбел:Вы делали это по какой-то системе? Как вы находили все эти вещи?

Кнут:Может быть, я просто излишне придирчив? Не знаю. Но если я пытаюсь что-то доказать, например теорему, если речь о математике, а не доказать правоту чего-либо, то мне, как правило, проще сказать: “Давайте найдем контрпример”. Я могу просто завестись, отыскивая дырку во всем этом или пытаясь объяснить, почему это не работает. Если же не могу найти никаких дырок, то вижу доказательство.

Думаю, все дело во мне - я люблю придираться и отыскивать ошибки. Мне гораздо интереснее, когда я выступаю против чего-либо, а не просто сижу и приговариваю: “Ага, да, это работает. Интересно, почему?”

Сейбел:Любопытно, что именно это движет вас вперед, хотя всю свою жизнь вы посвятили объяснению проблем. Не думаете ли вы, что такой подход подпитывает ваше стремление все объяснять?

Кнут:Единственное, что можно утверждать по поводу моих объяснений, - я пытаюсь совместить в естественном мыслительном процессе наблюдения за явлениями одновременно два разных способа, чтобы понять что-либо лучше. Думаю, чрезвычайно важно видеть вещи объемно, а не в одном измерении. Не знаю, как это связано с моей придирчивостью.

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

Сейбел:Еще один вывод, который вы вынесли из работы над ТеХ - вы об этом писали в “The Errors of ТеХ” (Ошибки ТеХ), - нужно фиксировать каждую ошибку, обнаруженную в программе. Ребята вроде сотрудников Института разработки ПО считают, что процесс разработки ПО можно назвать взвешенным и зрелым, если вы отслеживаете все ваши ошибки и пытаетесь понять, как предотвратить подобные ошибки в будущем. Но вы говорили о том, что ведение журнала ошибок никоим образом не помогает вам предотвращать появление ошибок в будущем.

Кнут:Верно. Хотя и не сказать, что без этого журнала ничего бы не изменилось в худшую сторону.

Сейбел:Но разве вы не думали: “Ага, теперь, когда я увидел эту ошибку, я ее больше не повторю”?

Кнут:Мне просто нужно узнать и признать свои грехи. Если использовать богословскую терминологию, то можно сказать, что все люди нуждаются в отпущении грехов.

Сейбел:То есть вы замечали ошибки в своих программах и думали про себя: “Ох, я снова сделал ту же самую ошибку”.

Кнут:Да.

Сейбел:Почему же так? Может быть, дело в какой-то особой природе ошибок, что особенно затрудняет усвоение урока и недопущение подобных ошибок в будущем?

Кнут:Думаю, скорее всего, дело в том, что я пытаюсь заниматься все более сложными вещами. Я всегда пробую то, что требует от меня максимум усилий. Если бы мне нужно было сейчас вернуться и написать эти программы еще раз - те, которые полегче, - я бы не допустил так много ошибок. Но теперь, зная немного больше, я пытаюсь писать более сложные программы. То есть я совершаю ошибки, потому что всегда работаю на пределе своих способностей. Работать, никогда не покидая зоны комфорта, - это же скучно.

Сейбел:То есть теоретически вы могли бы продолжать писать системы для верстки текста до конца своей жизни?

Кнут:Да, они бы у меня выходили весьма неплохо. Но мы постоянно поднимаем для себя планку и неизбежно задеваем ее. Мы работаем с тем, как уже говорилось, что находится на пределе человеческих возможностей, и то, что мы делаем сейчас, еще сложнее того, с чем нам приходилось сталкиваться раньше.

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

Таким образом, нам никуда не деться от ошибок, разве что мы откажемся писать программы, расширяющие наши способности. Так как же нам делать это лучше? Каждые три года появляется новое модное словечко для обозначения новой панацеи - той, что решит все проблемы и с чем все будет работать без сбоев.

Последние два-три года новой панацеей считалось экстремальное программирование. До этого было еще что-то. Потом еще кто-нибудь придумает очередное решение всех проблем, и многие вспрыгнут на подножку этого поезда, но потом им придется задуматься: “Черт, а ведь по-прежнему не все так уж легко”.

Сейбел:Изменился ли со временем тип человека, который может стать хорошим программистом?

Кнут:Судя по моему многолетнему опыту, практически всегда, когда я встречаю 100 человек из той или иной группы населения (не считая студентов специальности “компьютерные науки”), двое из них - программисты, в том смысле что действительно находят общий язык с машиной. В городе Василла (Аляска) проживает 10 000 человек, соответственно там должно быть 200 программистов.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Питер Сейбел читать все книги автора по порядку

Питер Сейбел - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Кодеры за работой. Размышления о ремесле программиста, автор: Питер Сейбел. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x