avva: (Default)
[personal profile] avva
Популярная тема на StackOverflow: What is the single most influential book every programmer should read?

Вот список книг, набравших на данный момент больше 100 голосов, в порядка убывания голосов:

1-5: Code Complete, The Pragmatic Programmer, SICP, Kernighan/Ritchie, Cormen.

6-10: Fowler's Refactoring, The Mythical Man-Month, Design Patterns, Knuth vol.1, the Dragon Book.

11-15: Head-First Design Patterns, GEB, [More] Effective C++, Programming Pearls, Zen and the Art...

16-20: Petzold's Code, Working Effectively w/ Legacy Code, Peopleware, Coders at Work, Martin's Clean Code.

21-26: Surely You're Joking, Effective Java, Fowler's Patterns of Enterprise Application Architecture, The Little/Seasoned Schemer, The Inmates Are Running the Asylum, Why's Poignant Guide to Ruby.

Из этих 26 книг я читал (понимая под этим - прочел не меньше половины книги) тринадцать: те, что выделены курсивом.

Из этих тринадцати книг три не имеют отношения к программированию, из этих трех одну все равно следует прочитать всем программистам (а также всем остальным людям). Это "Surely You're Joking, Mr. Feynman!".

Из оставшихся десяти три мне почти ничего не дали, и я с тем же успехом мог бы их и не читать: Code Complete, The Pragmatic Programmer, Design Patterns (о первых двух из них я думал по-другому, когда их прочитал, но потом понял, что мне просто льстило то, что они в основном повторяли то, чему я сам давно научился). Возможно, другим они помогли больше. Я бы не советовал их в качестве обязательного чтения.

Оставшиеся семь книг - они выделены курсивом и жирным шрифтом - я бы посоветовал всем программистам, с тем только замечанием, что Effective C++/Java нужны только тем, кто пишет на этих языках (а вот к Kernighan/Ritchie это не относится).

Я подумал о том, какие книги из тех, что на меня повлияли и что я могу порекомендовать всем. В первую очередь на ум приходит The Practice of Programming Кернигана и Пайка; она, на мой взгляд, важнее примерно 20 из 26 книг этого списка.

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

Это мое мнение; если хотите добавить свое, пожалуйста, буду рад комментариям на эту тему.
Page 1 of 2 << [1] [2] >>

Date: 2011-03-01 12:36 pm (UTC)
From: [identity profile] lair.livejournal.com
Просто Code Complete и Design Patterns надо читать в начале карьеры. Тогда от них существенно больше пользы.

Date: 2011-03-01 01:38 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Я знаком с некоторыми программистами, прочитавшими the gang of four в нежном возрасте, в начале карьеры. Их код производит удручающее впечатление.

(no subject)

From: [identity profile] lair.livejournal.com - Date: 2011-03-01 01:40 pm (UTC) - Expand

(no subject)

