LINUX.ORG.RU
ФорумTalks

Кнут... и пряник?


0

0

Давным-давно, лет восемь назад, когда я еще учился в универе, зашел я как-то в книжный магазин. И увидел на полке трехтомник Дональда Кнута «Искусство программирования».

Лирическое отступление (для тех, кто не в теме):
Кто не слышал о Кнуте и его монументальном труде, благодаря которому любой может научиться программировать, имея только книгу, бумагу и много (много-много-много...) терпения?

Я, несмотря на относительную молодость, с этим писателем сталкивался до этого несколько раз, однако купить его произведения никогда не удавалось (инетов тогда не было). А тут такое! Несмотря на запредельную для меня цену (студент, только начавший работать), нужные деньги быстро нашлись и трехтомничек перекочевал жить ко мне на полку.
Первый том удалось осилить за два месяца. Я совру, если скажу, что выполнял ВСЕ упражнения (даже, если скажу - большую часть, те что со звездочкой редко мне удавались). После этого я посмотрел на Кнута, он посмотрел на меня и я... забил. Нет, второй и третий том я открывал, бывало, прочитывал несколько страниц, однако не сложилось. Это произведение нужно читать вдумчиво, желательно с ручкой и бумагой, оно не терпит быстрых казачьих наскоков, а вот со временем у меня стало плохо.
До сих пор об этом сожалею, до сих пор так и не удосужился добить это дело. Честно говоря, даже как-то стыдно...

Посему, у меня вопрос, уважаемые дамы и господа. Прочитал ли кто-нибудь из Вас ВСЕГО Кнута?

З.Ы. Я в курсе, что Мастер написал еще два или три тома к тем трем, что есть у меня дома, однако их у нас не продают :(

★★

> Прочитал ли кто-нибудь из Вас ВСЕГО Кнута?

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

P.S. По ходу читал только Всё про TeX, Всё про METAFONT и Компьютерная типография.

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

Это не байка, сзади, на обложке, приведено, как цитата. Тоже стоит 3х томник на полке. Использую как справочную литературу по необходимым алгоритмам. Понадобилось что-то, открыл, прочитал, вникнул, закрыл.

Kristi
()

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

Весьма сомнительное утверждение.

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

Медведей учат на велосипеде кататься, играя на баяне.

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

Попробуйте хотя бы начать. Это может увлечь. Серьезно

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

>А зачем нужна эта книга? Нет, правда?

Чтобы прочитать и больше не задавать подобных глупых вопросов.

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

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

dumal ★★
() автор топика

>Прочитал ли кто-нибудь из Вас ВСЕГО Кнута?

Нет. Не читал и не имею такого желания.

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

> Все основные алгоритмы собраны в одном месте.

Чисто ради знаний это всё важно, но на практике готовую реализацию найти проще. В общем, не лежит у меня к этому сердце)

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

Фундаментальные знания еще никому не мешали. Вы же не гуглите таблицу умножения, мотивируя это тем, что готовую реализацию найти проще.

dumal ★★
() автор топика

Есть вопрос: нужны ли особые знания математики чтобы начать, или ср. школы хватит?

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

Все зависит от Вашего настроя и терпеливости. В принципе, Вы ведь идете, наверное, «сверху» - уже умея программить, начинаете читать. Это должно помочь.

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

Вброс detected.

Есть вопрос: нужны ли особые знания математики чтобы начать, или ср. школы хватит?

Хе-хе. Этот «вброс» уже 100 раз обсуждали. Моё мнение: сильно зависит от того что писать.

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

В книгах много математических формул и терминов. Люди с тех. высшим образованием к ним привычны. Однако, если мне не изменяет память, Кнут в начале подчеркивает, что специальные знания не требуются

dumal ★★
() автор топика
Ответ на: Вброс detected. от Camel

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

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

Учитель за учеников не отвечает. Да и не известно, читал ли хотя бы 1% индусов сей монументальный труд

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

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

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

> Плюс специальная идеальная машина, чтобы их исполнять

О да - сферическая машина в вакууме для сферических в вакууме алгоритмов. И к тому же десятичная - видимо это чтобы потом при переходе на железную архитектуру был разрыв шаблона.

Ведь не зря же он потом стал создавать RISC машину mmix и возникла задача переписывания всех алгоритмов с mix на mmix.

