программистское
Dec. 7th, 2007 07:50 pmРеддит приятно удивил темой Must-read programming books с множеством хороших советов.
Я, кстати, так и не прочитал SICP, хотя несколько раз собирался - не пришлось как-то. Не уверен, что теперь имеет смысл, хотя, наверное, как минимум пролистаю как-нибудь.
И Кнута... я не уверен, что есть смысл читать Кнута. Много лет я лелеял высокий идеал чтения Кнута, но сами книги, когда я пытался их открывать, не совпадали с их образом согласно идеалу. Может, я был слишком ленив, не знаю - но сейчас мне отнюдь не кажется кощунством мысль о том, что сам идеал был слишком наивен. Кроме того, мне неоднократно в последние годы встречалась разумная мысль о том, что немалая часть этих книг оказывается сейчас просто нерелевантной, потому что весь анализ алгоритмов там не учитывает возможности, что память может быть более и менее важная - а в наше время кэшей процессоров, в десятки и сотни раз более быстрых, чем основная память, это обстоятельство оказывается одним из ключевых для анализа алгоритмов.
Я, кстати, так и не прочитал SICP, хотя несколько раз собирался - не пришлось как-то. Не уверен, что теперь имеет смысл, хотя, наверное, как минимум пролистаю как-нибудь.
И Кнута... я не уверен, что есть смысл читать Кнута. Много лет я лелеял высокий идеал чтения Кнута, но сами книги, когда я пытался их открывать, не совпадали с их образом согласно идеалу. Может, я был слишком ленив, не знаю - но сейчас мне отнюдь не кажется кощунством мысль о том, что сам идеал был слишком наивен. Кроме того, мне неоднократно в последние годы встречалась разумная мысль о том, что немалая часть этих книг оказывается сейчас просто нерелевантной, потому что весь анализ алгоритмов там не учитывает возможности, что память может быть более и менее важная - а в наше время кэшей процессоров, в десятки и сотни раз более быстрых, чем основная память, это обстоятельство оказывается одним из ключевых для анализа алгоритмов.
no subject
Date: 2007-12-07 06:34 pm (UTC)Я бы сказал, программирование сегодня стало настолько широким и расплывчатым понятием, что единого списка книг для всех просто не существует.
no subject
Date: 2007-12-07 06:41 pm (UTC)no subject
Date: 2007-12-07 07:07 pm (UTC)no subject
Date: 2007-12-07 07:08 pm (UTC)no subject
Date: 2007-12-07 07:09 pm (UTC)Не забирать же "Браво!", в самом деле :)
no subject
Date: 2007-12-07 06:41 pm (UTC)no subject
Date: 2007-12-07 07:29 pm (UTC)no subject
Date: 2007-12-07 09:58 pm (UTC)PS: конечно, кеши и конвееры вносят свои коррективы. В этом смысле идея подсчитывать такты процессора выглядит устаревшей, но все остальное в этой книге вполне достойно. Кроме того, книга многослойная. Ее можно читать по диагонали, можно углубляться, решая задачи.
Другое дело, что в многих местах книжка сильно остала от времени, в частности в разделе поиска. Говорят, что кое-что появится в следующих томах. Опять-таки, раздел по хеш-функциям, насколько я понимаю, охватывает только проверенные теоретические результаты, но на практике линейные хеши оказываются далеко не самыми лучшими.
no subject
Date: 2007-12-08 12:20 am (UTC)Я.
no subject
Date: 2007-12-08 12:27 am (UTC)no subject
Date: 2007-12-10 04:33 pm (UTC)no subject
Date: 2007-12-08 06:38 pm (UTC)no subject
Date: 2007-12-09 04:26 pm (UTC)no offence.
no subject
Date: 2007-12-07 06:44 pm (UTC)no subject
Date: 2007-12-07 06:56 pm (UTC)no subject
Date: 2007-12-08 09:31 am (UTC)http://www.azillionmonkeys.com/qed/sort.html
no subject
Date: 2007-12-08 10:52 am (UTC)Yes this is true -- I picked something that would be sure to fit into the on-chip CPU cache of any modern CPU.
no subject
Date: 2007-12-07 06:46 pm (UTC)Из кнута мне очень понравилась "конкретная математика"
no subject
Date: 2007-12-07 07:37 pm (UTC)no subject
Date: 2007-12-09 09:22 pm (UTC)no subject
Date: 2007-12-07 06:50 pm (UTC)Она доступна свободно, и обязательня (имхо) для чтения начинающими программистами
no subject
Date: 2007-12-07 07:36 pm (UTC)... Встречаются Ёроол-Гуй, Олгой-Хорхой и Шай-Хулуд ...
no subject
Date: 2007-12-07 07:07 pm (UTC)Короче - книги стоят того... но не всем же это надо по жизни. Вон птички божии - не сеют, не пашут, и Кнута не читали.
Просто когда народ лезет с глупостями на тему как генерировать случайные числа или как тестировать генераторы случайных чисел или там со всякими оценками сортировок... ну с нечитавшими Кнута разговаривать на эти темы имеет мало смысла.
no subject
Date: 2007-12-07 11:09 pm (UTC)Не в том смысле, что основной материалл он выкладывает в задачи, как некоторые авторы продвинутых текстбуков просят доказать многие теоремы.
А в том смысле, что большая часть программирования (в смысле инжениринга, а не разработки систем типа "Консультант плюс" или веб-сайтов) требует не очень большой объем базовых знаний -- условно тот же Кормин и немного больше, но гораздо более требовательно к умению находить вывод из нестандартных ситуаций. Плюс "алгоритмическое мышление" вплоть до умения доказывать, что алгоритм плох, находить самые тяжелые сдучаи для данного алгоритма
Этим задачки (особенно рейтинг как тяжелые) у Кнута и хороши
no subject
Date: 2007-12-08 06:12 am (UTC)Ха! Знал бы ты, с каким количеством глупостей народ лезет на тему как данные сжимать!
no subject
Date: 2007-12-10 02:48 pm (UTC)no subject
Date: 2007-12-07 08:34 pm (UTC)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.
Интересно, кто за пределами американской аудитории это поймет?
no subject
Date: 2007-12-07 08:46 pm (UTC)no subject
Date: 2007-12-07 09:06 pm (UTC)no subject
Date: 2007-12-08 05:52 am (UTC)no subject
Date: 2007-12-07 10:53 pm (UTC)Гугль подсказал.
no subject
Date: 2007-12-07 11:04 pm (UTC)no subject
Date: 2007-12-08 12:30 am (UTC)no subject
Date: 2007-12-08 12:51 am (UTC)no subject
Date: 2007-12-07 10:47 pm (UTC)no subject
Date: 2007-12-08 01:09 am (UTC)кэши
Date: 2007-12-08 09:26 am (UTC)Слово "весь" я воспринимаю здесь как полемическое заострение. :) Всё же, с вычислительной моделью, где элементарными операциями являются чтения и запись одного слова в память, иметь дело приходится нечасто.
...в наше время кэшей процессоров, в десятки и сотни раз более быстрых, чем основная память, это обстоятельство оказывается одним из ключевых для анализа алгоритмов
Скорее всего, Вы с этим знакомы, но есть довольно разумная идея строить структуры данных так, чтобы они автоматом работали хорошо (в некотором разумном понимании) с кэшами любых размеров, а следовательно, и со всей иерархией памяти от дисков до кэша первого уровня на процессоре. Для этого, правда, требуется непосредственно управлять размещением объектов в памяти, что не всегда возможно.
Обзоры:
http://en.wikipedia.org/wiki/Cache-oblivious_algorithm
http://blogs.msdn.com/devdev/archive/2007/06/12/cache-oblivious-data-structures.aspx
Евгений Д.
no subject
Date: 2007-12-08 12:12 pm (UTC)no subject
Date: 2007-12-08 01:33 pm (UTC)no subject
Date: 2007-12-09 11:51 pm (UTC)no subject
Date: 2007-12-09 11:59 pm (UTC)no subject
Date: 2007-12-10 02:51 pm (UTC)это если точно знаешь что на практике НЕ прийдется заниматься низкоуровневыми вещами :)
no subject
Date: 2007-12-10 04:43 pm (UTC)Re: в десятки и сотни раз более быстрых, чем основная пам
Date: 2007-12-10 04:49 pm (UTC)