понедельник, 11 мая 2009 г.

Книга Джоэла Спольски "Джоэл о программировании"

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

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

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

Первый вопрос, который может возникнуть у простого программиста, что книга предназначена для менеджеров проектов, а простому программисту она ни к чему. И будете не правы. Джоэл дает четкие советы о том, как простой программист можем многое изменить в работе своей команды. Конечно, книга не сделает из вас супер программиста за две недели, да и наличие этой книги на полке не переведет вас автоматически в менеджеры, но может здорово повысить как вашу личную эффективность, так и эффективность вашей команды.

Далеко не каждая страница книги носит практический характер. Многие из них являются философскими и заставляют задуматься над вопросами, которые рано или поздно посещают наши светлые головы. Как часто мы сталкиваемся с разными священными войнами, типа Windows vs Unix, C++ vs C# и многих других? У Джоэла есть интересные мысли на этот счет. Это не значит, что он знает, что на самом деле лучше. Он просто говорит о том, что есть такая вещь, как культурные особенности, или о том, что нет унивесальных средств, подходящих в любых ситуациях. Ему можно верить или не верить, это зависит от ваших культурных традиций, опыта и много другого. Но всегда полезно посмотреть на вещи немного с другой точки зрения. Нельзя сказать, что книга идеальна, что все главы одинаково сильные и интересные. Иногда автора заносит и он приводит не самые удачные примеры, за которыми сложно уловить его исходный замысел. Есть темы, которые были актуальны именно в момент написания статей, а сейчас уже стали историей. Но таких глав меньшинство и они нисколько не портят впечатление.

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

Вердикт: must read.

Перевод: отлично.