LINUX.ORG.RU
ФорумTalks

Классика программирования


0

0

Маленький опрос: какие книги вы считаете классикой и необходимым источником информации нормального программиста? Я назову две:

1) Керниган и Ритчи: "Язык сами знаете какой"

2) Дональд Кнут: "Искусство программирования"

★★

1) Приемы обьектно-ориентированного проектирования. Там 4 автора

2) Брюс Эккель. Философия С++.

3) Джон Раскин. Интерфейс.

Beria1937
()
Ответ на: комментарий от Beria1937

> 1) Приемы обьектно-ориентированного проектирования. Там 4 автора

А вот быдлопаттерны вообще маленьким детям нельзя давать. :-E А давать им надо исключительно HTDP и SICP, а дальше сами разберутся.

ero-sennin ★★
()

> Дональд Кнут: "Искусство программирования"

Ну а Кнута вообще надо купить, поставить на полку и забыть.

ero-sennin ★★
()
Ответ на: комментарий от ero-sennin

> А вот быдлопаттерны вообще маленьким детям нельзя давать.

Ну там же на обложке написано - уровень читателя - опытный/эксперт. Какие нафиг дети? Дети должны в школу ходить, букварь читать.

Beria1937
()

Ахо, Сети, Ульман - Компиляторы, принципы, технологии, инструменты Таненбаум - для общего развития

Legioner ★★★★★
()

Ахо, Ульман, Таненбаум, Кнут, Страуструп

smh ★★★
()

Первин Ю.А., Дуванов А.А., Зайдельман Я.Н., Гольцман М.А.: "Роботландия"

MiDoS
()

Время меняется, меняются и методы программирования. Необходимый источник информации "нормального" программиста (хотя где Вы видели нормального "нормального" программиста) это опыт и постоянный мониторинг своей области.

Программист мельчает, т.е. становится узкоспециализированным. Теперь писать самому, например, алгоритм быстрой сортировки, да и вообще сортировки уже не нужно. Трехтомник Кнута остался нужен только программистам микроконтроллеров. Библии программиста уже нет, и, наверное, не будет. Надо стараться просматривать все книги попадающеся на глаза, но только один раз. Ну и не гнушаться другими источниками информации.

Классики, которая всегда будет востребована нет. Есть та, по которой можно учиться, но потом, в работе, она будет бесполезна.

soomrack ★★★★
()

Из книг, которые я читал или хотя бы листал могу рекомендовать в необходимые к наличию на полке.

1) Дональд Кнут, Искусство программирования.

2) Фредерик Брукс, - Мифический человеко-месяц. (Хотя книга несколько спорная.)

3) Никлаус Вирт, Алгоритмы и структуры данных.

4) Б. Керниган, Р. Пайк, - Практика программирования.

5) Джон Бентли, Жемчужины программирования.

6) А. Ахо, Р. Сети, Д. Ульман, - Компиляторы. Принципы, технологии, инструменты.

7) Э. Реймонд, - Искусство программрования для Unix.

8) Что-нибудь по численным методам, например: Бахвалов Н.С., Жидков Н.П., Кобельков Г.М - Численные методы.

9) Харольд Абельсон, Джеральд Сассман, Джули Сассман, - Структура и интерпретация компьютерных программ.

10) Ф. А. Новиков, - Дискретная математика для программистов. (Учебник может и не самый лучший, но вообще что-то нужно по алгоритмистике)

11) Крупная статья: Н.П. Брусенцов, - Блуждание в трех соснах Приключения диалектики в информатике. (И вообще материалы по компьютеру Сетунь и троичной логике.)

12) Манин Ю.И., - Вычислимое и невычислимое.

13) Э. Таненбаум, А. Вудхалл, - Операционные системы. (Хотя, книга страдает однобокостью, кроме Unix практически ничего не рассмотрено, да и Unix в ней сильно на примере Minix рассматривается).

