IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Кнут "Искусство Программирования" (http://www.imho.ws/showthread.php?t=78792)

Asgard 30.01.2005 06:17

Кнут "Искусство Программирования"
 
Сразу хочу предупредить, что это не офтоп. Мне просто нужно прочитать мнения более опытных, нежели я программистов.

Дело вот в чём: покоится мирно у меня на книжных полках именитый трёхтомеик Кнута, и пользовался я им просто как справочником, находя нужную мне информацию или алгоритм. Но вскоре мне буквально все мои знакомые начали втирать, что я очень много потерял не прочитав эти книги. Что, мол, прочитав их, я добъюсь максимальной компактности и изящества кода. Я, признаться, ухи развесил и попробовал прочитать "Искусство программирования" максимально вникая в суть поставленых проблем... Где-то после двухста страниц я не выдержал и забросил чтение. Слишком уж много математематических терминов сваливается на голову при изучении материала.

В общем, мне, как я уже говорил выше, нужен совет действительно опытных программистов, знакомых с писаниной Кнута: стоит ли мне её читать или это пустая трата времени? Действительно ли "Искусство программирование" так помогает, как об этом говорят?

Заранее благодарен за ответы.

Hex0gen 30.01.2005 12:32

В большинстве задач прикладного программирования дословное знание Кнута не требуется. Свои плюсы, конечно, есть. Фишка в том, что Кнут - математик и занимается не программированием, а математикой и, в самом лучшем случае, построением алгоритмов решения конкретных задач. Вот он и строит (или описывает) алгоритмы пользуясь познаниями в тех или иных областях математики, доказывая их (алгоритмов) корректность и оптимальность.
Могут ли помочь такие познания программистам!? Как справочная литература, такое вполне возможно. Существует немало и других книг, в которых описываются алгоритмы и их построение.

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

blink 03.02.2005 23:38

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

Asker 04.02.2005 23:57

Ну, как сказал Билли, если вы прочитали все тома Кнута и даже что-то поняли, вам определенно нужно отправить мне резюме ;)

BC Scout 09.02.2005 00:32

Чтение Кнута - непростое, и, я бы сказал, не очень увлекательное задание.

Отличный справочник, особенно по алгоритмам сортировки.

В идейном плане он меня совсем не вдохновил. Есть намного более увлекательные авторы (пишущие об искусстве и/или ремесле программирования) :)

Vampire_Bat 16.02.2005 08:54

Посоветуйте что почитать НУЖНО для начинающего и для практикующего программиста. Какие книги реально рекомендуете по программированию. Не по языкам а по сущности.

EvroStandart 16.02.2005 16:02

В универе профессор сказал, что каждый программист должен прочитать " Джон Бентли Жемчужины программирования ".
Сам я ещё не прочитал, но книжку заимел :)

Dimm 16.02.2005 17:16

Я считаю, Кнут полезен для алгоритмиста, но не для программиста.

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

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

Вообще, я очень критично отнушусь к фразам типа: каждый программист должен прочесть ххх. Говорить так - все равно что говорить, что из А в Б только одна дорога. Но ведь это не так. Совершенствования в своей профессии можно достичь многими путями.

BC Scout 16.02.2005 22:08

Я бы посоветовал почитать работы ныне покойного Э. Дейкстры (E.Dijkstra).
Например "Дисциплина программирования". Или его Заметки и Программистские басни

Одно из его (шуточных) высказываний (по памяти): "Если отладка это процесс устранения ошибок, то программирование это процесс создания ошибок" :)

BC Scout 18.02.2005 21:15

Кстати, если будете искать работы Бентли на английском, имейте ввиду что он не совсем Джон (John). Он Jon Bentley. :)

Еще из полезных книг:

- некоторые работы Кернигана (одного из "отцов" C) , например "Элементы стиля программирования";

- Code Complete, by Steve McConnell (отличная книга, должно быть русское издание);

- Rapid Development его же. Более полезна правда для менеджеров программных проектов, но много дает для понимания происходящих процессов. Современный аналог знаменитого "Мифического человеко-месяца" Фреда Брукса (тоже достойнейшая, хоть и немного устаревшая, книга!);.

- Design Patterns, by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (тоже долна быть на русском).

Матроскин 03.03.2005 19:57

Не знаю, как начет прочтения творения профессора, однако книги по математике почитать стоит.

CEO 04.03.2005 00:17

На мой взгляд, чем абстрактней книга, тем меньше от нее пользы практикующему программисту, а больше будущему профессору ВУЗа, чтобы было чем своих подопечных пригружать по полной программе... Однако, думаю,что фундаментальные сочинения, в которых повествуется об искусстве составления алгоритмов, просто необходимо изучать, чтобы не изобретать велосипед при составлении собственных программ.
Именно сочинения: "Искусство Программирования", Кнут -- пробовал читать, местами интересно, местами кажется примитивным, но есть и много мест, для меня не вполне усваиваемых, поэтому это четие я временно забросил...

Offline 13.03.2005 00:08

Ну, понять ВСЕ без оконченного Матмеха тяжело, но почитать все равно стоит. Насчет "компактности и изящества кода" не знаю, но для глубокого понимания очень полезно.

