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

58

Один за ответ, пожалуйста. Я добавлю мой любимый в качестве ответа.

Paddyslacker
источник
13
Kindle считается одной книгой?
Wizard79
5
Нет. Играй честно сейчас!
паддислакер
1
Как насчет iPad?
Моше
3
Искусство компьютерного программирования считается одной книгой или несколькими?
Дэвид Торнли
2
@ Давид, я думаю, что технически это одна книга в нескольких томах.
паддислакер

Ответы:

69

Код завершен 2-е изд.

Код завершен Стивом Макконнеллом. Я даже не думаю, что это нуждается в объяснении. Это полная книга по созданию программного обеспечения. Невероятно хорошо написано и охватывает все аспекты практической (программной) стороны создания программного обеспечения.

EpsilonVector
источник
+1 за выбор второго издания тоже - так много улучшений по сравнению с первым, что это другая книга.
Paddyslacker
+1 - у меня есть итальянский перевод. После этого я никогда не покупал другую книгу по программированию или технике, переведенную на мой язык, так как перевод был ужасным. Мне пришлось купить английское издание, чтобы понять некоторые предложения!
Wizard79
Для тех, кто живет в Квебеке, Канада . У BAnQ есть полная версия этой книги, доступная онлайн по этому адресу: library.books24x7.com.res.banq.qc.ca/toc.asp?bookid=10482 .
HoLyVieR
4
Я не могу согласиться Интересно, что слово неизменное даже не существует в этой книге.
Джонас
2
Хотя я храню свою копию первого издания, я думаю, что никогда не возвращался к ней. Причиной может быть то, что он продолжал получать книги по каждой из тем, которые, по словам Макконнелла, важны.
Апалала
56

Легко.

Прагматичный программист

Stoosh
источник
6
+1 за реалистичность. Эта книга актуальна, легка для чтения, и, вероятно, книга, которую многие разработчики действительно могут извлечь из этого. Слишком много других в этом списке трудны, и я сомневаюсь, что их читали от корки до корки.
Спонг
Этот ответ повторяется.
2010 г.
+1 - моя вторая любимая книга по программированию за Code Complete (и, честно говоря, иногда она первая)
Алан
36

Структура и интерпретация компьютерных программ, также известный как SICP

Когда я увидел, что SICP еще не числится в списке, я поморщился от боли. :)

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

альтернативный текст http://ecx.images-amazon.com/images/I/41CPGEDXMDL._SL500_AA300_.jpg

Нажмите на изображение, чтобы перейти к свободному тексту онлайн . Вы также можете легко найти видео лекции авторов , в комплекте с цветом и одеждой стиля 80-х годов.

оборота лимит
источник
2
Все приветствуют SICP. ИМО, это должен быть учебник для обязательного вводного курса программирования во всех школах CS. Это, безусловно, отсеет людей, которые не могут по-настоящему сократить его в программировании (гораздо меньше CS), в то же время укрепляя навыки CS и программирования тем, у кого есть потенциал.
luis.espinal
1
@ luis.espinal SICP кажется излишним для вводного программирования (если мы не говорим о аспирантуре). Есть причина, по которой MIT отбросил курс SICP в качестве вступительного курса ... Тем не менее, я согласен, что полезно прочитать эту книгу (и выполнить упражнения ...), но делать это в стандартном семестре колледжа было бы трудно даже студент выше среднего. Кроме того, введение в Java / Python / Ruby / C больше подходит для рабочей силы, чем раньше вы привыкнете к языкам с императивом, тем лучше ... SICP отлично подходит для расширения ваших горизонтов. Но может быть обескураживающим как вводный курс ...
Cervo
1
@Cervo - это серьезная проблема, и это кажется излишним, но (и я признаю, что это совершенно субъективная позиция), я твердо верю, что она обеспечивает более глубокую основу, чем обычно можно найти в других основных подходах. Жюри по-прежнему работает с MIT, поскольку они перешли на Python (некоторые из причин состоят в том, что он также имеет возможности FP и он полностью поддается научным вычислениям и робототехнике, чего нет у Scheme). С Python все в порядке (я на самом деле люблю язык), но жюри будет выходить до тех пор, пока не выйдет версия SICP на Python.
luis.espinal
2
@ con't - То есть я предлагаю SICP не из-за Схемы, а из-за ее педагогического содержания. Я бы на самом деле предложил начать со сборки (люди делали это довольно успешно), но нет сборочных книг (и, вероятно, никогда не будет), таких как SICP. Самой близкой была бы энциклопедия Кнута (и это было бы излишним.) Что касается Java , я работал с ним в течение 12 лет, и я бы не рекомендовал его для обучения ... выполняет свою работу, но это ужасно, так как PL. C, Python или Ruby намного лучше разработаны.
luis.espinal
1
@ con't - также я бы предостерег от использования языка в качестве педагогического инструмента, потому что он является мейнстримом. Мейнстрим меняется каждые 2-3 года, а с Java язык простой, но задача состоит в изучении JVM, библиотек и архитектуры. Я бы сказал, чтобы изучать развитие Java и .NET на 4-м курсе колледжа. И я считаю (я знаю, субъективно ), что важно обеспечить строгость на раннем этапе. У нас слишком много программистов, работающих по принципу point-n-click, которым на раннем этапе требовалась некоторая строгость. Я заработал много денег, убирая дерьмо, которое они оставили, но все же;)
luis.espinal
32

