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

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

Интервью бывают занимательными

Питер Сейбел: Но вам ведь все еще интересно программировать самому?
Дональд Кнут: Разумеется, да. Мне просто необходимо программировать. Я просыпаюсь утром, и у меня уже готово несколько предложений литературной программы. Перед завтраком — уверен, поэтам это знакомо — я должен сесть за компьютер и записать этот абзац, и только потом могу идти есть, и я счастлив. Без этого я не могу, должен это признать.

Ладно, давайте я расскажу о программе, которую написал вчера...

Часто встречаюсь с дискуссиями о том, что каждый человек должен развиваться не просто во всех направлениях, а в том числе и углубленно по своей сфере профессиональной деятельности. Если говорить о таком аспекте чтения профессиональной литературы, то часто всё сводится к изучению новейших технологий, изучении статей в ведущих журналах, научно-популярной литературе по профилю. Все это правильно, но очень часто отсутствуют такие книги, источники информации, где можно было бы почерпнуть не только профессиональную информацию, но и чисто профориентационную, психологическую, причем исходящую не из учебника или специальной книги, написанной каким-то рядовым профессором-методистом. Хочется узнавать мнение "из первых уст". Именно поэтому сейчас стало очень модным читать именно блоги ведущих специалистов отрасли, блоги ведущих компаний и т.п. Кроме рекламных трюков или самохвалебности можно прочитать там и нечто полезное, например, дельные рекомендации, элементы своего опыта учета проб и ошибок, вехи творческого пути, списки полезной литературы для каждого специалиста и т.п.

В области информационных технологий я ранее не встречал книг, в которой можно было бы почерпнуть такую информацию из первых уст. Да, можно сказать, компьютерщикам повезло - кому как не им проще всего быть на короткой ноге в сети с коллегами-специалистами. Компьютерщики имеют несколько замечательных сайтов, где публикуются новости, новинки ПО, новые фишки, аналитика и т.п., таких как habrahabr, slashdot, stackoverflow, reddit, codeproject. С ними можно иметь "всё под контролем". Но собрать или "загнать" туда ведущих профи не удастся никому, а, порой, хочется узнать мнение не только коллег, которые чуть лучше-чуть хуже тебя, но и тех самых "мэтров эпохи".

Питер Сейбел как раз и взял интервью у таких мэтров и задавал им вполне аналогичные вопросы, так что молодые и уже опытные программисты смогут прочитать о буднях этих "профи из профи", взять на вооружение их рекомендации, подсмотреть их методы работы, коммуникации, формирования креативных идей, мысли о прошлом и будущем программирования как подотрасли ИТ. В итоге получилась целая книга-интервью, довольно занимательная.

Собеседники Питера Сейбела:
- тот самый-самый... Дональд Кнут, академик-программист №1, автор томиков "Искусство программирования" - одного из 12 самых важных естественнонаучных исследований двадцатого века;
- Кен Томпсон, создатель операционной системы UNIX;
- Берни Козелл, гений кода, участник первой реализации сети ARPANET - основы будущего Интернета;
- Брэд Фицпатрик, создатель Живого Журнала (Live Journal);
- Джошуа Блох, главный Java-архитектор в Google;
- Брендан Айк, создатель языка JavaScript, технический директор Mozilla Corporation;
- Саймон Пейтон-Джонс, ведущий исследователь лаборатории Microsoft Research, реализатор Haskell;
- Л. Питер Дойч, почетный член АСМ, реализатор языка Лисп, создатель языка Ghostscript;
- Джо Армстронг, создатель языка программирования Erlang
- Джейми Завински, один из первых разработчиков Netscape Navigator, основатель mozilla.org;
- Питер Норвиг, промышленный исследователь сначала NASA, затем Google
- Дэн Ингаллс, реализатор Smalltalk;
- Фрэн Аллен, промышленный исследователь, женщина, программист с 45-летним стажем работы в IBM;
- Дуглас Крокфорд, старший архитектор JavaScript;
- Гай Стил, программист-полиглот;
- Кен Томпсон, создатель шахматного компьютера Belle, внедренец UTF-8.

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