Вот, навскидку написал, причём я нарочно не приводил ничего по конкретным языкам и ОС, за исключением книги Реймонда, но она несмотря на название имеет довольно общий смысл.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Тогда уж надо бы добавить что-то по теории сложности. Ознакомиться и понять азы нужно обязательно.

soomrack ★★★★
()
Ответ на: комментарий от soomrack

В принципе, пункт 12 об этом. Просто я перечислил именно то, что сам читал, хотя бы по диагонали и через страницу. А вот добавить

14) К. Дж. Дейт, - Введение в системы баз данных

надо.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от anonymous_incognito

надо, и еще хорошо бы:

1) чего-нибудь про программирование под веб (приличной обзорной книги я не встречал)

2) обзорную книгу про ИИ (полезно)

soomrack ★★★★
()
Ответ на: комментарий от anonymous_incognito

И что-нибудь о _культуре_ написания кода. Обязательно! И что было написано крупными буквами правила для

1) написания комментариев

2) названия переменных, процедур и т.п. (венгерская нотация, например)

3) как выбирать язык программирования в зависимости от тз.

soomrack ★★★★
()
Ответ на: комментарий от soomrack

> И что-нибудь о _культуре_ написания кода. Обязательно! И что было написано крупными буквами правила для

Как-то я не встречал хороших книг, специально посвящённых данным вопросам, но в принципе две книги: Керниган с Пайком и Реймонда серьёзно затрагивают эти вопросы.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от soomrack

>И что-нибудь о _культуре_ написания кода. Обязательно! И что было написано крупными буквами правила для

>1) написания комментариев

>2) названия переменных, процедур и т.п. (венгерская нотация, например)

>3) как выбирать язык программирования в зависимости от тз.

Попробуйте Code Complete http://www.amazon.com/Complete-Microsoft-Programming-Steve-McConnell/dp/15561...

У нас она переведена как "Совершенный код" http://www.piter.com/book.phtml?978546900822

И пусть вас не смущает, что Стив из Microsoft. =)

iriyoox
()
Ответ на: комментарий от soomrack

> 1) чего-нибудь про программирование под веб (приличной обзорной книги я не встречал)

Я специально сделал список из книг, поднимающих очень общие темы, но если речь зашла про веб, то на мой взгляд весьма неплоха книга

> Ростислав Чебыкин, - Разработка и оформление текстового содержания сайтов.

Она как раз носит обзорный характер.

anonymous_incognito ★★★★★
()

Раньше путь Unix-программиста состоял из трех пунктов:

1. Украсть исходники UNIX;
2. Изучить их;
3. Написать свою версию.

Программистам GNU/BSD первый пункт можно опустить ;)

mutronix ★★★★
()
Ответ на: комментарий от iriyoox

>Попробуйте Code Complete
У нас она переведена как "Совершенный код"

Спасибо, скачал, просмотрю. Может и пригодится.

>И пусть вас не смущает, что Стив из Microsoft. =)
:) Там есть очень хорошие специалисты. На них все и держится.

soomrack ★★★★
()
Ответ на: комментарий от soomrack

> И что-нибудь о _культуре_ написания кода. Обязательно! И что было написано крупными буквами

Это бесполезно. Пока не потеряешь уйму времени на разбор кода, не научишься его оформлять. Это та область где люди учатся исключительно на ошибках.

mutronix ★★★★
()
Ответ на: комментарий от mutronix

>Это бесполезно. Пока не потеряешь уйму времени на разбор кода, не научишься его оформлять. Это та область где люди учатся исключительно на ошибках.

Учиться на ошибках легко, когда знаешь в какую сторону смотреть. Я верю в людей.

soomrack ★★★★
()
Ответ на: комментарий от xTERM

> А по-больше книг про интерпретаторы и компиляторы можно?

