20 сентября 2011, 10:32 · faketail - программист в BELHARD
Топ десять наиболее значимых книг по программированию

skitchedЛучшие книги по программированию по мнению пользователей StackOverflow. Участникам проекта был задан следующий вопрос: «Если бы вы могли вернуться в прошлое, когда вы были ещё начинающим девелопером, то какую бы вы посоветовали себе прочитать книгу по программированию?»

Впервые этот вопрос появился на сайте ещё в 2008 году и за это время стал вторым по популярности топиком.

  1. Code Complete («Совершенный код»), второе издание.
  2. Steve McConnell (Стив МакКоннел)
  • Дата выхода: 7 июля 2004 года
  • Издательство: Microsoft Press
  • Ссылка на oz.by
Это книга получила всеобщее признание как одно из лучших практических руководств по программированию. Эта книга помогает девелоперам писать лучшее ПО уже больше десяти лет. Второе издание книги было обогащено последними передовыми практиками разработки, а также сотнями примеров кода, демонстрирующих искусство программирования во всём его техническом совершенстве. Сочетая базовые знания из исследований, теоретические выкладки и ежедневную практику коммерческой разработки, МакКоннелл синтезирует наиболее эффективные техники, принципы, которые разработчики просто обязаны знать, и преподносит всё это в виде чётких и прагматичных рекомендаций. Не важно, какой у вас уровень опыта, среда разработки или размер проекта, эта книга расскажет вам, как писать код самого высокого качества, и будет стимулировать ваше мышление развиваться в правильную сторону.
  • The Pragmatic Programmer: From Journeyman to Master («Программист-прагматик: от подмастерья к мастеру»), второе издание.
  • Andrew Hunt, David Thomas (Эндрю Хант и Дэвид Томас)
    • Дата выхода: 30 октября 1999 года
    • Издательство: Addison-Wesley Professional
    • Ссылка на oz.by
    Как и любое другое ремесло, программирование наработало с годами знания, которые не преподаются в университетах и не входят в программы сертификации. Большинство программистов узнают эти уловки и хитрости с течением времени, идя путём самостоятельных экспериментов. В «Прагматичном программисте» Эндрю Хант и Дэвид Томас раскрывают многие истины, которые они познали в течение своих заслуженных карьер дизайнеров и разработчиков ПО. Самое крутое в этой книге то, что она помогает сохранять свежий взгляд на программирование, помогает вам продолжать развиваться и ясно показывает вам как это делать, поскольку написана теми, кто уже прошёл этот путь.
  • Structure and Interpretation of Computer Programs («Структура и интерпретация компьютерных программ»), второе издание.
  • Harold Abelson, Gerald J Sussman, Julie Sussman (Гарольд Абельсон, Джеральд Суссман и Джули Суссман)
    • Дата выхода: 1 августа 1996 года
    • Издательство: McGraw-Hill Science/Engineering/Math
    • Ссылка на oz.by
    Учит читателей программировать, используя инструменты абстракции и модульности. Главная идея авторов заключается в том, что программирование – это задача и искусство разбивки больших задач на маленькие. Из книги вы узнаете кое-что о функциональном программировании, ленивых вычислениях, метапрограммировании (метаязыковой абстракции), виртуальных машинах, интерпретаторах и компиляторах. Книга изначально была написана для всемирно известного 6.001, вводного курса программирования в Массачусетском технологическом институте. Возможно, потребуется напрячь интеллект, чтобы её освоить, но результат стоит того.
  • The C Programming Language («Язык программирования Си»)
  • , второе издание. Brian W Kernighan и Dennis M Ritchie (Брайн Керниган и Деннис Ритчи)
    • Дата выхода: 1 апреля 1988 года
    • Издательство: Prentice Hall
    • Ссылка на oz.by
    Краткая и легкая в чтении, она научит вас трём вещам: языку программирования С, думать, как программист, и пониманию абстрактной модели машины С (что и как работает, образно выражаясь, "под капотом"). Написана в соавторстве с Деннисом Ритчи, изобретателем языка программирования Си.
  • Introduction to Algorithms («Введение в алгоритмы»).
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest и Clifford Stein (Томас Кормэн, Чарльз Лейзерсон, Рональд Ривест и Клиффорд Штайн) "Библия" в своей отрасли знаний, является всеобъемлющим учебником, охватывающим весь спектр современных алгоритмов: от самых быстрых алгоритмов и структур данных до полиномиальных алгоритмов для решения, казалось бы, неразрешимых проблем, от классических алгоритмов в теории графов до специальных алгоритмов для сравнения строк, вычислительной геометрии и теории чисел. Пересмотренное третье издание снабжено главой о деревьях Ван Эмде Боаса, одних из наиболее полезных структур данных, а также о многопоточных алгоритмах, которые сейчас приобретают все большее значение.
  • Refactoring: Improving the Design of Existing Code («Рефакторинг: улучшение существующего кода»).
  • Martin Fowler, Kent Beck, John Brant и William Opdyke (Мартин Фаулер, Кент Бек, Джон Брант и Вильям Опдайк)
    • Дата выхода: 8 июля 1999 года
    • Издательство: Addison-Wesley Professional
    • Ссылка на oz.by
    Рефакторинг – это способ улучшения дизайна существующего кода. Это процесс изменения программного обеспечения системы таким образом, что его внешнее поведение остаётся прежним, но улучшается внутренняя структура кода. С помощью рефакторинга вы можете даже взять плохой дизайн приложения и переделать его в хороший. Эта книга предлагает подробное обсуждение принципов рефакторинга, включая способы выявления возможностей применения рефакторинга и необходимого при этом тестирования. Также предлагается каталог из более 40 моментов рефакторинга, с подробной информацией о том, когда и почему нужно их использовать, пошаговыми инструкциями по их реализации, а также примерами того, как всё это работает и что даёт. Примеры в книге написаны для Java, но идеи применимы, в принципе, к любому языку OOП.
  • Design Patterns: Elements of Reusable Object-Oriented Software («Шаблоны проектирования: Элементы повторно используемого объектно-ориентированного программного обеспечения»).
  • Erich Gamma, Richard Helm, Ralph Johnson и John Vlissides (Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес (также известные как " Банда четырех ")
    • Дата выхода: 10 ноября 1994 года
    • Издательство: Addison-Wesley Professional
    • Ссылка на oz.by
    «Шаблоны проектирования» – это современная классика литературы об объектно-ориентированном программировании, предлагающая вневременные и элегантные решения общих проблем разработки ПО. Она описывает шаблоны управления созданием объектов, композиции объектов в более сложные структуры и координации контроля потоков между объектами. Книга содержит многочисленные примеры, когда использование композиции, а не наследования, может улучшить возможность повторного использования и придаст гибкость коду. Имейте в виду, что это не учебник, а каталог, который можно использовать для нахождения подходящего шаблона объектно-ориентированного проектирования для какого-то конкретного случая применения. Эта книга – выбор виртуозных программистов, которые ценят последовательный, хорошо разработанный объектно-ориентированный дизайн приложения.
  • The Mythical Man-Month: Essays on Software Engineering («Мифический человеко-месяц, или Как создаются программные системы»)
  • . Frederick P. Brooks (Фредерик П. Брукс)
    • Дата выхода: 12 августа 1995
    • Издательство: Addison-Wesley Professional
    • Ссылка на oz.by
    Немногие книги по управлению разработкой ПО могут похвастать таким весом в области профильных знаний и неизменным значением, как «Мифический человеко-месяц». Смешивая факты из практики инженерии ПО и заставляющие задуматься пассажи, Фред Брукс предлагает откровение для всех занимающихся управлением сложными проектами. Эти эссе рассказывают о его опыте проджект-менеджера на проектах на системе IBM System/360, а затем и OS/360. Сейчас, через двадцать лет после первого издания книги, Брукс пересматривает свои идеи и добавляет новые мысли и советы, одинаково интересные для тех, кто уже читал его книгу, и для новых читателей.
  • Art of Computer Programming, Volume 1: Fundamental Algorithms («Искусство программирования, том 1: основные алгоритмы»), третье издание.
  • Donald E. Knuth (Дональд Кнут)
    • Дата выхода: 17 июля 1997 года
    • Издательство: Addison-Wesley Professional
    • Ссылка на oz.by
    Библия функциональных алгоритмов, работа, которая научила многих современных программистов большинству того, что они знают о разработке ПО. Одной из самых сильных сторон книги является замечательные подборки задач, которые следуют после каждой главы. Автор тщательно выбрал проблемы и расположил их в соответствии с их сложностью. Решение значительного числа этих задач позволит вам получить четкое понимание о программировании. Кроме того, эти упражнения позволят вам познакомиться с решением ряда классических проблем.
  • Compilers: Principles, Techniques, and Tools («Компиляторы: принципы, технологии и инструменты»), 2-е издание.
  • Alfred V. Aho, Monica S. Lam, Ravi Sethi и Jeffrey D. Ullman (Альфред В. Ахо , Моника С. Лам , Рави Сети и Джеффри Д. Ульман)
    • Дата выхода: 10 сентября 2006 года
    • Издательство: Prentice Hall
    • Ссылка на oz.by
    Книга, известная среди профессоров, студентов и разработчиков во всем мире как "Книга Дракона. Последнее издание было значительно дополнено и отразило изменения в разработке программного обеспечения, языков программирования и компьютерной архитектуры, которые произошли после 1986 года, когда была опубликована предыдущая редакция книги. Авторы, признавая, что только совсем немногие читатели будут заниматься разработкой компилятора, распространяют свой взгляд на более широкий набор проблем, возникающих при дизайне программного обеспечения и его разработке.

    P.S. В этот список не вошло ещё много блестящих книг и если кому интересно, здесь можно просмотреть и места с 11 по 30.

    Источник: www.internetsecuritydb.com
    Нашли в тексте ошибку — выделите её и нажмите Ctrl+Enter.

    Обсуждение

    7b4c117d3b6ecfb9a846184bb2c33285?1365455446
    -1

    «Компиляторы: принципы, технологии и инструменты» оч. хорошая книга. Жаль что в нынешней ситуации цена на бумажный вариант около 300тыс. рублей.

    Picture_2702?1356409883
    +1

    Для практически всех данных книг по поводу цены я бы сказал: "плевать, заверните"! :)

    Picture_2702?1356409883
    +2

    ....пусть стоят на полке, пыль собирают. Зато кто ни зайдет, сразу проникнется респектом и уважухой. Карьера сразу попрет в гору: сеньора дадут и зарплату на 100 баксов подымут. Не жисть пойдет, а просто малина! :)

    Missing-male
    -1

    Странно почему "Код" Чарльза Петцольда поставили аж на 17-е место, помойму этой книге место повыше.

    Picture_2702?1356409883
    -2

    Ай-яй... одна из моих любимых по стилю, содержанию и полезности для начинающих

    Holub, Allen (1995). Enough Rope to Shoot Yourself in the Foot.

    Ален Голуб. Веревка достаточной длины, чтобы выстрелить себе в ногу.

    даже в 30- ке отсутствует.

    Missing-male
    ret
    – Junior Clojure Developer в Targetprocess

    +1

    она старая и достаточно спорная, хотя и интересная.

    Picture_2702?1356409883

    С моей частной точки зрения книга должна учить, то есть формировать мозг в нужном направлении. Книги, составленные как формальные сборники шаблонов, с таблицами "признаки", "когда применять", "блок-схема шаблона" конечно строги, красивы и даже наверное бесспорно всегда правы (формально), но научиться по ним чему-то сложно.

    У Алена же читатель загружается сотнями частных, мелких, возможно иногда спорных мини-проблем с решениями. Читать интересно, усваивается все незаметно. И по факту прочтения формируется интуитивное чувство "правильного кода", когда можно глянуть мельком и сказать - гуано, или - весчь. И в 9.5 случаях из 10 будешь прав :)

    А про возраст... коньяк вон тоже, чем старше, тем лучше.

    Но... частное мнение, никому не навязываю.

    Ee0de4fca84c8c3e0d8dbe3424baf643?1401052271
    -1

    Фаулеровский PoEAA оказался лишь на 21-м месте :(. В моём личном рейтинге она втора после макконнелла, а из опыта помощи программистам и вовсе для большинства - это главная книга профессиональной жизни.

    Picture_3860?1356409918
    -1

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

    Всегда больше полагался на логику и практику плюс справочник.

    Missing
    -1

    Хорошая, относительно свежая, книга -"Head First Design Patterns", много картинок, шуток и общий стиль довольно веселый. Суровые программисты скажут, что сливает ГОФу и прочим классикам, но я бы рекомендовал новичкам.

    Picture_4509?1356409937

    Меня тоже приятно удивила эта книга.

    Во первых, действительно полезно. Во вторых, действительно наглядно.

    Picture_5562?1356409965
    Dmitry Sazanovich
    – Senior iOS Developer в Ciklum

    +2

    нехватает страуструпа и таненбаума

    Missing-male

    шли бы вы со своим c++

    не хватает Фаулера архитектуры (или паттернов)

    Missing-male
    +1

    Куда, и зачем?

    Missing-male

    шли бы в майкрософт, память освобождать

    Missing-male
    -1

    исправьте "Библия функциональных алгоритмов"

    Missing-male
    -1

    Неплохой список, но я заменил бы "The C Programming Language" Ритчи на "Регулярные выражения" Дж. Фридла. Она принесла лично мне гораздо больше пользы. Да и язык С сегодня далеко не всем нужен, а р/в используются повсеместно практически на любом языке

    Missing

    Отличная статья. Тяжело найти множество книг из этой статьи, но я все же нашел сайт, где можно бесплатно читать и качать книги : cobooks.tk . Надеюсь, что пригодится кому-нибудь :)


    Авторизуйтесь, чтобы оставлять комментарии

    Использование материалов, размещенных на сайте, разрешается при условии прямой гиперссылки на dev.by. Ссылка должна быть размещена в подзаголовке или в первом абзаце публикации.
    datahata — хостинг в Беларуси