Как стать автором
Обновить

Комментарии 29

а где Совершенный код?

Хм. Вот нахрена советовать всем читать банду четырех? Во-первых, эта книга для определенного уровня, начинающим ее читать просто вредно — пользы не принесет, и потом, это скорее (в какой-то мере) справочник, а не учебник.


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


Ну или Керниган и Ритчи? Серьезно? Не, я не против, классическая книга, и язык, многое определивший в развитии индустрии. Но если вы сегодня, в 2017 не можете назвать более полезную сегодня книгу (а не исторический артефакт, по-хорошему любопытный только ради истории) — это грустно.

НЛО прилетело и опубликовало эту надпись здесь

Я бы не взялся советовать книги на любой случай. Это зависит от направления, в каком вы хотите развиваться. Есть люди, которые вполне себе живут, программируя под платформы типа MS SQL Server или Oracle, базы данных и все что вокруг них. И зачем им язык C, кроме как ради знания истории?


Если без конкретных названий и авторов — то примерно так, не ограничиваться например ООП, и только паттернами проектирования, чтобы не сужать свой кругозор, а почитать что-то про другие парадигмы, функциональное программирование, например, чтобы представлять, что бывают и совсем другие языки, лисп например, или хаскель. Даже если вы не будете на них работать реально — это даст вам представление, что тоже самое можно делать и иначе, и возможность выбора того способа, который вам и для задачи более удобен.


А уж книгу про язык C начинать читать если вы реально собрались в этом направлении развиваться — скажем, писать что-то в области embedded.


Вот насчет Таненбаума я скорее соглашусь, хотя сам читал как раз другую его книгу, про ОС, и давно уже, лет 30 тому назад.


И вот с этим советом можно только согласиться, хотя следовать ему сложно — пока не прочел, откуда знать, что там внутри:


Но мой вам совет: выбирайте книги, которые дадут в первую очередь понимание, а не просто поверхностную информацию.

И еще — я бы посоветовал почитать что-то из другой области. Ну хотя бы Том ДеМарко, Тимоти Листер — есть несколько их книг по управлению проектами, их стоит почитать разработчикам тоже, потому что они дают понимание, как развивается проект в целом, как управлять рисками, как работать в команде. Ну и потом, они просто прикольные )))

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

Я не знаю, про какую вы конкретно, но да — суть в том, что про паттерны с тех пор написали много чего, под разные языки реализации, скажем под .Net или Java. И это было бы практически полезнее, GoF еще и очень абстрактная книженция.

Я так понял, что речь идет о книге издательства O`Reily из серии HeadFirst под названием Design Patterns. На мой взгляд это одна из самых понятных книг на эту тему.
Поддерживаю. После прочтения этой книги чтение паттернов «банды четырех» пройдет с большей пользой и удовольствием.

Вот, чтоб было понятнее, почему я против чтения GoF в чистом виде, начинающими: цикл статей Марио Фуско на общую тему, как трансформировались некоторые паттерны с появлением в Java 8 лябмд: https://www.voxxed.com/blog/2016/04/gang-four-patterns-functional-light-part-1/.


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


И в общем-то, если посмотреть в сторону лиспа, или даже javascript, можно увидеть, что тот или иной паттерн — всего лишь функция, возвращающая другую функцию, к примеру. А если вы под .Net пишете, то в современном c# тоже многие вещи проще делаются, нежели описано в классической книге про паттерны.


Я это к чему — книга GoF вообще пожалуй нужна на сегодня только тем, кто привязан к конкретному, причем скорее всего не самому современному ООП языку. В ФП парадигме есть свои паттерны, хотя их там так обычно не называют, и по ним есть другая неплохая литература. Ну хотя бы недавно упомянутый этот перевод.

Ожидал увидеть «Совершенный Код» еще, достойная книга, для пополнения списка.
Книги это конечно очень хорошо, из этой коллекци я читал Рихтера «CLR via C#». Но мне очень сложно дается их читать, после прочтения пары страниц я начинаю зевать. Как с этим бороться?
Для тех, кто занимается разработкой корпоративных информационных систем, можно еще посоветовать книги Мартина Фаулера и др.: «Шаблоны корпоративных приложений», «Архитектура корпоративных программных приложений».
Я бы добавил в Ваш список
Шаблоны интеграции корпоративных приложений
Где Фаулер? Где Макконелл? Где Кнут, наконец? Почему надо читать c, но не надо читать, скажем, erlang? Очень спорный список.
Книга Таненбаума «Операционные системы. Разработка и реализация» — одна из лучших технических книг, которые я прочитал. Рекомендую всем
Можно расширить список :)

Чтобы менеджмент на голову не садился
  • The Clean Coder by Robert Cecil Martin


Чтобы научиться писать декларативный и подерживаемый код
  • Elegant Objects by Yegor Bugayenko


Для коллаборации команды и разруливания говнокода в монолитных проектах
  • Domain-driven design by Eric J. Evans


Чтобы иметь представление как организовывать высоконагруженные проекты и предоставлять клиентам
  • Building Microservices by Sam Newman


Тут можно ещё добавить про SCRUM и TDD, остальное практика
Также очень подтягивает изучение другой парадигмы, углубление в алгоритмы и куда же без Математики :)

Scrum и tdd вовсе не обязательно нужно всем. К сожалению, все подобные попытки написать список из пяти (десяти, ста) лучших книг, которые нужно прочесть всем, всегда сводятся в конечном счете к этому.


Что включать, а что нет. Например, нужно ли разработчику непременно уметь работать с VCS? И если да, то с какой-то конкретной (например Git), или вообще? И вроде бы хорошо уметь вообще, а много можно назвать книг, которые бы хорошо рассказывали про версионирование кода в общем, без привязки к Git, SVN или чему-то еще?

Elegant Objects by Yegor Bugayenko

это ведь тот Егор, о котором я думаю?

Я вас не понимаю, ну статья, стандартный холивар-shit-throwing в коментах, как обычно. К чему тут Элегантные объекты или Егор (комменты читать особо не вижу смысла — много, бестолково да и пользы ноль. Могу угадать результат — никто никого не переубедил, ведь так? )

коменты/отзывы/ревью имеет смысл читать перед покупкой книги, чтобы не выкидывать зря свое время и деньги
идеи изложенные в этой книге маргинальны, если вас устраивает быть белой вороной (и писать говнокод, но это уже моя субъективная точка зрения), то как бы пожалуйста, никто не запрещает
Очень спорный пост.
Почти генератор флейма.
Вот почему мне джависту и немного веб «стоит прочесть» рихтера?
не я понимаю книга вроде популярна о нем много пишут. Вот только почему???
У Рихтера интересные книги про внутренности Windows, которые стоит почитать, если разрабатываете под эту систему. Даже если на Java. Всегда полезно понимать, что там внутри.
Я бы порекомендовал прочесть Сергея Теплякова «Паттерны проектирования на платформе .NET» — современная, написана на русском языке — нет проблем с переводом.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий