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


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

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

Искать: Используйте окно поиска в правом верхнем углу. Чтобы найти ответы на текущий вопрос, используйте inquestion:this, Например:

inquestion:this "Code Complete"

1439


источник


Ответы:


  • Код завершен (2-е издание) Стив Макконнелл
  • Прагматический программист
  • Структура и интерпретация компьютерных программ
  • Язык программирования C Керниган и Ричи
  • Введение в алгоритмы Cormen, Leiserson, Rivest & Stein
  • Шаблоны проектирования от Банды Четыре
  • Рефакторинг: улучшение дизайна существующего кода
  • Мифический месяц
  • Искусство компьютерного программирования Дональд Кнут
  • Составители: принципы, методы и инструменты Альфред В. Ахо, Рави Сети и Джеффри Д. Ульман
  • Гёдель, Эшер, Бах Дуглас Хофштадтер
  • Чистый код: руководство по гибкому программному мастерству Роберт К. Мартин
  • Эффективный C ++
  • Более эффективный C ++
  • КОД Чарльзом Петцольдом
  • Программирование жемчуга Джон Бентли
  • Эффективная работа с устаревшим кодом Майкл К. Перья
  • Кадровое Демарко и Листером
  • Кодеры на работе Питер Сейбел
  • Конечно, ты шутишь, мистер Фейнман!
  • Эффективная Java 2-е издание
  • Шаблоны архитектуры корпоративных приложений Мартин Фаулер
  • Маленький Schemer
  • Опытный скеймер
  • Почему (Poignant) Руководство по Ruby
  • Заключенные прибегают к убежищу: почему высокотехнологичные продукты приводят нас в бешенство и как восстановить здоровье
  • Искусство программирования Unix
  • Разработка, основанная на тестах: по примеру Кент Бек
  • Практики гибкого разработчика
  • Не заставляй меня думать
  • Разработка, принципы, шаблоны и практика Agile Software Роберт К. Мартин
  • Проекты, управляемые доменом Эрик Эванс
  • Дизайн повседневных вещей Дональд Норман
  • Современный дизайн C ++ Андрей Александреску
  • Лучшее написание программного обеспечения I Джоэл Спольский
  • Практика программирования Керниган и Пайк
  • Прагматическое мышление и обучение: рефакторинг вашего Wetware Энди Хант
  • Оценка программного обеспечения: демистификация черного искусства Стив Макконнелл
  • Страстный программист (Моя работа направлялась в Индию) Чад Фаулер
  • Хакеры: Герои компьютерной революции
  • Алгоритмы + Структуры данных = Программы
  • Написание твердого кода
  • JavaScript - Хорошие детали
  • Получение реальных по 37 сигналам
  • Основы программирования Карл Сегин
  • Компьютерная графика: принципы и практика в C (2-е издание)
  • Мышление в Java Брюс Экель
  • Элементы вычислительных систем
  • Рефакторинг для шаблонов Джошуа Кериевский
  • Современные операционные системы Эндрю С. Таненбаум
  • Аннотированный Тьюринг
  • Вещи, которые делают нас умными Дональд Норман
  • Бессрочный путь строительства Кристофер Александр
  • Крайний срок: роман о управлении проектами Том ДеМарко
  • Язык программирования C ++ (3-е издание) by Stroustrup
  • Шаблоны архитектуры корпоративных приложений
  • Компьютерные системы - перспектива программиста
  • Гибкие принципы, шаблоны и практика в C # Роберт К. Мартин
  • Растущее объектно-ориентированное программное обеспечение, управляемое по испытаниям
  • Руководство по разработке рамок Брэд Абрамс
  • Объектное мышление Д-р Дэвид Вест
  • Расширенное программирование в среде UNIX У. Ричард Стивенс
  • Хакеры и художники: большие идеи от компьютерного века
  • Душа новой машины Трейси Киддер
  • CLR через C # Джеффри Рихтер
  • Бессрочный путь строительства Кристофер Александр
  • Дизайн шаблонов в C # Стив Метскер
  • Алиса в стране чудес Льюис Кэрролл
  • Дзен и искусство обслуживания мотоциклов Роберт М. Пирсиг
  • О Face - Основы дизайна взаимодействия
  • Здесь приходят все: сила организации без организаций Клей Ширки
  • Тао программирования
  • Вычислительная красота природы
  • Написание твердого кода Стив Магуайр
  • Руководство Филиппа и Алекса по веб-публикации
  • Объектно-ориентированный анализ и дизайн с приложениями Грэди Буч
  • Эффективная Java Джошуа Блох
  • Computability Н. Дж. Катлендом
  • Вдохновителей программирования
  • Дао Те Чинг
  • Производительный программист
  • Искусство обмана Кевин Митник
  • Карьерный программист: Тактика партизан для несовершенного мира Кристофер Дункан
  • Парадигмы программирования искусственного интеллекта: тематические исследования в Common Lisp
  • Мастера судьбы
  • Тестирование прагматического модуля в C # с помощью NUnit Энди Хант и Дейв Томас с Мэттом Харгеттом
  • Как решить эту проблему Джордж Поля
  • Алхимик Пауло Коэльо
  • Smalltalk-80: язык и его реализация
  • Написание защищенного кода (2-е издание) Майкла Ховарда
  • Введение в функциональное программирование Филипп Вадлер и Ричард Берд
  • Нет ошибок! Дэвид Тилен
  • переделывать Джейсон Фрейд и DHH
  • JUnit in Action

1747



К & Р

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

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


9



Дискретная математика для компьютерных ученых http://ecx.images-amazon.com/images/I/51HCJ5R42KL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU02_.jpg

Дискретная математика для компьютерных ученых J.K. Трасс.

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

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


9



Систематичность: как работают системы и тем, как они терпят неудачу , Используйте его дешево. Но вы не можете получить юмор, пока не будете работать над несколькими неудачными проектами.

Красота книги - год авторских прав.

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

Принципиальная теорема об отказе (F.F.T.): сложные системы обычно работают в режиме отказа.

Идея состоит в том, что в любой заданной части программного обеспечения есть недостающие части, которые маскируются сбоями в других частях или проверками в других частях. См. Реальный пример на Радиационная машина Therac-25 , чьи программные недостатки были замаскированы аппаратными отказами. Когда аппаратные сбои были удалены, состояние гонки программного обеспечения, которое не было обнаружено все эти годы, привело к тому, что машина убила 3 ​​человека.


9



One of my personal favorites is Hacker's Delight, because it was as much fun to read as it was educational.

I hope the second edition will be released soon!


9



Concepts, Techniques, and Models of Computer Programming.

alt text http://ecx.images-amazon.com/images/I/51YZ50ZR13L._SL500_AA240_.jpg


9



Extreme Programming Explained: Embrace Change by Kent Beck. While I don't advocate a hardcore XP-or-the-highway take on software development, I wish I had been introduced to the principles in this book much earlier in my career. Unit testing, refactoring, simplicity, continuous integration, cost/time/quality/scope - these changed the way I looked at development. Before Agile, it was all about the debugger and fear of change requests. After Agile, those demons did not loom as large.


9



Types and Programming Languages by Benjamin C Pierce for a thorough understanding of the underpinnings of programming languages.


9



alt text http://ecx.images-amazon.com/images/I/51E0Ojkz8iL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg


9