Можно. Хотя литературы на эту тему я знаю мало и как-то затрудняюсь сходу её назвать. Кстати, следует не забывать, что известная dragon-book (Ахо, Ульман про компиляторы) невполне всесторонне освещает вопрос конструирования компиляторов, об этом в частности пишет Страуструп, говоря что попав под их (авторов dragon-book) влияние первые компиляторы C++ делал с трудом и не так, как надо было бы.

> Марвин Минский, Вычисления и автоматы. (Хотя не совсем о компиляторах)

> Головешкин В.А., Ульянов М.В., - Теория рекурсии для программистов. (Опять же она напрямую не о компиляторах, но весьма важные вопросы теории алгоритмов освещает)

> http://rsdn.ru/article/philosophy/LOP.xml - Языково-ориентированное программирование: следующая парадигма (обсуждения этой статьи на форуме rsdn тоже стоит почитать, как и список упоминаемой литературы)

> Б. Страуструп, - Дизайн и эволюция C++ (фактически история создания компилятора C++)

> Е.А. Зуев, - Принципы и методы создания компилятора переднего плана Стандарта Си++, Диссертация на соискание ученой степени кандидата физико-математических наук. Лежит на http://www.cs.inf.ethz.ch/~zueff/PublicationsRus.htm Также и Зуева же публикации в журналах Мир ПК и КомпьюЛог, ссылки там же. (Зуев рассказывает как по заказу одной известной немецкой фирмы писался компилятор C++, интересно тем что подробно рассматриваются какие вообще практические задачи приходится решать разработчику компилятора)

anonymous_incognito ★★★★★
()

Python, просто Python... для Ruby пока книг к сожалению не нашёл на русском...

DemonZLa
()

Ну вот, уже 24 поста, но никто не вспомнил

Кормен, Лейзерсон, Ривест - Алгоритмы: Построение и анализ

ival ★★
()

Забыли самые интересные книги. (точнее самых интересных авторов)

1. Андрей Александреску (ну и по теме Саттер, Майерс) 2. Мартин Фаулер

хотя тут спорный вопрос кого на первое место ставить

in_dance
()

Брайан Керниган, Роб Пайк "UNIX. Программное окружение"

bigbit ★★★★★
()

+1 за теорию сложности.

Уже помоему можно не читать кнута и еже с ним, нужно просто знать сложности алгоритмов поиска/сортировки, на каких объёмах данных они работают и какую сигнатуру имеют в вашем яп.

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

in_dance
()
Ответ на: комментарий от in_dance

>Уже помоему можно не читать кнута и еже с ним, нужно просто знать сложности алгоритмов поиска/сортировки, на каких объёмах данных они работают и какую сигнатуру имеют в вашем яп.

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

Уметь нужно, но для понимания и в процессе обучения пытаться самому писать сортировку и анализировать ее сложность необходимо. Но потом забыть как страшный сон и использовать sort() и т.п.

soomrack ★★★★
()

1 не нужен

3) Барендрегт, "Ламбда исчисление"

4) Dragon book

5) Корн&Корн, справочник по математике для инженеров.

anonymous
()
Ответ на: комментарий от Beria1937

А опытный/эксперт и сам знает, что быдлоООП ему на хер не нужно.

anonymous
()
Ответ на: комментарий от soomrack

> Время меняется, меняются и методы программирования. Необходимый источник информации "нормального" программиста (хотя где Вы видели нормального "нормального" программиста) это опыт и постоянный мониторинг своей области.

Гонешь, лапоть. С 20-х годов прошлого века основы не поменялись. С середины 80х в IT не появилость ВООБЩЕ НИЧЕГО НОВОГО. Так за чем там надо "мониторить", а?!?

> Классики, которая всегда будет востребована нет.

Гы гы, смешной ребёнок!

> Есть та, по которой можно учиться, но потом, в работе, она будет бесполезна.

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

anonymous
()
Ответ на: комментарий от soomrack

> И что-нибудь о _культуре_ написания кода.

Тут вредно читать что либо кроме исходной статьи Кнута про литературное программирование.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.