avva: (Default)
[personal profile] avva
Реддит приятно удивил темой Must-read programming books с множеством хороших советов.

Я, кстати, так и не прочитал SICP, хотя несколько раз собирался - не пришлось как-то. Не уверен, что теперь имеет смысл, хотя, наверное, как минимум пролистаю как-нибудь.

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

Date: 2007-12-07 06:34 pm (UTC)
From: [identity profile] kot-begemot.livejournal.com
Очень субъективно.
Я бы сказал, программирование сегодня стало настолько широким и расплывчатым понятием, что единого списка книг для всех просто не существует.

Date: 2007-12-07 06:41 pm (UTC)
From: [identity profile] trurle.livejournal.com
Программирование, как и любовь, это одно слово подразумевающее множество разнообразнейших занятий.

Date: 2007-12-07 07:07 pm (UTC)
From: [identity profile] trueblacker.livejournal.com
Браво! Отлично сказано.

Date: 2007-12-07 07:08 pm (UTC)
From: [identity profile] trurle.livejournal.com
Не мной 8-).

Date: 2007-12-07 07:09 pm (UTC)
From: [identity profile] trueblacker.livejournal.com
а и ладно.
Не забирать же "Браво!", в самом деле :)

Date: 2007-12-07 06:41 pm (UTC)
From: [identity profile] ygam.livejournal.com
Я три года назад перечитал Кнута и пришел к этому же выводу. Поищи в Яндекс-Блогз "Уважаемый профессор Кнут".

Date: 2007-12-07 07:29 pm (UTC)
From: [identity profile] avva.livejournal.com
Я помню твою запись об этом.

Date: 2007-12-07 09:58 pm (UTC)
From: [identity profile] itman.livejournal.com
Хорошая математическая книжка. Для специалиста по анализу алгоритмов. Фурор для своего времени. Как и книги Бурбаков. Но кто же сейчас читает Бурбаков?
PS: конечно, кеши и конвееры вносят свои коррективы. В этом смысле идея подсчитывать такты процессора выглядит устаревшей, но все остальное в этой книге вполне достойно. Кроме того, книга многослойная. Ее можно читать по диагонали, можно углубляться, решая задачи.
Другое дело, что в многих местах книжка сильно остала от времени, в частности в разделе поиска. Говорят, что кое-что появится в следующих томах. Опять-таки, раздел по хеш-функциям, насколько я понимаю, охватывает только проверенные теоретические результаты, но на практике линейные хеши оказываются далеко не самыми лучшими.
Edited Date: 2007-12-07 10:05 pm (UTC)

Date: 2007-12-08 12:20 am (UTC)
From: [identity profile] migmit.livejournal.com
Но кто же сейчас читает Бурбаков?
Я.

Date: 2007-12-08 12:27 am (UTC)
From: [identity profile] itman.livejournal.com
Да нет, понятно, что специалистам по основам математики читать Бурбаков полезно. Однако, все остальным я бы не посоветовал их в качестве чтения для улучшения понимания математики. Та же фигня и Кнутом: много знаний (даже по части алгоритмов не почерпнешь), однако мозги будут развиваться в правильном направлении, очень полезном для работы в области теории алгоритмов.

Date: 2007-12-10 04:33 pm (UTC)
From: [personal profile] alll
Тогда, наверное, "сейчас" стоит читать как "когда-либо". ;)

Date: 2007-12-08 06:38 pm (UTC)
From: [identity profile] relf.livejournal.com
в Яндекс-Блогз есть только нерабочая ссылка

Date: 2007-12-09 04:26 pm (UTC)
From: [identity profile] plakhov.livejournal.com
Очень неосторожный комментарий - по нему можно установить Вашу фамилию, место работы, список patent applications, и место на programming contest'ах в Беркли.

no offence.

Date: 2007-12-07 06:44 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
Ну как бы асимптотика-то не меняется. А так да, HeapSort должен получиться раз в двести-четыреста медленнее квиксорта, в среднем, на достаточно большом массиве.

