Какую самую влиятельную книгу должен прочитать каждый программист? [закрыто]

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

Я ожидаю, что этот список будет разнообразным и охватит широкий круг вопросов.

Для поиска: воспользуйтесь окном поиска в правом верхнем углу. Для поиска ответов на текущий вопрос используйте inquestion:this. Например:

inquestion:this "Code Complete"
4.08.2008 23:50:22
Просмотр этой ветки заставляет меня понять, насколько уродливы книги, связанные с программированием. Очень хорошая тема, хотя!
Carl Bergquist 5.08.2009 12:09:17
Интересно, что хотя название гласит: «Какую единственную наиболее влиятельную книгу должен прочитать каждый программист?», Есть довольно много книг, которые посвящены языковым темам. По определению и по определенному вопросу книги, предлагаемые здесь, должны затрагивать темы, не зависящие от языка, что доказывает, что большинству программистов еще предстоит научиться читать.
Rook 2.10.2009 19:54:13
Если бы я мог вернуться в прошлое и попросить себя что-нибудь прочитать, то это была бы газета или спортивная книга фактов, которую я взял с собой. Все остальное - пустая трата хорошего путешествия во времени. :-)
jmucchiello 8.11.2009 09:38:35
Знаете, если бы я не беспокоился о том, что меня могут опровергнуть, я бы покорно пошел и предложил Сумерки. "ТАКЖЕ о людях, которые бледны и избегают солнца!"
Jacob Bellamy 12.02.2010 00:20:50
Может кто-нибудь очистить ответы, удалив повторяющиеся записи в книгах? Большинство из них уже проголосовали.
rao 16.03.2010 05:44:26
30 ОТВЕТОВ
  • Code Complete (2-е издание), Стив Макконнелл
  • Прагматичный программист
  • Структура и интерпретация компьютерных программ
  • Язык программирования Си Кернигана и Ричи
  • Введение в алгоритмы от Cormen, Leiserson, Rivest & Stein
  • Шаблоны дизайна от банды четырех
  • Рефакторинг: улучшение дизайна существующего кода
  • Мифический Человек Месяц
  • Искусство компьютерного программирования Дональда Кнута
  • Компиляторы: принципы, методы и инструменты Альфреда В. Ахо, Рави Сетхи и Джеффри Д. Уллмана
  • Гедель, Эшер, Бах , Дуглас Хофштадтер
  • Чистый код: руководство по гибкому программному обеспечению Роберта Мартина
  • Эффективный C ++
  • Более эффективный C ++
  • КОДЕКС Чарльза Петцольда
  • Программирование Жемчуга Джоном Бентли
  • Эффективная работа с устаревшим кодом от Michael C. Feathers
  • Peopleware от Демарко и Листера
  • Кодеры за работой Питер Сейбел
  • Конечно, вы шутите, мистер Фейнман!
  • Эффективное Java, 2-е издание
  • Шаблоны корпоративной архитектуры приложений от Мартина Фаулера
  • Маленький интриган
  • Опытный интриган
  • Почему (Пикантный) Справочник по Руби
  • Заключенные управляют убежищем: почему высокотехнологичные продукты сводят нас с ума и как восстановить здравомыслие
  • Искусство Unix-программирования
  • Разработка через тестирование: на примере Кента Бека
  • Практики проворного разработчика
  • Не заставляй меня думать
  • Гибкая разработка программного обеспечения, принципы, шаблоны и практики Роберта К. Мартина
  • Проекты, управляемые доменом , Эрик Эванс
  • Дизайн повседневных вещей Дональда Нормана
  • Современный C ++ дизайн Андрея Александреску
  • Лучший софт для написания I от Joel Spolsky
  • Практика программирования Кернигана и Пайка
  • Прагматичное мышление и обучение: рефакторинг вашей посуды от Энди Ханта
  • Оценка программного обеспечения: демистификация черного искусства Стивом Макконнелом
  • Страстный программист (моя работа отправилась в Индию) Чед Фаулер
  • Хакеры: герои компьютерной революции
  • Алгоритмы + структуры данных = программы
  • Написание твердого кода
  • JavaScript - хорошие части
  • Реализуясь 37 сигналами
  • Основы программирования Карла Сегуина
  • Компьютерная графика: принципы и практика в Си (2-е издание)
  • Мышление на Яве , Брюс Экель
  • Элементы вычислительных систем
  • Рефакторинг на Узоры Джошуа Кериевского
  • Современные операционные системы Эндрю С. Таненбаум
  • Аннотированная Тьюринг
  • Вещи, которые делают нас умными Дональд Норман
  • Вечный путь строительства Кристофер Александр
  • Последний срок: роман об управлении проектами Тома Демарко
  • Язык программирования C ++ (3-е издание) от Страуструпа
  • Шаблоны корпоративной архитектуры приложений
  • Компьютерные системы - перспектива программиста
  • Гибкие принципы, шаблоны и практики в C # Роберта Мартина
  • Растущее объектно-ориентированное программное обеспечение, ориентированное на тесты
  • Руководство по проектированию рамок от Брэда Абрамса
  • Мышление объекта доктором Дэвидом Вестом
  • Расширенное программирование в среде UNIX У. Ричарда Стивенса
  • Хакеры и художники: большие идеи компьютерного века
  • Душа новой машины Трейси Киддер
  • CLR via C # от Джеффри Рихтера
  • Вечный путь строительства Кристофер Александр
  • Дизайн шаблонов в C # от Стива Мецкера
  • Алиса в стране чудес Льюис Кэрол
  • Дзен и искусство ухода за мотоциклом Роберт М. Пирсиг
  • About Face - Основы дизайна взаимодействия
  • Сюда приходит каждый: сила организации без организаций Клэй Ширки
  • Дао программирования
  • Вычислительная красота природы
  • Написание твердого кода от Стива Магуайра
  • Руководство Филиппа и Алекса по веб-публикации
  • Объектно-ориентированный анализ и проектирование с использованием приложений от Grady Booch
  • Эффективная Java от Джошуа Блоха
  • Вычислимость Н. Дж. Катленда
  • Вдохновители программирования
  • Тао Те Чинг
  • Продуктивный Программист
  • Искусство обмана Кевина Митника
  • Карьерный программист: партизанская тактика для несовершенного мира Кристофер Дункан
  • Парадигмы программирования искусственного интеллекта: тематические исследования в Common Lisp
  • Мастера Судьбы
  • Прагматическое модульное тестирование в C # с NUnit Энди Хантом и Дейвом Томасом с Мэттом Харджеттом
  • Как решить это Джордж Поля
  • Алхимик Пауло Коэльо
  • Smalltalk-80: язык и его реализация
  • Написание безопасного кода (2-е издание) Майкл Ховард
  • Введение в функциональное программирование от Филиппа Вадлера и Ричарда Берда
  • Нет ошибок! Дэвид Тилен
  • Переработка Джейсона Фрейда и DHH
  • JUnit в действии