Для меня эта книга в любом случае оказалась полезной.

malgarr написал(а) рецензию на книгу
Оценка:

Хорошая книга, для медленного чтения, по главе в день. Автор своё дело знает и почти везде где надо интервьюируемых дожимает, но некоторые места все же так и хочется откомментировать :)


Джейми Завински


...мы всегда выпускали версии под все платформы одновременно. Это решение они тоже считали глупым: "У 90% пользователей версии под Windows, так что мы сосредоточим усилия на работе версии под Windows, а позже портируем ее под остальные платформы". Так поступали многие компании, потерпевшие крах. ... Если вы действительно хотите выпускать кроссплатформенное решение, то разрабатывать всё нужно одновременно. А портирование приводит к паршивому результату на второй платформе.
...
Была и еще одна книга, которую все считали величайшим трудом своего времени: "Design Patterns". По-моему, отстой. Там учили программировать методом "вырезания и вставки".


Copy-paste идиом программирования . Есть такое подозрение, что "Design Patterns" ему Рабинович по телефону напел :))


Брендан Айк


Объектно-ориентированное програмиирование, шаблоны проектирования - это не для меня. Я так и не купил книгу Эриха Гаммы.
...
У меня страшная аллергия на всякого рода эзотерические решения, шаблоны проектирования, доступные немногим. Питер Норвиг, работая в Harlequin, сказал о том, что шаблоны проектирования - всего лишь дефекты в вашем языке. Возьмите язык получше!


Вот здесь хотелось бы по конкретнее. Есть, например, протокол, реализованный как State-машина на C++, берем более лучший язык и? состояния-то и переходы между ними ни куда не делись... Или более лучший - это со встроенной State-машиной? Непонятно...


Джошуа Блох


- Есть ли книги, которые должен прочесть каждый программист?
- Разумеется, "Design Patterns", хотя я отношусь к ней не совсем однозначно. Она дает общий для всех словарь. И в ней масса хороших идей. С другой стороны, мешанина стилей и языков.


Мешанины языков не заметил, а вот написана отвратительно, факт. Сейчас лучше брать сразу "Паттерны проектирования" Фрименов и Со


Джо Армстронг


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


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


Саймон Пейтон-Джонс


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


Со своим - это да :(


Гай Стил


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


Как и любая программа - пока жива, просят что-то поменять, как только замолчали - значит померла, никто больше не использует.


Берни Козелл


Впервые попробовав Java - еще совсем молодой тогда язык, - я сказал себе: "А, еще один язык, призванный помочь посредственным программистам встать на путь истинный, ограничивая их". Но, возможно, сейчас это и правильно.
...
Наверное, Си - идеальный язык для по настоящему хороших системных программистов, но увы, его много используют и программисты похуже, а не стоило бы.
...
После этого на планерках они спорили со мной: "Почему вы жалуетесь, что я прописал глобальные переменные здесь, что я делаю то-то и то-то, что вам не нравится моя структура подпрограмм? Программа же работает?"
Их удивлению не было предела, когда я отвечал: "Конечно, программа работает. Вас взяли сюда именно потому, что вы умеете писать работающие программы. Написание программ - чисто ремесленный навык, и у вас он есть. А теперь вам нужно научиться программировать."


Как я до сих пор никому не дал в лоб за вот это Программа же работает?, просто поражаюсь :) своему ангельскому терпению


Дональд Кнут


Я узнал очень много нового, пока работал над этим проектом. В частности узнал, как много ресурсов вашего мозга съедает разработка ПО. Это оказалось намного более сложным заданием, чем я ожидал. Я не мог одновременно преподавать на полную ставку и полноценно заниматься разработкой ПО. Но я мог преподавать на полную ставку и полноценно заниматься написанием книг; ПО же требовало невероятного внимания к мельчайшим деталям. Мой мозг был забит только программным обеспечением, так что я не мог думать ни о чем другом.


