Прагматичный обзор программиста и интервью с Энди Хантом


Читайте дальше, чтобы увидеть интервью с автором!

Редко появляется книга, которая безвозвратно меняет ландшафт разработки программного обеспечения. Работает как Шаблоны проектирования Бандой четырех или Мифический человеко-месяц Фред Брукс стал основным продуктом индустрии и понимает требования к чтению для мастерства разработки программного обеспечения. Прагматичный программист является одной из этих великих книг и стала более применимой с момента ее первоначального выпуска в 1999 году.

Вам также может понравиться: Должен ли я читать книги как разработчик программного обеспечения?

В этом обзоре мы рассмотрим как оригинал Прагматичный программист и обновленный 20th Anniversary Edition и понять, почему каждый разработчик программного обеспечения – независимо от уровня опыта или языка программирования – должен читать эту книгу. Кроме того, мы узнаем мнение одного из авторов книги, Энди Ханта, о решениях, которые вошли в новую редакцию, и о том, где он ожидает развитие индустрии программного обеспечения в ближайшие несколько лет.

Оригинал

Хотя многие книги по программному обеспечению фокусируются на тонкостях конкретных языков или особенностях конкретных проблем, Прагматичный программист центры о том, как эффективно использовать программное обеспечение для решения проблем. В качестве подзаголовка – От подмастерья до мастера – подразумевает, что книга содержит информацию, которая прагматично вырастет как разработчик; не только как быть хорошим программистом, но и как решать сложные проблемы, связанные с кодированием, такие как:

  • Делать точные, но гибкие оценки.
  • Не повторять Не повторяйсяили СУХОЙ принцип).
  • Как ввести изменения, когда другие колеблются.
  • Как бороться со стагнацией как разработчик.

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

Прагматичный программист: 20-я годовщина издания

В то время как оригинальная работа все еще распространена сегодня, Энди и Дэйв пересмотрели оригинальную версию и создали еще один шедевр – 20th Anniversary Edition.

Семестр издание здесь используется слегка, так как новая книга – это не просто перефразировка оригинала (то есть, некоторые добавленные главы или обновленные примеры). Это издание 20th Anniversary Edition представляет собой модернизацию оригинала, которая включает в себя:

  • Твердый переплет, чтобы гарантировать, что это длится (большое улучшение, поскольку читатель, вероятно, возьмет это везде, где он или она пишет программное обеспечение и, вероятно, одолжит это несколько раз).
  • Тот же тон, что и в оригинале – с некоторыми из тех же самых основополагающих историй – но с использованием языка и контекста, которые разработчики в 2019 году привыкли слышать каждый день на работе.
  • 30 новых советов, в том числе по этике и тому, как порадовать пользователей.
  • Более выраженные темы – такие как Легко изменить – которые необходимы в быстро меняющемся, постоянно развивающемся мире разработки программного обеспечения, в котором мы живем.

решение суда

Многие книги претендуют на то, чтобы считаться обязательной или серебряной пулей для проблем разработки программного обеспечения, но Прагматичный программист: 20-я годовщина издания действительно должны прочитать и стоит с такими работами, как Шаблоны проектирования а также Мифический человеко-месяц, Его эффективность настолько ярко выражена, потому что не претендовать на серебряную пулю. Вместо этого, это просто коллекция опыта Энди и Дейва, которая так хорошо находит отклик у многих разработчиков.

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

Хотя рекомендованная производителем розничная цена (MSRP) книги составляет 49,99 долл. США, ее можно найти во многих местах гораздо дешевле, включая (все цены действительны на момент написания статьи):

По цене ценность этой книги намного превышает ее стоимость. Заинтересованный читатель может найти бесплатные главы и образцы книги на Сайт Прагматичного Программиста, Независимо от того, какой формат или магазин, просто прочитайте эту книгу от передней до задней обложки. Это стоит времени и денег.

Интервью с Энди Хант

Мне также была предоставлена ​​привилегия соединиться с одним из Прагматичный программист Авторы Энди Хант и задал ему несколько вопросов о новом издании книги и разработке программного обеспечения в целом:

Новейшее издание знаменует собой особую веху: 20 лет с момента публикации оригинала. Почему выпуск 20-й годовщины, а не выпуск 10-й или 25-й годовщины? Было ли что-то конкретное, что произошло через 20 лет, или это просто время для обновления?

Мы с Дейвом некоторое время обсуждали возможность обновления, но время было не подходящим. Каждый из нас был занят другими проектами и жизнью в целом. Но как только число «20» перевернулось, все как-то сработало. Мы получили запрос на перепечатку от Пирсона / Аддисона-Уэсли и начали говорить о том, что, может быть, делаем больше, чем просто перепечатку. Остальное, как говорится, история …

Легко изменить, как представляется, является всеобъемлющей темой в новом издании, которая не была столь распространенной в первом издании. Сколько было это дополнение из-за изменений в индустрии программного обеспечения за последние 20 лет и сколько было из-за изменений в вас как программистов за то же время?

Я думаю, что тема была в оригинале, просто не так ярко выражена. Конечно, за последние 20 лет темпы изменений резко возросли и будут продолжать расти. Сегодня вы испытываете самые медленные темпы изменений, которые вы испытываете в своей жизни. Кажется, это монотонно увеличивается. Я думаю, что мы изменились как программисты. Меня гораздо больше волнуют проблемы долговечности программного обеспечения: стоимость обслуживания с течением времени, зависимость от зависимостей, потенциальные уязвимости и стремление к самым простым вещам. Как мы говорим в книге, «полагаться только на надежные вещи». Я думаю, что 20 лет научили нас, что многие вещи, которые мы считаем само собой разумеющимся, далеко не так надежны, как мы могли бы надеяться. Например, не импортируйте такие вещи, как печально известная «левая панель». Напишите чертовски семь строк кода самостоятельно.