Date: 2007-12-07 06:56 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
То есть не 200 и уж точно не 400 раз, это я загнул. Особенно в реальной задаче, с неинлайнутым (и, возможно, достаточно сложно устроенным) компарером, как минимум одиним уровнем индирекции етс. С другой стороны, если тупо сортировать инты, то, пожалуй, раз пятьдесят разницы можно получить. Это много!

Date: 2007-12-08 09:31 am (UTC)
From: [identity profile] aldr.livejournal.com
а вот товарищ считает что наоборот:
http://www.azillionmonkeys.com/qed/sort.html

Date: 2007-12-08 10:52 am (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
3. The number of elements of each array is too small.

Yes this is true -- I picked something that would be sure to fit into the on-chip CPU cache of any modern CPU.

Date: 2007-12-07 06:46 pm (UTC)
From: [identity profile] alexott.livejournal.com
SICP можно не только почитать, но и посмотреть - есть видеолекции, которые читали для сотрудников HP.
Из кнута мне очень понравилась "конкретная математика"

Date: 2007-12-07 07:37 pm (UTC)
From: [identity profile] http://users.livejournal.com/_navi_/
тяжёлая книжка, мне так и не далась, застрял в начале, где-то после полов/потолков. Но это конечно всё вопрос времени и приоритетов.

Date: 2007-12-09 09:22 pm (UTC)
From: [identity profile] deni-ok.livejournal.com
"Конкретная", да, хороша.

Date: 2007-12-07 06:50 pm (UTC)
From: [identity profile] alexott.livejournal.com
кстати, в свое время мне очень понравилась книга "Advanced programming language design" Finkel = http://www.amazon.com/Advanced-Programming-Language-Design-Raphael/dp/0805311912
Она доступна свободно, и обязательня (имхо) для чтения начинающими программистами

Date: 2007-12-07 07:36 pm (UTC)
From: [identity profile] slobin.livejournal.com
Ага. А если вы уже не совсем начинающий, очень полезно подумать, почему он не рассказал о той или иной (кажущейся вам существенной) особенности языка.

... Встречаются Ёроол-Гуй, Олгой-Хорхой и Шай-Хулуд ...

Date: 2007-12-07 07:07 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Я года три назад перечитал третий том Кнута и перелистал второй. Но чтобы их читать, надо внимательно прочитать первый.

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

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

Date: 2007-12-07 11:09 pm (UTC)
From: (Anonymous)
Мне всегда казалось, что сила Кнута не в текстах, а задачках
Не в том смысле, что основной материалл он выкладывает в задачи, как некоторые авторы продвинутых текстбуков просят доказать многие теоремы.
А в том смысле, что большая часть программирования (в смысле инжениринга, а не разработки систем типа "Консультант плюс" или веб-сайтов) требует не очень большой объем базовых знаний -- условно тот же Кормин и немного больше, но гораздо более требовательно к умению находить вывод из нестандартных ситуаций. Плюс "алгоритмическое мышление" вплоть до умения доказывать, что алгоритм плох, находить самые тяжелые сдучаи для данного алгоритма
Этим задачки (особенно рейтинг как тяжелые) у Кнута и хороши

Date: 2007-12-08 06:12 am (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Просто когда народ лезет с глупостями на тему как генерировать случайные числа...

Ха! Знал бы ты, с каким количеством глупостей народ лезет на тему как данные сжимать!

Date: 2007-12-10 02:48 pm (UTC)
From: [identity profile] silpol.livejournal.com
...генераторы псевдослучайных чисел

Date: 2007-12-07 08:34 pm (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Там пишут:

Knuth, SICP, and K&R are the R, S, T, L, N, and E of required programming reading.

Q: Как переводится на американский Sine qua non?
A: R, S, T, L, N, E.

Интересно, кто за пределами американской аудитории это поймет?

Date: 2007-12-07 08:46 pm (UTC)
From: [identity profile] krace.livejournal.com
любой, кто не поленится скопировать строчку в форму поиска и нажать кнопку

Date: 2007-12-07 09:06 pm (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Я спросил "кто поймет", а не "кто сможет найти, что это значит".

Date: 2007-12-08 05:52 am (UTC)
From: [identity profile] krace.livejournal.com
тогда тот, кто не поленится (далее по тексту) для максимум двух строк из набора "R, S, T, L, N, E" и "sine qua non".  =)

Date: 2007-12-07 10:53 pm (UTC)
From: [identity profile] avva.livejournal.com
Гм, а вот этого я совершенно не знал. Смущен.
Гугль подсказал.

Date: 2007-12-07 11:04 pm (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Чего ж тут смущаться? Мало ли разных game shows.

Date: 2007-12-08 12:30 am (UTC)
From: [identity profile] itman.livejournal.com
Возмущенно: а ведь когда-то латынь изучали в школе!

Date: 2007-12-08 12:51 am (UTC)
spamsink: (Default)
From: [personal profile] spamsink
:)

Date: 2007-12-07 10:47 pm (UTC)
From: [identity profile] pingva.livejournal.com
сикп все равно до сих пор решает, читал просто с упоением =)

Date: 2007-12-08 01:09 am (UTC)
From: [identity profile] cema.livejournal.com
Я не знаю хороших моделей многоуровневой памяти.

кэши

Date: 2007-12-08 09:26 am (UTC)
From: (Anonymous)
весь анализ алгоритмов там не учитывает возможности, что память может быть более и менее важная

Слово "весь" я воспринимаю здесь как полемическое заострение. :) Всё же, с вычислительной моделью, где элементарными операциями являются чтения и запись одного слова в память, иметь дело приходится нечасто.

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

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

Обзоры:
http://en.wikipedia.org/wiki/Cache-oblivious_algorithm
http://blogs.msdn.com/devdev/archive/2007/06/12/cache-oblivious-data-structures.aspx

Евгений Д.

Date: 2007-12-08 12:12 pm (UTC)
From: [identity profile] flaass.livejournal.com
Странно, что TeX Book Кнута никто не упомянул.

Date: 2007-12-08 01:33 pm (UTC)
From: [identity profile] gt.livejournal.com
По слухам, второе издание Кнута (80-е) было на паскале, а не на микс-машине. Я воспитан на первом, мне кажется, микс-машина крайне дурна. Некоторые вещи (сортировка и поиск) у Гарольда Лорина лучше намного. Вместо Танненбаума (мне кажется) лучше книжка аэнбешника Кейслера. Мак-кракен хорош, если забыть про фортран, неплохое введение в чмы (но лучшие чмы у Воеводина). Про лямбду кроме Чёрча есть хорошие книжки (на русском такая красная была начала 80-х) и заумная Барендрегта. И почему-то решётки Скотта пропущены совсем. Ещё David Gries compiler theory. И обязательно Николай Вирт с Эдсгером Дийкстрой.
Edited Date: 2007-12-08 01:36 pm (UTC)

Date: 2007-12-09 11:51 pm (UTC)
From: (Anonymous)
Нет, Мак-Кракен плох и плох катастрофически, поскольку устарел на 40 лет не только в смысле фактического материала, но и в части расстановки акцентов.

Date: 2007-12-09 11:59 pm (UTC)
From: [identity profile] ltwood.livejournal.com
Это был я.

Date: 2007-12-10 02:51 pm (UTC)
From: [identity profile] silpol.livejournal.com
И обязательно Николай Вирт с Эдсгером Дийкстрой.

это если точно знаешь что на практике НЕ прийдется заниматься низкоуровневыми вещами :)

Date: 2007-12-10 04:43 pm (UTC)
From: [identity profile] gt.livejournal.com
Нет, это если ЗАНИМАЕШЬСЯ ими.
From: [personal profile] alll
Так ведь разделение на быструю-дорогую-маленькую и медленную-дешёвую-большую вроде как ещё с магнитных лент идёт.

January 2026

S M T W T F S
    1 2 3
4 5 6 7 8 910
11 12 1314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 15th, 2026 02:37 pm
Powered by Dreamwidth Studios