К сожалению (или к счастью) произошли некоторые явления которые снизили ценность книг Кнута.

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

2. Компьютеры изменились. У них появился многоуровневый кэш + предсказание переходов + спекулятивное (out of order) выполнение инструкций. И если действительно требуется быстродействие в работе алгоритма все это нужно учитывать.

3. Появление VHDL (FPGA), которые могут гарантировать нужные свойства работы алгоритма (гарантированное время обработки информации) при приемлемой энергоэффективности.

4. Почти никто не пишет на ассеблере. Компилятор C генерирует эффективный код. Java генерирует эффективный код. Появились новые подходы к оптимизации (LLVM)

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

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

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

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

ЕМНИП, то не всякого возьмёт, а если человек прочитал этот труд Кнута, то ему, человеку, следует послать своё резюме в направлении Билли.

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

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

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

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

А просто призвал не молится на книги Кнута. К тому же при изучении программирования (как и при любом другом) надо получать положительную обратную связь. Реализовывать полученные навыки в конкретных задачах, желательно используемых конкретными людми. Я с трудом себе могу представить человека, который будет пять (десять) лет решать все задачи из книг Кнута, а потом пойдет устраиваться на работу. Кто будет его все это время кормить? Во сколько лет он закончит решение всех задач? Какую ценность это будет представлять для современного работодателя?

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

> Все основные алгоритмы собраны в одном месте

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

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

Это называется «гимнастика для ума». Ею можно заниматься параллельно основной работе, осваивая новые навыки. К тому же, некоторые вещи остаются неизменными в течение оч-чень долгого периода времени.

Хотя, признаю, Ваша точка зрения, выраженная в первом Вашем посте, имеет право на существование.

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

>Мне кажется, что это преувеличение. Новые алгоритмы постоянно появляются. И есть задачи, нерешенные до сих пор, которые ожидают своего героя.

Согласен. Однако, мы до сих пор находим решаем (в школе) квадратное уравнение таким же способом, как и много лет назад. И это лишь один из примеров

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

>>Мне кажется, что это преувеличение. Новые алгоритмы постоянно появляются. И есть задачи, нерешенные до сих пор, которые ожидают своего героя.

Согласен. Однако, мы до сих пор находим решаем (в школе) квадратное уравнение таким же способом, как и много лет назад. И это лишь один из примеров

Возвращаясь к Кнуту. Меня почему-то всегда больше привлекали другие книги, в которых была описана реальная проблема и реальный путь ее решения. Хотя бы та же Бентли «Жемчужины программирования».

А если говорить про обучение - есть очень много не менее достойных книг, которые будут по силе начинающим программистам. Например Вирт «Алгоритмы и структуры данных».

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

>А если говорить про обучение - есть очень много не менее достойных книг, которые будут по силе начинающим программистам. Например Вирт «Алгоритмы и структуры данных».

Золотые слова. Мы с Вами видим одну истину, просто с разных сторон :)

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

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

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

Я для этих целей Кормена использую...

ma1uta ★★★
()

нкоторые учат мертвые языки и читают классику в оригинале. некоторые читают кнута от корки до корки, уча ассемблер (m)mix и выполняя на нем все задания. каждый сходит с ума по-своему.

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

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

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

>нкоторые учат мертвые языки и читают классику в оригинале. некоторые читают кнута от корки до корки, уча ассемблер (m)mix и выполняя на нем все задания. каждый сходит с ума по-своему.

И такая точка зрения тоже имеет право на существование. Сколько людей - столько и мнений

dumal ★★
() автор топика

Заглядывал, но как-то не завлекло, довольно тяжелое чтение. Штудировать Кормена и Седжвика для матчасти было проще и полезнее.

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

Гранит науки тверд... Хотя я встречал мнение, что это не гранит, а... засохшее гуано той же твердости :)

dumal ★★
() автор топика

я на днях видел первый том (про алгоритмы) за 1,5к

overmind88 ★★★★★
()

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

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

А зачем???

Для повышения ЧСВ. Я сам даже первый том «Искусства» не осилил: дочитал до половины и надоело: уж очень усыпляюще он действует. Зато «Все про ТеХ» прочитал раз 5 (читаю раз в год-два, чтобы не забывать теховские трюки).

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

> Для повышения ЧСВ

С ним и так все хорошо

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