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


58

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


13
Kindle считается одной книгой?
Wizard79

5
Нет. Играй честно сейчас!
паддислакер

1
Как насчет iPad?
Моше

3
Искусство компьютерного программирования считается одной книгой или несколькими?
Дэвид Торнли

2
@ Давид, я думаю, что технически это одна книга в нескольких томах.
паддислакер

Ответы:


69

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

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


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

+1 - у меня есть итальянский перевод. После этого я никогда не покупал другую книгу по программированию или технике, переведенную на мой язык, так как перевод был ужасным. Мне пришлось купить английское издание, чтобы понять некоторые предложения!
Wizard79

Для тех, кто живет в Квебеке, Канада . У BAnQ есть полная версия этой книги, доступная онлайн по этому адресу: library.books24x7.com.res.banq.qc.ca/toc.asp?bookid=10482 .
HoLyVieR

4
Я не могу согласиться Интересно, что слово неизменное даже не существует в этой книге.
Джонас

2
Хотя я храню свою копию первого издания, я думаю, что никогда не возвращался к ней. Причиной может быть то, что он продолжал получать книги по каждой из тем, которые, по словам Макконнелла, важны.
Апалала

56

Легко.

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


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

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

Я наслаждался этой книгой и читал ее до конца. Однако большая часть материала относится только к очень крупномасштабным проектам с сотнями или даже тысячами или людьми, работающими над этим как с ОС; поскольку это то, из чего он черпает свой опыт. Я думал, что Code Complete гораздо полезнее с точки зрения знаний, которые я могу использовать каждый день, и это применимо ко мне.
Despertar

30

У нас было четвертое издание, но это отличная книга по алгоритмам!
Крис

@ Крис: я не думаю, что есть четвертое издание. Третье издание с сентября 2009 года, так что оно новое.
Джонас

Errr, второе издание с зеленой обложкой.
Крис

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

28

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

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

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


ООП не представляет границ программирования.
Инамати

Поскольку каталоги шаблонов в изобилии (что и есть в этой книге), ценность этой книги со временем значительно снизилась.
Стивен Эверс

1
Много ли людей читают эту обложку? Я считаю, что это скорее ссылка, чем книга. (И ссылка, которую вы не можете найти.)
idbrii



25

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

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


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

1
И стоит иметь на полке, быстрее найти коды формата printf в книге, чем в справочных документах MSDN
Мартин Беккет

19

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

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

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


Какая отличная обложка.
появляется

Это, так как сейчас я сфокусирован на том, чтобы перевести код, который я написал до того, как я «прошел тестирование», в тестируемое состояние.

+1 Много раз да. Эта книга очень помогла мне в обновлении старого кода.
Грант Пэйлин

18

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

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


4

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




2

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

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

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


2

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


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


2

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

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

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


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


1

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

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


1

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

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


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

2
Знайте, что есть второе издание, которое является обновлением от первого и также охватывает C # 4.
Грант Пэйлин

1

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

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

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.