Повторяющаяся тема как в оригинальном, так и в новом издании – добросовестность и постоянная личная оценка. Это напоминает историю создания шаблонов, где «Банда четырех» была достаточно самосознательна, чтобы распознавать шаблоны, которые они использовали, и каталогизировать их. На что профессиональные программисты должны обращать особое внимание каждый день?

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

Postface нового издания поразителен, потому что фокусируется на этике – теме, редко затрагиваемой в книгах по программному обеспечению. Было ли какое-то конкретное событие, которое побудило вас добавить это Postface в новую редакцию?

Не лично. Но любой случайный последователь новостей найдет достаточную причину, чтобы встревожиться;) Я думаю, что удивительная сила простого, социального приложения для телефона привлекла наше внимание. Умеренно простое программное обеспечение может быть использовано для свержения правительств, влияния на выборы, увеличения числа поддающихся профилактике заболеваний путем распространения дезинформации, даже изменения характера ухаживания и отношений. Когда вы думаете об этом, это очень мощная вещь, которую мы, вероятно, не делаем по умолчанию.

Насколько важна прочная моральная основа для профессиональных программистов?

Из-за нашего влияния на каждый аспект жизни людей, я думаю, это стало критическим. И «мораль» стала хитрым словом, к сожалению. Речь идет не о том, чтобы подавить свои собственные убеждения в чужом горле, а о том, чтобы относиться ко всем остальным с таким же уважением, вежливостью, профессионализмом, которого вы ожидаете. Если вам неудобно использовать программное обеспечение, которое вы пишете – или использовать его на себе – тогда, возможно, вам не следует его писать.

В обоих изданиях вы упоминаете о важности чтения – не только технических, но и нетехнических книг – для создания портфолио знаний. Какая ваша любимая нетехническая книга? Что делает эту книгу личным основным продуктом?

Я собираюсь использовать жанр, а не конкретную книгу: научная фантастика. Одна из самых важных вещей, которую вам нужно осознать, это важность контекста. Романы помогают вывести вас из привычного контекста и увидеть мир другими глазами. Например, представьте, что вы объяснили насилие в отношении иммигрантов внеземной культуре: «ну, эти люди ненавидят этих людей, потому что они родились не на той стороне воображаемой линии на планете». Звучит довольно глупо, когда смотришь на это, не так ли?

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

Я бы не согласился с тем, что эликсир «не популярен». Я бы охарактеризовал это как "не мейнстрим", возможно. Я думаю, что ключ в том, чтобы выучить язык, который сильно отличается от того, что вы уже знаете и с которым вам удобно. Выйди из своей зоны комфорта!

Как вы думаете, какие новые функции или парадигмы языка программирования станут обычными в течение следующего десятилетия?

Лучшая обработка совместимости и критических изменений. У Rust есть хорошая модель в этой области. Проблема заключается в том, что мы не можем позволить себе постоянно поддерживать каждый бит программного обеспечения – его громкость сокрушит нас. У меня есть (буквально) 30-летние сценарии оболочки, которые все еще работают, как и ожидалось. В более современных языках всего 6-12 месяцев может означать, что ваш код больше не работает с последними обновлениями.

Где вы видите индустрию программного обеспечения, возглавляемую в следующем десятилетии?

Мой хрустальный шар на этой неделе в магазине, полируется. Как всегда, я думаю, что многие супер-раскрученные технологии будут спотыкаться и делать подтяжку лица и заменяться чем-то более простым (например, в мультиконтейнерном пространстве оркестровки). Мы могли бы начать видеть больше помощи ИИ, но ИИ не будет панацеей, которую изобразил SciFi. В худшем случае это может выглядеть как «Клиппи», достойный всяческих похвал помощник Microsoft в те времена. В целом, больше функций и возможностей станут товарными элементами, доступными в виде библиотеки или услуги, и меньше, которые нужно будет создавать вручную. Мы прошли долгий путь в этом отношении, и я ожидаю, что эта тенденция сохранится.

Какие навыки и знания вы бы предложили программистам учить, чтобы быть эффективными, когда происходят эти изменения?

Узнать быстро. Что еще более важно, отучиться быстро. Будьте готовы отпустить «но я всегда так делал», потому что на следующей неделе это изменится. Пусть кто-то / что-то еще сделает это, если это дешевле, надежнее или у них больше ресурсов для этого. Например, в книге мы обсуждаем использование сторонней службы аутентификации. Аутентификация – это огромная, сложная область. Если это не часть вашего основного продукта / компетенции, вам, вероятно, лучше отдать предпочтение кому-то другому, для кого это основной бизнес. Они сделают лучшую работу из этого. Итак, научись отпускать.

Я никоим образом не связан с Прагматической Книжной полкой или Прагматическим Программистом и просмотрел книгу и взял интервью у автора без какой-либо компенсации (финансовой или иной). Все взгляды и мнения мои одни.

Дальнейшее чтение

5 книг по Spring Framework Опытные Java-разработчики должны прочитать

Список лучших блогов DevOps и книг для чтения на 2019 год

Пять обязательных книг по статистике, чтобы стать успешным аналитиком данных