1746
21.02.2012 21:02:44
Code Complete - хорошая книга, если вы учитесь в колледже. Если у вас есть опыт программирования не менее 1 года, это полный труд.
Bogdan Gavril MSFT 27.11.2008 12:11:06
В Code Complete содержится много полезной информации, но он скрыт в гиперболе, вафле и повторениях, что делает его трудным для чтения.
Jeff Yates 2.12.2008 20:49:45
Я прочитал Code Complete 3 года в моей карьере. Я не учился на курсах по разработке программного обеспечения и на курсах по языку программирования, но прошел некоторые вводные курсы по CS. На сегодняшний день это лучшая книга, которую я когда-либо читал, чтобы стать лучшим программистом. Это не сделает вас специалистом, но сделает вас гораздо больше, чем тинкер.
Shea 25.04.2009 16:11:22
Проблема этой книги в том, что для новичка это не имеет смысла, так как понятия немного продвинуты. К тому времени, когда вы будете готовы прочитать его, вы уже должны знать и практиковать 99% концепций в книге.
esac 30.04.2009 01:46:37
Это дело здравого смысла, как в этой книге. Время от времени вам нужно напоминать о них, чтобы вернуться в очередь.
JohnFx 17.06.2009 15:56:21

@ Питер Коултон - ты не читаешь Кнута, ты его изучаешь.