EvroStandart 14.03.2005 11:58

Цитата:

Offline:
Ну, понять ВСЕ без оконченного Матмеха тяжело,
По моему вполне реально. Только рядом с книгой кнута надо положить пару учебников типа "Высшая математика для студентов". :)

shalomman 25.03.2005 23:35

Цитата:

Сообщение от BC Scout
Кстати, если будете искать работы Бентли на английском, имейте ввиду что он не совсем Джон (John). Он Jon Bentley. :)

Еще из полезных книг:

- некоторые работы Кернигана (одного из "отцов" C) , например "Элементы стиля программирования";

- Code Complete, by Steve McConnell (отличная книга, должно быть русское издание);

- Rapid Development его же. Более полезна правда для менеджеров программных проектов, но много дает для понимания происходящих процессов. Современный аналог знаменитого "Мифического человеко-месяца" Фреда Брукса (тоже достойнейшая, хоть и немного устаревшая, книга!);.

- Design Patterns, by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (тоже долна быть на русском).


Я бы добавил Кормена - "Алгоритмы: построение и анализ" очень помогает развить алгоритмическое мышление и доступно обьясняет многие не тривиальные алгоритмы.

Willow 26.03.2005 10:57

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

Смотри сам - если посли чтения Кнута, что-то отсаётся в голове, то почему бы и не поучится. Ведь гораздо полезнее помнить как решить, а не где искать решение. Хотя последнее, тоже, не мало важно.
И, как ты понимаеш, это отностится к любым книгам, а не только к Кнуту...

BC Scout 26.03.2005 12:53

Цитата:

Сообщение от Willow
Если процесс обучения приводит к результатам, то это не пустая трата времени. Если процесс обучения не приводит к результатам, то это пустая трата времени.

Смотри сам - если посли чтения Кнута, что-то отсаётся в голове, то почему бы и не поучится. Ведь гораздо полезнее помнить как решить, а не где искать решение. Хотя последнее, тоже, не мало важно.
И, как ты понимаеш, это отностится к любым книгам, а не только к Кнуту...

Такое понятие как КПД еще никто не отменял. :) Ведь ваши временнЫе ресурсы не бесконечны.
Время, потраченное на чтение любой книги, возможно было "украдено" у другого занятия, например ... чтения другой книги, возможно более полезной с точки зрения выбранной цели и установленных приоритетов.

Repressor 28.03.2005 20:20

Я рекомендую ее почитать хотя бы из-за главы "Сортировка"

BC Scout 28.03.2005 23:35

Цитата:

Сообщение от Repressor
Я рекомендую ее почитать хотя бы из-за главы "Сортировка"

Да, глава познавательная. Академический интерес представляет точно.

Хотя, за последние несколько лет мне несколько раз понадобилось сделать имплементацию специфичных сортировок. И что, вы думаете я стал вспоминать что я давным давно прочел у Кнута? Или, может быть, стал перечитывать эту главу? Нет, нет, и еще раз нет.

Я "пошел в Гугл" и сделал пару ПРОДУМАННЫХ запросов. И все.
Правда, наверное должен признать что Кнут-таки помог мне в составлении этих запросов.

GRINDER 29.03.2005 00:11

Эх, я всё это читал, изучал, ломал голову, а теперь ни фига не помню... прошло всего пару лет

Asgard 29.03.2005 02:03

Цитата:

Я рекомендую ее почитать хотя бы из-за главы "Сортировка"
Я сортировку изучал ещё по старпёрским СССР'овским учебникам по алгоритмам. Посмотрел сортировку у Кнута и ничего нового для себя там не нашёл. Всё то же самое, только с занудным математическим анализом. Вывод: старые учебники 60-80х рулят.

a_ber 05.04.2005 11:09

Не стоит воспринимать Кнута как чтиво "на всякий случай"
 
В данной дискуссии несколько линий (и пару гадостных замечаний на которые в целом следовало бы ответить...). ;)

По главной линии...
Как алгоритмист, имеющий продвинутую степень и по компьютерам и по науке, скажу для расширения горизонтов, чтение Кнута, как рекомедация, мало полезны: до него надо созреть самому, иначе это будет пустая трата времени. Для иллюстрации скажу, что это примерно тоже что считать Страуструпа - первым в жизни учебником по C++: он что угодно, но не это. Это беседы о C++ с очень умным и интересным собеседником, приводящим аргументы в спорах, вопросы которых вам непонятны, до которых вы возможно еще не дозрели. Там очень много полезного, но никакой дидактики.

Тоже с Кнутом: очень много вглубь, но часто малопонятно почему здесь а не чуть в сторону. Знать то о чем он говорит, на глубину которую он достигает, невредно, на мало необходимо. Для полудосужего чтения рекомендовал бы скорее CLR (Кормана): там больше вширь чем слишком глубоко вглубь --- это значительно расширит пространство идей и даст базис при необходимости капать вглубь уже на полную необходимую глубину (т.е. по статьям, обзорам и монографиям, а не учебникам)


Часовой пояс GMT +4, время: 00:03.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.