Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ворчуния о книгах для админов и программистов : [24] Зерна из плевал


Информационный Канал Subscribe.Ru

IMHO Ворчунии  (архив выпусков) 2002-12-02

Зерна из плевал
Выпуск 24: ворчалка

Не пропустите завтрашнее окончание выпуска! Или прочтите сегодня тектсовую версию.

18Кб Обложка
Жемчужины программирования
Programming Pearls

Джон Бентли
Jon Bentley

Серия:        Библиотека программиста
  Оглавление
отрывок 1
отрывок 2
мнение 1
мнение 2
Дата выпуска:2002
Издательство:Питер   ISBN: 5-318-00715-5
(eng) 0-201-65788-0
Формат:16.5x23.5см, тощина - 1см, 268 страниц,
мягкий переплет, вес - 250г
Цена:  88 рублей
118 рублей
(Библион)
   101 рубль
108 рублей
(Зона ИКС)
   106 рублей
(Books.Ru)
   17,5 гривн
(ИнфоКОМ)

Перво-наперво, книга будет интересна даже ЮЗЕРАМ не продвинутым :-) А теперь по порядку...

Еще весной полистав в магазине "жемчужины", и не поняв где же тут жемчуг, пожала плечами и поставила ее обратно на полку. Заинтриговал же меня следующий факт: несколько подписчиков еще в мае и июне запрашивали мнение о сей книге, сообщив, что заказали книгу в издательстве, но когда я по осени поинтересовалась их мнением, оказалось, что никто книгу не смог даже начать читать. Т.е. в охотку она никому не пошла :-O

Поэтому я уговорила Ktirf-а дать мне первой прочесть его книгу, за что Ktirf-у большое спасибо :-)

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

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

Поэтому я еще раз подчеркиваю, что даже простой юзер может получить удовольствие от этой книги, если не будет комплексовать на редких вставках сишного кода :-)

Собственно говоря, задача о черте выгодности ежедневной провозки винчестера из одной "деревни" в другую по сравнению с протягиванием оптоволокном - к программированию относится поскольку постольку. А поиск самого частого слова в Библии?

Не абстрактность обсуждаемых задач - это большой плюс книги. Я, например, была очень удивлена, что нынче расчет взаимодействия 10 тысяч небесных тел занимает меньше суток :-)

Где юзер может заскучать - так это на третей части книги, но там и программист может заснуть :-) Массивы, списки, деревья, поиск, сортировка, выборка. Но к этому я еще вернусь.

2/3 книги, т.е. первая и вторая часть, эта даже не беллетристика для программиста. Подобный жанр я, кажется, встречала только у математиков. Каждый из Вас, если не читал, то смотрел мультики по самой известной книге этого жанра - книга Льюса Кэррола про приключения Алисы. Т.е. обучение и расшатывание стереотипов через рассказ или увлекательные задачи. Но книга Бентли не для младшего школьного возраста, она про умение без приборов делать оценки в цифрах, причем всегда делать такие оценки для одного и того же объекта из разных соображений.

Поясню свое разглагольствование адаптированной задачей из книги. Не считая, назовите сумму, которую Вы в месяц тратите на тэшки. Если на экспрессах не ездите - тот же вопрос насчет продуктов питания. Запишите число, а теперь с карандашом подсчитайте точную сумму. :)

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

И прежде чем, переходить к вопросам исключительно о программировании, мой совет кому и как книгу лучше читать.

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

К сожалению книга написан весьма тусклым языком или перевод такой. Хотя Змей оценил эту книгу на том же уровне, что и "Философия программирования для Windows" Гринзоу

Возможно это зависит от уровня подготовки. Собственно часть не для программистов закончена и Вы можете спуститься в низ и принять участие в "разминке".

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

Поначалу даже кажется, что автор занимается ерундой. Ну зачем что-то трогать, если работает, и ускорить алгоритм с 3 секунд до полусекунды? Современные компы считают быстро. Но когда автор демонстрирует как убирались тут 5% там 10%, и упомянутая ранее задача с гравитацией стала решаться не год, а всего сутки - становиться интересно, как такие мелочи дают такие прибыли. Но выбор первоначального решения первой задачи лично меня очень покоробил - нельзя читателя держать за такого идиота ;-) Все равно по ходу чтения книги почувствуешь себя именно таким неучем.

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

Кроме того меня очень обидел переводчик с редактором (человек, а не эдитор) в главе 14 - помимо неудачного перевода (это бы я пережила) там нет оригинального термина. Ладно, в коде аж через три страницы он есть. Но три страницы мучаешься, почему такую интересную и эффективную структуру как двоичное сбалансированное "монотонно убывающее к корню" дерево назвали КУЧЕЙ!

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

Эта книга в какой-то мере о том же. И написана в той же академической манере, но как веселое дополнение к следующим книгам

  • Седжвик "Алгоритмы"
  • Керниган, Пайк "Практика программирования"
  • Ахо, Ульман, Хопкрофта "Структуры данных и алгоритмы"


    Прочли?    Разминка для рук:
    С уважением, Ворчуния Ворчащая




    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу

    В избранное