Про съедение мозга дедушка Кнут заметил архиверно :(

Ну и отдельное спасибо товарищам maniac, Алёна C++ и sergeyteplyakov, которые сделали так, что книгу битком набитую программистским жаргоном можно без содрогания (и даже более того) читать на русском.

Зарубки на память: Кодеры за работой

Dzhin написал(а) рецензию на книгу
Оценка:

Интервью с признаными мастерами в программировании. Мне, как их коллеге, очень интересно узнать их стили работы, инструменты, их взгляды. Интересны их рекомендации по поводу специализированной литературы. И конечно узнать как развивалось программирование, как появлялись языки, инструменты, компьютеры. Как развивались сами мэтры.

Но, процитирую из книги Джошуа Блоха (евангелиста Java в Google): "...Наверно, я кажусь неандертальцем...". Некоторые до сих пор пользуются print, а не точкой останова в отладчиках. Не пользуются последними, важными, навороченными инструментами. Правда, мэтру Дональду Кнуту отладчики не нужны. ;-)

Все равно книга полезна, как будто сам побеседовал с гуру на животрепещующие темы в программировании. Плюс в одной книге по многим моментам изложено несколько точек зрений. А "побеседовать" на новомодные темы, тренды, отсутствующие в книге, можно с другими гурами в их блогах, читая их книги, статьи. Лично для меня почти все имена интервьюруемых встретились первый раз, так что можно сказать: заочно "познакомился" с кучей интересных, приятных собеседников. Предупреждение: книга для молодых, упертых фанатов программирования, которые большей частью хотят совершить небольшую экскурсию в прошлое, к истокам программирования и познакомиться с мастодонтами.

Через некоторое время пришел к мнению, что книгу все же надо читать неспеша: переваривая каждое интервью и делая недельные перерывы. Очень много фактов, терминов, мнений и аргументов. Начал перечитывать сей труд. В интервью с Джо Армстронгом повторно порадовало его мнение об объектно-ориентированном программировании: "Ведь объектно-ориентированные языки тянут за собой всю неявно окружающую их среду. Вы хотели только банан, а получили еще и гориллу, которая держит этот банан, и все джунгли впридачу…" :-D

lapl4rt написал(а) рецензию на книгу
Оценка:

Я не любитель читать интервью, даже с интересными мне людьми. Если уж читать о человеке, то пусть это будет продуманная и выверенная биография.

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

Блоги большинства людей я периодически читаю, про их карьеру знаю лучше, чем про карьеру своего непосредственного начальника, тем не менее, почитать структурированную информацию, полученную до этого из разрозненных источников, полезно и интересно.
Хорошо, что собрано столько людей с разными мнениями на работу в команде, на код, спецлитературу, рефакторинг - единого стиля нет, идеальной методики тоже нет: неопытные ит-специалисты часто пытаются найти "то самое" правильное решение, "самый верный" стиль, "самое лучшее" по, "самый-самый" яп для постоянного использования в дальнейшем. ИТ-сфера развивается не по дням, а по часам: то, что сегодня в тренде, завтра - прошлый век, поэтому постоянное развитие, чтение новейшей специализированной литературы, использование новых инструментов для работы - это все про программистов, и чтобы быть в кассете, надо выдерживать такой ритм.

iovomod написал(а) рецензию на книгу
Оценка:

Я не любитель читать интервью, даже с интересными мне людьми. Если уж читать о человеке, то пусть это будет продуманная и выверенная биография.

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

Блоги большинства людей я периодически читаю, про их карьеру знаю лучше, чем про карьеру своего непосредственного начальника, тем не менее, почитать структурированную информацию, полученную до этого из разрозненных источников, полезно и интересно.
Хорошо, что собрано столько людей с разными мнениями на работу в команде, на код, спецлитературу, рефакторинг - единого стиля нет, идеальной методики тоже нет: неопытные ит-специалисты часто пытаются найти "то самое" правильное решение, "самый верный" стиль, "самое лучшее" по, "самый-самый" яп для постоянного использования в дальнейшем. ИТ-сфера развивается не по дням, а по часам: то, что сегодня в тренде, завтра - прошлый век, поэтому постоянное развитие, чтение новейшей специализированной литературы, использование новых инструментов для работы - это все про программистов, и чтобы быть в кассете, надо выдерживать такой ритм.