Для меня и моей работы ... Чисто функциональные структуры данных отлично подходят для мышления и разработки с учетом функциональных языков.

8
5.08.2008 01:25:46

Code Complete - выбор номер один, но я бы также сослался на шаблоны проектирования Gang of Four и «Применение UML и шаблонов» Крейга Лармана.

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

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

4
5.08.2008 17:28:24
более одной книги на одного пользователя, и многие, если не все, на первых двух страницах.
xenoterracide 24.07.2011 00:16:26

Я был около того времени, поэтому большинство книг, которые я нашел влиятельными, не обязательно применяются сегодня. Я действительно считаю, что очень важно понимать платформу, для которой вы разрабатываете (как аппаратное обеспечение, так и ОС). Я также думаю, что важно учиться на ошибках других людей. Итак, две книги, которые я бы порекомендовал:

Вычислительные бедствия и в поисках глупости: более двадцати лет бедствий, связанных с высокотехнологичным маркетингом

6
11.08.2008 23:52:03
Дай мне перерыв. Почему в мире вы бы отметили это, потому что я упомянул две книги?
bruceatk 6.04.2010 17:03:24

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

6
21.08.2008 20:01:03
2
21.08.2008 19:55:25

К & Р

@Juan: я знаю Хуана, я знаю - но есть некоторые вещи, которые могут быть изучены, только фактически приступая к выполнению задачи. Говорить в абстрактных идеалах весь день просто делает вас академиком. Именно в применении абстрактного мы действительно уловили причину их существования. :П

@Keith: Большое упоминание Алана Купера «Заключенные бегут в убежище» - наверняка откровение, любой разработчик, который работал со мной с тех пор, как я прочитал эту книгу, слышал, как я упоминал идеи, которые она поддерживает. +1

9
21.08.2008 20:06:37

Мифический человеко-месяц Фреда Брукса http://en.wikipedia.org/wiki/The_Mythical_Man-Month

7
21.08.2008 20:02:07
6
21.08.2008 20:02:28
5
21.08.2008 20:08:21

Эффективная работа с Legacy Code - это действительно удивительная книга, в которой подробно рассказывается о том, как правильно выполнить модульное тестирование вашего кода, и в чем его истинное преимущество. Это действительно открыло мне глаза.

2
21.08.2008 20:10:00
0
21.08.2008 20:54:54

У меня есть пара (довольно старых) сообщений в блоге на эту тему

0
21.08.2008 21:10:00

Ни в каком порядке, кроме как они расположены на моей книжной полке:

  • Прагматичный программист
  • Rafactoring от Фаулера
  • Эффективная работа с устаревшим кодом от Feathers. Это практически дополнительный объем для рефакторинга .
  • UML Дистиллировано Фаулером. Среди других его достоинств краткость.
  • Отладка процесса разработки Стивом Магуайром
  • Шаблоны проектирования (также известная как «Банда четырех») Гаммы и др.
6
21.08.2008 21:19:08

Образцы реализации Кент Бек.

альтернативный текст http://ecx.images-amazon.com/images/I/51JHn-6oNwL._SL500_AA240_.jpg

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

1
21.08.2008 21:26:41
0
21.08.2008 21:26:53

Дейтель и Дейтель, "C ++: как программировать"

Тестовые шаблоны XUnit

1
25.08.2008 16:53:33

Прочитайте Head First Design Patterns для более доступного введения, чем книга GoF. Я помню, как чувствовал, что выровнялся после каждой главы.

Разработка, управляемая тестом Кента Бека на примере TDD.

2
25.08.2008 17:02:29

В дополнение к предложениям других людей, я бы рекомендовал либо приобрести копию SICP, либо прочитать ее в Интернете . Это одна из немногих книг, которые я прочитал, и я чувствую, что значительно повысил свои навыки в разработке программного обеспечения, особенно в создании хороших слоев абстракции.