Стоит отметить:

Мифический человеко-месяц

альтернативный текст

Spong
источник
1
Если бы я когда-либо мог прочитать только одну книгу о программировании, и после того, как я прочел ее, она ушла. И я больше никогда не увижу другую книгу, вот так. Если я захочу оставить книгу на полке, чтобы посмотреть позже ... Это может быть другой, более ориентированный на ссылки том. +1 в любом случае!
SingleNegationElimination
Я наслаждался этой книгой и читал ее до конца. Однако большая часть материала относится только к очень крупномасштабным проектам с сотнями или даже тысячами или людьми, работающими над этим как с ОС; поскольку это то, из чего он черпает свой опыт. Я думал, что Code Complete гораздо полезнее с точки зрения знаний, которые я могу использовать каждый день, и это применимо ко мне.
Despertar
30

Введение в алгоритмы

Jonas
источник
У нас было четвертое издание, но это отличная книга по алгоритмам!
Крис
@ Крис: я не думаю, что есть четвертое издание. Третье издание с сентября 2009 года, так что оно новое.
Джонас
Errr, второе издание с зеленой обложкой.
Крис
Это обязательный учебник для моего класса в этом семестре. Я воодушевлен тем, что он находится в списке здесь, и что он так высоко оценен в оригинальном вопросе!
появляется
28

Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения

Это книга для чтения по дизайну и архитектуре ООП. Шаблоны хороши при правильном использовании, но я думаю, что реальная ценность этой книги в том, что она дает вам набор идей для использования при проектировании.

альтернативный текст

Fishtoaster
источник
ООП не представляет границ программирования.
Инамати
Поскольку каталоги шаблонов в изобилии (что и есть в этой книге), ценность этой книги со временем значительно снизилась.
Стивен Эверс
1
Много ли людей читают эту обложку? Я считаю, что это скорее ссылка, чем книга. (И ссылка, которую вы не можете найти.)
idbrii
28

Чистый код Роберта К. Мартина

«Чистый код» Роберта Мартина

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

azheglov
источник
4
Не обижайся на книгу, но можешь ли ты получить общепринятый ответ на эту тему?
Мартин Беккет
25

Рефакторинг: улучшение дизайна существующего кода

альтернативный текст

Даниил
источник
25

Я только что пересчитал свои книги сегодня. 23 из них Это зависит от того, над чем я работаю. Я предполагаю, что вечный ответ - «язык С», Керниган и Ричи .

введите описание изображения здесь

Моше
источник
3
Одна из лучших книг по преподаванию языка в истории информатики. Хороший пример того, как должна быть написана книга по программированию.
Wizard79
1
И стоит иметь на полке, быстрее найти коды формата printf в книге, чем в справочных документах MSDN
Мартин Беккет
19

Эффективная работа с Legacy Code от Michael Feathers.

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

Эффективная работа с устаревшим кодом

