Искусство компьютерного программирования считается одной книгой или несколькими?
Дэвид Торнли
2
@ Давид, я думаю, что технически это одна книга в нескольких томах.
паддислакер
Ответы:
69
Код завершен Стивом Макконнеллом. Я даже не думаю, что это нуждается в объяснении. Это полная книга по созданию программного обеспечения. Невероятно хорошо написано и охватывает все аспекты практической (программной) стороны создания программного обеспечения.
+1 за выбор второго издания тоже - так много улучшений по сравнению с первым, что это другая книга.
Paddyslacker
+1 - у меня есть итальянский перевод. После этого я никогда не покупал другую книгу по программированию или технике, переведенную на мой язык, так как перевод был ужасным. Мне пришлось купить английское издание, чтобы понять некоторые предложения!
Я не могу согласиться Интересно, что слово неизменное даже не существует в этой книге.
Джонас
2
Хотя я храню свою копию первого издания, я думаю, что никогда не возвращался к ней. Причиной может быть то, что он продолжал получать книги по каждой из тем, которые, по словам Макконнелла, важны.
+1 за реалистичность. Эта книга актуальна, легка для чтения, и, вероятно, книга, которую многие разработчики действительно могут извлечь из этого. Слишком много других в этом списке трудны, и я сомневаюсь, что их читали от корки до корки.
Спонг
Этот ответ повторяется.
2010 г.
+1 - моя вторая любимая книга по программированию за Code Complete (и, честно говоря, иногда она первая)
Алан
36
Структура и интерпретация компьютерных программ, также известный как SICP
Когда я увидел, что SICP еще не числится в списке, я поморщился от боли. :)
Почему: нечего добавить к тому, что Норвиг хвалит эту книгу как величайшее введение в информатику, когда-либо написанное. Ну хорошо, так как почему? было запрошено: SICP достаточно глубоко охватывает основы программного обеспечения, поднимая многие точки зрения и вопросы о природе вычислений - многие из которых остаются открытыми, - в то же время заставляя читателя увидеть за пределами поверхностных аспектов, рассказывающих машине, что делать, или как это сделать.
Все приветствуют 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, которым на раннем этапе требовалась некоторая строгость. Я заработал много денег, убирая дерьмо, которое они оставили, но все же;)
Если бы я когда-либо мог прочитать только одну книгу о программировании, и после того, как я прочел ее, она ушла. И я больше никогда не увижу другую книгу, вот так. Если я захочу оставить книгу на полке, чтобы посмотреть позже ... Это может быть другой, более ориентированный на ссылки том. +1 в любом случае!
SingleNegationElimination
Я наслаждался этой книгой и читал ее до конца. Однако большая часть материала относится только к очень крупномасштабным проектам с сотнями или даже тысячами или людьми, работающими над этим как с ОС; поскольку это то, из чего он черпает свой опыт. Я думал, что Code Complete гораздо полезнее с точки зрения знаний, которые я могу использовать каждый день, и это применимо ко мне.
У нас было четвертое издание, но это отличная книга по алгоритмам!
Крис
@ Крис: я не думаю, что есть четвертое издание. Третье издание с сентября 2009 года, так что оно новое.
Джонас
Errr, второе издание с зеленой обложкой.
Крис
Это обязательный учебник для моего класса в этом семестре. Я воодушевлен тем, что он находится в списке здесь, и что он так высоко оценен в оригинальном вопросе!
Это книга для чтения по дизайну и архитектуре ООП. Шаблоны хороши при правильном использовании, но я думаю, что реальная ценность этой книги в том, что она дает вам набор идей для использования при проектировании.
Я только что пересчитал свои книги сегодня. 23 из них Это зависит от того, над чем я работаю. Я предполагаю, что вечный ответ - «язык С», Керниган и Ричи .
Он содержит много хороших советов о том, как тестировать и управлять существующей кодовой базой, о большинстве из которых я не знал, пока не прочитал эту книгу. Обязательно читать, даже если старый код, с которым вы работаете, это ваш собственный код, который вы написали вчера.
Я не уверен, что это квалифицируется как «1 книга» (если вы на самом деле не имеете в виду «просто Том 1»)
Инамати
У меня есть вся его серия, но я бы согласился на первый том. (Мой первый урок информатики преподавался в 1967 году. Это было бесценно). "Знай свои структуры данных".
Ира Бакстер
15
Обязательные книги по Java:
Эффективная Java Джош Блох
Параллелизм Java на практике Брайан Гетц, et. и др.
Ха! Это был мой выбор в списке книг, не связанных с программированием! Я полагаю, это делает его не классифицируемым?
Paddyslacker
Мне очень понравилась эта книга, она была настоятельно рекомендована моим профессором по теории вычислений в UW Madison - очень помогала, когда он пытался понять, о чем он говорил.
Питер Тернер
@Paddyslacker, GEB на самом деле тратит немало времени на обсуждение вычислимости и различных концепций информатики.
5
Прагматичный программист: от подмастерья до мастера (Эндрю Хант и Дэвид Томас)
Getting Things Done (Дэвид Аллен) учит вас, как справляться с тысячами небольших задач, которые необходимо выполнить в вашей повседневной работе в качестве разработчика программного обеспечения. Хотя он не предназначен специально для разработчиков, это определенно неоценимая помощь, поскольку разработка программного обеспечения обычно включает в себя очень большое количество небольших задач, которые необходимо выполнить в приоритетном порядке. Например: какие новые функции реализовать, какие ошибки исправить, какие части кода реорганизовать, какие части кода пересоздать или повторно протестировать и т. Д ...
+1: только из-за того, насколько сухо и подробно это. С тех пор я никогда не чувствовал, что так много знаю о языке после того, как закончил книгу о нем.
IPad считается? Я хотел бы сказать, что моей # 1 на моей книжной полке будет веб-браузер и возможность поиска. Онлайн API и ссылки - лучшее место, и это будет зависеть от моего текущего проекта.
Нет, это не так. Смотрите комментарий о Kindle выше. Тем не менее, я люблю iPad в любом случае. Это может быть ценным ресурсом, но это еще не настоящая книга. +1, у меня настроение фаната. :)
У нас слишком много «ОО» разработчиков, которые до сих пор не знают, что такое объект или класс или для чего он нужен; не знаю, как выглядит хорошее ОО, процедурное, модульное и структурированное программирование; и каким-то образом умудряется бобить плохо сделанный псевдо-процедурный код вместе с классами.
Эта книга (плюс несколько старых произведений 70-х годов по структурированному дизайну) может помочь этим бедным душам наконец понять, как должна выглядеть хорошая объектная ориентация.
Кроме того, есть вероятность, что если бы меня заставили выбрать одну книгу и одну книгу только рядом с этой, я бы не выбрал книгу, посвященную технологии .
Это одна из немногих книг по программированию, которую я сохранил, когда впервые начал программировать. Я имел обыкновение одалживать это людям, которые только начинали. Теперь не так много, поскольку C больше не является первым языком программирования для многих людей. Он делает замечательную работу по описанию того, что происходит за кулисами, и его описания указателей дают реальную ясность тому, что в противном случае является очень запутанной темой для многих.
Мне на самом деле не понравилась книга Джона. Информация была хорошей, но в книге было так много «о, это важно через 10 глав», так что она выглядела очень плохо изложенной.
Стивен Эверс
2
Знайте, что есть второе издание, которое является обновлением от первого и также охватывает C # 4.
Грант Пэйлин
1
Проектирование объектов: роли, ответственность и сотрудничество
Это, безусловно, моя любимая книга по программированию (даже если она не зависит от языка). По моему скромному мнению, эта книга лучше описывает случай проектирования предметов, которые относятся к их двоюродным братьям / братьям / соседям. Должно быть в любой серьезной книжной полке программиста.
Ответы:
Код завершен Стивом Макконнеллом. Я даже не думаю, что это нуждается в объяснении. Это полная книга по созданию программного обеспечения. Невероятно хорошо написано и охватывает все аспекты практической (программной) стороны создания программного обеспечения.
источник
Легко.
источник
Структура и интерпретация компьютерных программ, также известный как SICP
Когда я увидел, что SICP еще не числится в списке, я поморщился от боли. :)
Почему: нечего добавить к тому, что Норвиг хвалит эту книгу как величайшее введение в информатику, когда-либо написанное. Ну хорошо, так как почему? было запрошено: SICP достаточно глубоко охватывает основы программного обеспечения, поднимая многие точки зрения и вопросы о природе вычислений - многие из которых остаются открытыми, - в то же время заставляя читателя увидеть за пределами поверхностных аспектов, рассказывающих машине, что делать, или как это сделать.
альтернативный текст http://ecx.images-amazon.com/images/I/41CPGEDXMDL._SL500_AA300_.jpg
Нажмите на изображение, чтобы перейти к свободному тексту онлайн . Вы также можете легко найти видео лекции авторов , в комплекте с цветом и одеждой стиля 80-х годов.
источник
Стоит отметить:
Мифический человеко-месяц
источник
Введение в алгоритмы
источник
Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения
Это книга для чтения по дизайну и архитектуре ООП. Шаблоны хороши при правильном использовании, но я думаю, что реальная ценность этой книги в том, что она дает вам набор идей для использования при проектировании.
источник
Чистый код Роберта К. Мартина
Языки, рамки, методологии приходят и уходят, но многие идеи в этой книге, я подозреваю, навсегда.
источник
Рефакторинг: улучшение дизайна существующего кода
источник
Я только что пересчитал свои книги сегодня. 23 из них Это зависит от того, над чем я работаю. Я предполагаю, что вечный ответ - «язык С», Керниган и Ричи .
источник
Эффективная работа с Legacy Code от Michael Feathers.
Он содержит много хороших советов о том, как тестировать и управлять существующей кодовой базой, о большинстве из которых я не знал, пока не прочитал эту книгу. Обязательно читать, даже если старый код, с которым вы работаете, это ваш собственный код, который вы написали вчера.
источник
Искусство компьютерного программирования Дональда Кнута
источник
Обязательные книги по Java:
Эффективная Java Джош Блох
Параллелизм Java на практике Брайан Гетц, et. и др.
Java Puzzlers Джош Блох, Нил Гафтер
источник
Кодеры за работой от Питера Сейбела
Интересный и вдохновляющий, очень рекомендуется.
источник
Гедель, Эшер, Бах.
!
источник
Прагматичный программист: от подмастерья до мастера (Эндрю Хант и Дэвид Томас)
источник
Getting Things Done (Дэвид Аллен) учит вас, как справляться с тысячами небольших задач, которые необходимо выполнить в вашей повседневной работе в качестве разработчика программного обеспечения. Хотя он не предназначен специально для разработчиков, это определенно неоценимая помощь, поскольку разработка программного обеспечения обычно включает в себя очень большое количество небольших задач, которые необходимо выполнить в приоритетном порядке. Например: какие новые функции реализовать, какие ошибки исправить, какие части кода реорганизовать, какие части кода пересоздать или повторно протестировать и т. Д ...
источник
Язык программирования C ++ Бьярн Страуструп
источник
Windows через C / C ++, Джеффри Рихтер
источник
Дзен оптимизации кода Майкл Абраш
Обязательное чтение для программистов реального времени - даже если информация о конкретном процессоре устарела, образ мышления неоценим.
источник
IPad считается? Я хотел бы сказать, что моей # 1 на моей книжной полке будет веб-браузер и возможность поиска. Онлайн API и ссылки - лучшее место, и это будет зависеть от моего текущего проекта.
источник
Шаблоны проектирования в Ruby:
источник
Брюс Ф. Вебстер "Подводные камни объектно-ориентированного развития"
У нас слишком много «ОО» разработчиков, которые до сих пор не знают, что такое объект или класс или для чего он нужен; не знаю, как выглядит хорошее ОО, процедурное, модульное и структурированное программирование; и каким-то образом умудряется бобить плохо сделанный псевдо-процедурный код вместе с классами.
Эта книга (плюс несколько старых произведений 70-х годов по структурированному дизайну) может помочь этим бедным душам наконец понять, как должна выглядеть хорошая объектная ориентация.
Кроме того, есть вероятность, что если бы меня заставили выбрать одну книгу и одну книгу только рядом с этой, я бы не выбрал книгу, посвященную технологии .
источник
Это одна из немногих книг по программированию, которую я сохранил, когда впервые начал программировать. Я имел обыкновение одалживать это людям, которые только начинали. Теперь не так много, поскольку C больше не является первым языком программирования для многих людей. Он делает замечательную работу по описанию того, что происходит за кулисами, и его описания указателей дают реальную ясность тому, что в противном случае является очень запутанной темой для многих.
источник
Джон Скит "C # в глубине"
источник
Проектирование объектов: роли, ответственность и сотрудничество
Это, безусловно, моя любимая книга по программированию (даже если она не зависит от языка). По моему скромному мнению, эта книга лучше описывает случай проектирования предметов, которые относятся к их двоюродным братьям / братьям / соседям. Должно быть в любой серьезной книжной полке программиста.
источник
Одна из моих самых любимых книг;
Объектно-ориентированный мыслительный процесс Мэтта Вейсфельда
источник