Книга, которая не имеет прямого отношения к программированию, но также хорошо читается программистами (IMO), называется « Конкретная математика» . Большинство, если не все темы, в них полезны для программистов, и они лучше объясняют, чем любая другая математическая книга, которую я читал на сегодняшний день.

0
27.08.2008 00:46:53

Я большой поклонник большинства работ Роберта С. Мартина, особенно Agile Software Development, «Принципы и практика» и « Чистый код: руководство по гибкому программному обеспечению» .

2
27.08.2008 00:50:03
0
27.08.2008 00:59:15

Я думаю, что «Искусство программирования в Unix» - отличная книга, написанная Эриком Рэймондом, превосходным хакером / блестящим умом, который пытается помочь нам понять несколько принципов разработки программного обеспечения (главным образом, простоты). Эта книга обязательна для каждого программиста, который собирается начать проект на платформе Unix.

7
27.08.2008 01:42:43
это дубликат.
Christopher Mahan 8.11.2009 09:54:25

Мистер Банни Руководство по ActiveX

6
30.01.2010 00:26:21

У меня есть несколько хороших книг, которые сильно повлияли на меня, но я еще не видел в этом списке:

Психология повседневных вещей Дональда Нормана. Общие принципы дизайна для других людей. Может показаться, что это в основном хорошо для пользовательского интерфейса, но если подумать, у него есть приложения почти везде, где есть интерфейс, с которым должен работать кто-то, кроме оригинального разработчика; например, API и проектирование интерфейса таким образом, чтобы другие разработчики формировали правильную ментальную модель и получали соответствующую обратную связь от самого API.

Искусство тестирования программного обеспечения Глен Майерс. Хорошее общее введение в тестирование программного обеспечения; хорошо для программистов читать, чтобы помочь им думать как тестировщик, т.е. думать о том, что может пойти не так, и подготовиться к этому.

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

6
28.08.2008 19:13:28
-1: одна книга за ответ, пожалуйста.
Ether 22.01.2011 19:52:30

Хотя я согласен с тем, что многие из вышеперечисленных книг являются обязательными для прочтения (Прагматический программист, Мифический человеко-месяц, Искусство компьютерного программирования и SICP сразу приходят на ум), я бы хотел пойти в несколько ином направлении и рекомендовать Дисциплину программирования Эдсгера Дейкстры. Несмотря на то, что ему 32 года, акцент на «проверяемость» очень важен (даже если «проверяемость» означает «доказательство», а не «модульные тесты»).

7
28.08.2008 23:47:12

За полный код Стива Макконнелла проголосовало много, но как насчет его Руководства по выживанию программных проектов ? Я думаю, что они оба требуют чтения, но по разным причинам.

5
1.09.2008 08:14:50
Можете ли вы добавить картинку - прямо сейчас она сканирует, как будто ее очередной попугай СС рекомендует, чтобы вся эта тема, кажется, была в замешательстве
Ruben Bartelink 27.03.2010 13:39:30

Я недавно прочитал Dreaming in Code и нашел его интересным для чтения. Возможно, больше, так как со дня, когда я начал читать это, Chandler 1.0 был выпущен. Читая о растущих болях и ошибках проектной команды талантливых людей, пытающихся «изменить мир», вы многому научитесь. Также Скотт воспитывает много знаний программистов и мудрости между ними, это просто занимательное чтение.

В Beautiful Code есть одна или две вещи, которые заставляют меня думать по-другому, особенно глава о приоритете операторов сверху вниз.

4
1.09.2008 16:22:53

Это не прямой ответ на вопрос, потому что я чувствую, что на него уже был дан ответ, однако одна из книг, которая определенно повлияла на то, как я кодирую, - « Чтение кода», том 1: Перспектива с открытым исходным кодом .

альтернативный текст http://g.bookpool.com/covers/405/0201799405_140_30O.gif

3
2.09.2008 07:23:09

Code is Law - вы все это пишете, редактируете и думаете на [языке по вашему выбору], но ПОЧЕМУ? Что вы код означает? Что будет на самом деле делать?

(Я мог бы порекомендовать книгу о QA, но я не ...)

1
4.09.2008 01:10:24