From: [identity profile] gaus.livejournal.com - Date: 2011-03-01 01:48 pm (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2011-03-01 03:10 pm (UTC) - Expand

(no subject)

From: [identity profile] gaus.livejournal.com - Date: 2011-03-01 03:19 pm (UTC) - Expand

(no subject)

From: [identity profile] bydl0coder.livejournal.com - Date: 2011-03-01 07:41 pm (UTC) - Expand

(no subject)

From: [identity profile] gaus.livejournal.com - Date: 2011-03-01 07:46 pm (UTC) - Expand

(no subject)

From: [identity profile] pin-dragon.livejournal.com - Date: 2011-03-01 04:17 pm (UTC) - Expand

(no subject)

From: [identity profile] bydl0coder.livejournal.com - Date: 2011-03-01 07:16 pm (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2011-03-01 07:27 pm (UTC) - Expand

(no subject)

From: [identity profile] bydl0coder.livejournal.com - Date: 2011-03-01 07:34 pm (UTC) - Expand

Date: 2011-03-01 12:41 pm (UTC)
From: [identity profile] freiksenet.livejournal.com
Странно, что нет Introduction to Algorithms, по-моему намного более интересная и полезная книга, чем Dragon Book.

Странно что вы не читали SICP - по-моему отличная книга и must-read для любой программиста.

Кроме SICP в списке нет ни одной книге про не-мейнстрим программированию, что очень печально, но в принципе объяснимо. :(

Еще печально, что так много книг, которые пропагандируют cargo-cult programming, типа design patterns.

Date: 2011-03-01 12:48 pm (UTC)
From: [identity profile] shadow-ru.livejournal.com
Кормен там есть.

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2011-03-01 12:48 pm (UTC) - Expand

(no subject)

From: [identity profile] freiksenet.livejournal.com - Date: 2011-03-01 12:54 pm (UTC) - Expand

Date: 2011-03-01 12:47 pm (UTC)
From: [identity profile] bacek.livejournal.com
Ну Mythical Man-Month почитать наверно стоит.

Date: 2011-03-01 12:49 pm (UTC)
From: [identity profile] avva.livejournal.com
Да, я собираюсь.

(no subject)

From: [identity profile] bydl0coder.livejournal.com - Date: 2011-03-01 06:54 pm (UTC) - Expand

EoPL

Date: 2011-03-01 12:47 pm (UTC)
From: [identity profile] triampurum.livejournal.com
Essentials of Programming Languages, D. Friedman, M. Wand. Изложение основ, с которыми должен быть знаком, если по-хорошему, каждый программист. Примечательна методом изложения. Метод - последовательное, совместное с читателем написание интерпретаторов (где интерпретаторы исполняют роль однозначных исполняемых спецификаций), иллюстрирующих концепции, о которых идет речь. Человек, сам реализовавший call-by-value, call-by-reference и call-by-need, путать их, скорее всего, не будет. Стратегиями вычисления материал книги не ограничивается, хотя материал по большей части и слишком прост для работающего программиста, потому что знаком ему по другим источникам. Поэтому читать её имеет смысл, видимо, лишь начинающему.

Re: EoPL

Date: 2011-03-01 10:01 pm (UTC)
From: [identity profile] bydl0coder.livejournal.com
Ни фига себе! Это, по-моему, самая тяжелая книга из перечисленных в посте и комментах.

Date: 2011-03-01 12:51 pm (UTC)
From: [identity profile] shadow-ru.livejournal.com
А есть ли смысл читать в XXI веке этот привет из 80-х - драгонбук?

Да-да, я в курсе про второе издание, но тем не менее?

Date: 2011-03-01 12:53 pm (UTC)
From: [identity profile] avva.livejournal.com
Мне кажется, что нужна книга, которая показывает, как оно работает, и де-мистифицирует то, что происходит между написанием программы и выполнением кода процессором. Конкретные техники, например, парсинга не так важны, как это базисное понимание.

(no subject)

From: [identity profile] freiksenet.livejournal.com - Date: 2011-03-01 12:55 pm (UTC) - Expand

(no subject)

From: [identity profile] freiksenet.livejournal.com - Date: 2011-03-01 12:58 pm (UTC) - Expand

(no subject)

From: [identity profile] gaus.livejournal.com - Date: 2011-03-01 01:40 pm (UTC) - Expand

Date: 2011-03-01 12:51 pm (UTC)
From: [identity profile] nokachi.livejournal.com
Что скажете насчёт обязательности третьего тома Кнута? Кормен уже давно прочитан.

Date: 2011-03-01 12:56 pm (UTC)
From: [identity profile] avva.livejournal.com
На мой взгляд, ни один том Кнута не обязателен. Я не прочитал целиком ни один из них, и не собираюсь; использовать их в качестве reference подглядеть сложную тему - да, приходилось.

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

(точнее, я до сих пор считаю, что надо стараться сильнее, просто необязательно в сторону чтения TAOCP).

(no subject)

From: [identity profile] nokachi.livejournal.com - Date: 2011-03-01 01:05 pm (UTC) - Expand

(no subject)

From: [identity profile] mtyukanov.livejournal.com - Date: 2011-03-01 01:34 pm (UTC) - Expand

(no subject)

From: [identity profile] ygam.livejournal.com - Date: 2011-03-02 02:06 am (UTC) - Expand

Date: 2011-03-01 01:04 pm (UTC)
From: [identity profile] freiksenet.livejournal.com
Хорошие, но не мейнстримовые книги.

Pierce - Types and Programming Languages
Okasaki - Purely Functional Data Structures
Книги про хаскель, хоть одну стоит прочитать - Real-World Haskell, Introduction to Functional Programming Using Haskell, Haskell road to Logic, Maths and Programming.
Хорошо бы еще книгу обзорную книгу по ИИ программированию, типа Norvig.

Date: 2011-03-01 03:35 pm (UTC)
From: [identity profile] alexott.livejournal.com
первые две - да, желательно прочитать. BTW, Пирс через некоторое время выйдет на русском языке

(no subject)

From: [personal profile] alexeybobkov - Date: 2011-03-01 07:47 pm (UTC) - Expand

(no subject)

From: [identity profile] alexott.livejournal.com - Date: 2011-03-01 08:28 pm (UTC) - Expand

забыл добавить

From: [identity profile] alexott.livejournal.com - Date: 2011-03-01 03:37 pm (UTC) - Expand

Date: 2011-03-01 01:09 pm (UTC)
From: [identity profile] pin-dragon.livejournal.com
«Практику программирования», на мой взгляд, следует использовать для обучения программированию вместо того, что используется сейчас, например, в России.
Начинающим поможет быстрее понять важные вещи. А вот тем, кто самые важные уже понял, читать её довольно скучно. Да со многим в ней можно поспорить (всякие частности, в основном).

Date: 2011-03-01 01:10 pm (UTC)
From: [identity profile] freiksenet.livejournal.com
А что в России используется? Поймут ли студенты при обучении о чем говорят в "Практике"?

(no subject)

From: [identity profile] pin-dragon.livejournal.com - Date: 2011-03-01 01:18 pm (UTC) - Expand

(no subject)

From: [identity profile] pin-dragon.livejournal.com - Date: 2011-03-01 01:23 pm (UTC) - Expand

(no subject)

From: [identity profile] freiksenet.livejournal.com - Date: 2011-03-01 01:26 pm (UTC) - Expand

(no subject)

From: [identity profile] freiksenet.livejournal.com - Date: 2011-03-01 01:27 pm (UTC) - Expand

(no subject)

From: [identity profile] pin-dragon.livejournal.com - Date: 2011-03-01 01:32 pm (UTC) - Expand

Date: 2011-03-01 01:20 pm (UTC)
From: [identity profile] vasily-nosikov.livejournal.com
Мне "Паттерны проектирования" одназначно помогли. Еще "Codecraft" сколько-то пригодился, хотя его наверное тоже имеет смысл читать разве что в начале карьеры. "Pragmatic Programmer" не впечатлил

Date: 2011-03-01 06:49 pm (UTC)
alexeybobkov: (Default)
From: [personal profile] alexeybobkov
Есть ещё такая книга: A.Shalloway, J.R.Trott, "Design Patterns Explained: A New Perspective on Object-Oriented Design".
Очень полезная для в плане практического понимания, что такое эти паттерны и для чего они вообще нужны.

Date: 2011-03-01 01:31 pm (UTC)
From: [identity profile] mtyukanov.livejournal.com
Полностью согласен насчет Кернигана-Пайка, на мой взгляд, это в десятке наиболее нужных книг.
Я бы назвал еще Design and Evolution of C++, причем не только для углубления понимания языка программистами C++ (хотя им эти книга, безусловно, полезна еще и этим), но и как развернутый case study развития большого проекта с анализом решений и их дальних последствий -- для всех программистов.

Date: 2011-03-01 01:40 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Да, D&E - очень хорошая книга, мне немного удивительно, что она не была названа.

(no subject)

From: [personal profile] alexeybobkov - Date: 2011-03-01 06:55 pm (UTC) - Expand

(no subject)

From: [identity profile] a-bronx.livejournal.com - Date: 2011-03-02 10:50 am (UTC) - Expand

Date: 2011-03-01 02:12 pm (UTC)
From: [identity profile] chessplayer.livejournal.com
все же самую полезную для программиста книгу почему-то никто не назвал. это "Programming Interviews Exposed" :)

Date: 2011-03-01 02:35 pm (UTC)
From: [identity profile] freiksenet.livejournal.com
Как вам GEB кстати? Я думаю приобрести, тк многие знакомые советовали.

Date: 2011-03-01 02:35 pm (UTC)
From: [identity profile] ztarlitz.livejournal.com
Вы не читали SICP? Или курсива на аббревиатурах не видно?

Насчет Фейнмана поддерживаю, так же у него есть вторая книга типа продолжения, «Какое ТЕБЕ дело до того, что думают другие?» Тоже весьма интересная.

Date: 2011-03-01 02:40 pm (UTC)
From: [identity profile] avva.livejournal.com
Не читал, да. Давно уже собираюсь, но руки не дошли.

Date: 2011-03-01 02:50 pm (UTC)
From: [identity profile] squadette.livejournal.com
книжка Why'я — полный мусор.
она мне сначала понравилась, ну реально же мозг взрывает
но сейчас я понимаю, что в основном это детрит.

кроме того, обнаружен журнал человека, не читавшего мифического человекомотылька! ИНФА 100%!

Date: 2011-03-01 03:08 pm (UTC)
From: [identity profile] photo-viewer.livejournal.com
больше всего повлиял древний справочник по вычислениям с программируемым калькулятором - куча численных методов, адаптированных к ограниченным ресурсам.

Date: 2011-03-01 03:31 pm (UTC)
From: [identity profile] gaus.livejournal.com
Всем, кто пишет на С++, на мой взгляд, небесполезно читать книжку Саттера и Александреску "C++ Сoding Standards" и "Effective STL" Мейерса.

Date: 2011-03-01 04:20 pm (UTC)
From: [identity profile] pin-dragon.livejournal.com
+1

И [More] Exceptional С++ того же Саттера.

(no subject)

From: [personal profile] alexeybobkov - Date: 2011-03-01 04:50 pm (UTC) - Expand

(no subject)

From: [identity profile] gaus.livejournal.com - Date: 2011-03-01 04:56 pm (UTC) - Expand

(no subject)

From: [personal profile] alexeybobkov - Date: 2011-03-01 05:07 pm (UTC) - Expand

(no subject)

From: [identity profile] gaus.livejournal.com - Date: 2011-03-01 05:15 pm (UTC) - Expand

(no subject)

From: [personal profile] alexeybobkov - Date: 2011-03-01 05:54 pm (UTC) - Expand

(no subject)

From: [identity profile] pin-dragon.livejournal.com - Date: 2011-03-01 09:07 pm (UTC) - Expand

(no subject)

From: [identity profile] gaus.livejournal.com - Date: 2011-03-01 09:11 pm (UTC) - Expand

(no subject)

From: [identity profile] ztarlitz.livejournal.com - Date: 2011-03-01 06:26 pm (UTC) - Expand

(no subject)

From: [identity profile] ztarlitz.livejournal.com - Date: 2011-03-01 06:28 pm (UTC) - Expand

(no subject)

From: [identity profile] gaus.livejournal.com - Date: 2011-03-01 06:29 pm (UTC) - Expand

(no subject)

From: [identity profile] ztarlitz.livejournal.com - Date: 2011-03-01 06:45 pm (UTC) - Expand

(no subject)

From: [identity profile] gaus.livejournal.com - Date: 2011-03-01 06:55 pm (UTC) - Expand

(no subject)

From: [identity profile] ztarlitz.livejournal.com - Date: 2011-03-02 05:31 am (UTC) - Expand

(no subject)

From: [identity profile] gaus.livejournal.com - Date: 2011-03-02 05:38 am (UTC) - Expand

(no subject)

From: [identity profile] nomshar.livejournal.com - Date: 2011-03-01 07:51 pm (UTC) - Expand

(no subject)

From: [identity profile] gaus.livejournal.com - Date: 2011-03-01 08:02 pm (UTC) - Expand

(no subject)

From: [identity profile] nomshar.livejournal.com - Date: 2011-03-01 09:47 pm (UTC) - Expand

(no subject)

From: [identity profile] pin-dragon.livejournal.com - Date: 2011-03-02 12:33 pm (UTC) - Expand

(no subject)

From: [personal profile] alexeybobkov - Date: 2011-03-01 10:17 pm (UTC) - Expand

Date: 2011-03-01 03:36 pm (UTC)
From: [identity profile] alexott.livejournal.com
clean code - вообще очень странная книга, странно что ее хвалят...

Date: 2011-03-01 08:37 pm (UTC)
From: [identity profile] efix.livejournal.com
в смысле странная?

Date: 2011-03-01 03:37 pm (UTC)
From: [identity profile] yuridichesky.livejournal.com
Даже странно, что "A discipline of programming" by Dijkstra никем не упомянута, а эта книга неплохо вправляет мозги, испорченные ранним чтением Гради Буча. Про SICP уже написали выше, присоединяюсь.

Date: 2011-03-01 06:13 pm (UTC)
From: (Anonymous)
Плюс бесконечно много и еще чуточку.

Этюды!

Date: 2011-03-01 04:29 pm (UTC)
From: [identity profile] failhigh.livejournal.com
Да, "Этюды" Уэзерелла!

Re: Этюды!

Date: 2011-03-01 04:53 pm (UTC)
alexeybobkov: (Default)
From: [personal profile] alexeybobkov
Замечательная книга... особенно была таковой для своего времени. Сейчас всё-таки несколько устарела. Особенно всё, касающееся реализации проектов - ведь тогда даже языка C не было!

Re: Этюды!

From: [identity profile] spamsink.livejournal.com - Date: 2011-03-01 04:57 pm (UTC) - Expand

Re: Этюды!

From: [identity profile] raindog-2.livejournal.com - Date: 2011-03-02 09:43 am (UTC) - Expand

Date: 2011-03-01 05:02 pm (UTC)
alexeybobkov: (Default)
From: [personal profile] alexeybobkov
Н.Вирта уже никто не читает?! Странно...

Ещё я всё время хочу прочитать две книги, которые у меня стоят на полке, и про которые есть подозрение, что они хорошие - это "Elements of Programming" Stepanov, McJones и "The structure of Typed Programming Languages" David A.Schmidt, и всё никак время не находится.

Date: 2011-03-01 06:35 pm (UTC)
From: [identity profile] ztarlitz.livejournal.com
Алгоритмы + структуры данных - одна из лучших книг что я читал в юности по программированию. На мой взгляд важнее то о чем она важнее любых паттернов.

Date: 2011-03-01 05:38 pm (UTC)
From: [identity profile] chebureque.livejournal.com
Что я совершенно не могу понять — так это почему почти во всех рейтингах книг для программистов фигурирует Zen and the Art of Motorcycle Maintenance. Что в ней такого?

Date: 2011-03-02 02:12 am (UTC)
From: (Anonymous)
"Философские" тексты, написанные психически больными людьми или под влиянием наркотиков кажутся многим "глубокими" именно в силу своей загадочности. Разумеется, их никто не понимает, ибо понимать там нечего, но многие делают вид или стараются вникнуть. Zen просто кажется доступнее, чем Хайдеггер, но принципиально никакой разницы нет.

(no subject)

From: [identity profile] ztarlitz.livejournal.com - Date: 2011-03-02 05:40 am (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2011-03-02 01:24 pm (UTC) - Expand

(no subject)

From: [identity profile] plotnik.livejournal.com - Date: 2011-03-02 03:35 pm (UTC) - Expand

Date: 2011-03-01 06:07 pm (UTC)
From: (Anonymous)
Кто-нибудь читал Object Oriented Software Construction Майера?

Date: 2011-03-03 10:11 am (UTC)
From: [identity profile] squadette.livejournal.com
да, я прочитал лет десять назад её процентов на 60.

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

Date: 2011-03-02 02:29 am (UTC)
From: (Anonymous)
Слово "прочитать" можно понимать по-разному. Многие (боюсь, большинство) считают, что все книги надо пропахивать, как трактор поле, не оставляя непонятым ни одного слова. Книг, достойных такого чтения, очень мало. Люди тратят свое время на углубленный анализ книг, такого анализа недостойных. В результате чтение воспринимается как тяжелый труд и знакомство с действительно полезными книгами откладывается "на потом". Хотя уже сейчас можно было бы бегло их прочитать с большой пользой.

И еще. Для изучения определенной темы выбирается "лучшая книга" и дооолго изучается, с застыванием на опечатках и ошибках автора. А лучше было бы бегло прочитать 5-6 книг по теме. Но не все знают, насколько это эффективнее...

Date: 2011-03-02 06:35 am (UTC)
From: [identity profile] olegs.livejournal.com
мне показалось, или в вашем списке нет книг по структурам данных?

Date: 2011-03-02 08:08 am (UTC)
From: [identity profile] avva.livejournal.com
Это не мой список - это список пользователей StackOverflow. Есть одна, Кормена - она называется Introduction to Algorithms, но в той же мере она и про структуры данных.

Date: 2011-03-02 09:03 am (UTC)
From: (Anonymous)
Code Optimization: Effective Memory Usage
Page 1 of 2 << [1] [2] >>

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 11:39 am
Powered by Dreamwidth Studios