оборота паддислакер
источник
Какая отличная обложка.
появляется
Это, так как сейчас я сфокусирован на том, чтобы перевести код, который я написал до того, как я «прошел тестирование», в тестируемое состояние.
+1 Много раз да. Эта книга очень помогла мне в обновлении старого кода.
Грант Пэйлин
18

Искусство компьютерного программирования Дональда Кнута

альтернативный текст

Wizard79
источник
1
Я не уверен, что это квалифицируется как «1 книга» (если вы на самом деле не имеете в виду «просто Том 1»)
Инамати
У меня есть вся его серия, но я бы согласился на первый том. (Мой первый урок информатики преподавался в 1967 году. Это было бесценно). "Знай свои структуры данных".
Ира Бакстер
15

Обязательные книги по Java:

Эффективная Java Джош Блох

альтернативный текст

Параллелизм Java на практике Брайан Гетц, et. и др.

альтернативный текст

Java Puzzlers Джош Блох, Нил Гафтер

альтернативный текст

Джереми Хейлер
источник
3
+1 за эффективную Java. Значительно улучшены мои навыки Java.
Райан Хейс
+1 за эффективную Java , -1 за игнорирование Один за ответ, пожалуйста .
Марк Бут
Один набор книг по Java, который вы должны иметь
Crowie
9

Гедель, Эшер, Бах.

альтернативный текст!

мику
источник
1
Ха! Это был мой выбор в списке книг, не связанных с программированием! Я полагаю, это делает его не классифицируемым?
Paddyslacker
Мне очень понравилась эта книга, она была настоятельно рекомендована моим профессором по теории вычислений в UW Madison - очень помогала, когда он пытался понять, о чем он говорил.
Питер Тернер
@Paddyslacker, GEB на самом деле тратит немало времени на обсуждение вычислимости и различных концепций информатики.
5

Прагматичный программист: от подмастерья до мастера (Эндрю Хант и Дэвид Томас)

Maniero
источник
4

Getting Things Done (Дэвид Аллен) учит вас, как справляться с тысячами небольших задач, которые необходимо выполнить в вашей повседневной работе в качестве разработчика программного обеспечения. Хотя он не предназначен специально для разработчиков, это определенно неоценимая помощь, поскольку разработка программного обеспечения обычно включает в себя очень большое количество небольших задач, которые необходимо выполнить в приоритетном порядке. Например: какие новые функции реализовать, какие ошибки исправить, какие части кода реорганизовать, какие части кода пересоздать или повторно протестировать и т. Д ...

Димитрий С.
источник
3

Язык программирования C ++ Бьярн Страуструп

альтернативный текст

Прасун Саурав
источник
+1: только из-за того, насколько сухо и подробно это. С тех пор я никогда не чувствовал, что так много знаю о языке после того, как закончил книгу о нем.
мамочка
2

Дзен оптимизации кода Майкл Абраш

Дзен оптимизации кода

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

AShelly
источник
2

IPad считается? Я хотел бы сказать, что моей # 1 на моей книжной полке будет веб-браузер и возможность поиска. Онлайн API и ссылки - лучшее место, и это будет зависеть от моего текущего проекта.

Крис
источник
2
Нет, это не так. Смотрите комментарий о Kindle выше. Тем не менее, я люблю iPad в любом случае. Это может быть ценным ресурсом, но это еще не настоящая книга. +1, у меня настроение фаната. :)
Моше
2

Шаблоны проектирования в Ruby: альтернативный текст

ennuikiller
источник
2

Брюс Ф. Вебстер "Подводные камни объектно-ориентированного развития"

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

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


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

luis.espinal
источник
1

альтернативный текст

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

Рич Шулер
источник
1

Джон Скит "C # в глубине"

альтернативный текст

ACP
источник
1
Мне на самом деле не понравилась книга Джона. Информация была хорошей, но в книге было так много «о, это важно через 10 глав», так что она выглядела очень плохо изложенной.
Стивен Эверс
2
Знайте, что есть второе издание, которое является обновлением от первого и также охватывает C # 4.
Грант Пэйлин
1

Проектирование объектов: роли, ответственность и сотрудничество

альтернативный текст

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

Красный рыцарь
источник