Eugene Kirpichov ([info]antilamer) wrote,
@ 2008-11-24 22:58:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Мы вернулись из Италии. Про это - позже (на этот раз вероятность того, что я все-таки расскажу, больше, чем в случае Греции - т.к. мой отпуск будет продолжаться еще неделю).


А теперь, по просьбе [info]zabivator - список книг по программированию, которые я считаю прекрасными.

- SICP - без комментариев.
- Кормен - тоже.
- R.Bird - Introduction to functional programming using Haskell - ценна тем, что а)уделяет очень много внимания алгебраическим свойствам функций, в т.ч. (!) и их поведению на недоопределенных входах и б)содержит несколько примеров восхитительно элегантного решения задач на Хаскелле. Мой любимый пример - когда наивное решение задачи о максимальной сумме подотрезка за O(n^3) сводится несколькими переписываниями по простым теоремам к решению за O(n).
- Воеводин,Воеводин - Параллельные вычисления. Не осилил целиком, но это фундаментальный труд о сложных проблемах распараллеливания программ. Содержит в себе массу описаний практических реализаций систем и фреймворков, их достоинств и недостатков.
- Танненбаум - Распределенные системы. Ее почему-то часто ругают, но мне она открыла глаза на ряд важных алгоритмов и т.п.
- Столлингс - Операционные системы. Увидел ее только вчера, но уже понял, что надо прочитать обязательно.
- Programming collective intelligence. Очень просто и понятно объясняет ряд основных алгоритмов information retrieval.
- Д.Ш.Матрос, Г.Б.Поднебесова - Теория алгоритмов. Купил ее в последний день перед отпуском и удивился тому, как такая тоненькая книжица в формате методички может быть настолько классной. Посвящена вопросам вычислимости и сложности; они освещаются очень понятно и красиво, я весьма многого раньше не знал.
- Tom Kyte - Oracle for Experts. Я, признаться, не читал книг о реализации СУБД, поэтому свет на эти вопросы мне пролила именно эта книга, хоть и в контексте именно Оракла. Но поскольку Оракл, в общем-то, и является последним словом в этих вопросах...
- Cleveland - Visualizing data, Elements of graphing data. Мне кажется, способность анализировать поведение своих (или чужих) программ, и вообще анализировать данные - довольно критична для программиста; эти две книжки представляют любопытнейшие и крайне эффективные способы визуализировать разные типы наборов данных - многомерные, дискретные, временные ряды, и т.п.
- По тем же причинам - Большаков,Каримов - Методы обработки многомерных данных и временных рядов. Восхитительный сборник методов анализа данных с массой практических примеров. Он не прост (как и сами задачи), но и не чрезмерно сложен. В самый раз для серьезного, практического применения к реальным задачам. Мне кажется, это тоже must-read для программиста.
- Bertot, Castellan - Coq'Art - хотя большинству программистов и не придется никогда столкнуться с Coq, эта книжка проливает свет на связь конструктивной логики и программирования и на то, как вообще программы могут быть верифицированы. В результате, узрев столько новых концепций и связей между ними и привычными вещами, вполне можно и изменить свой взгляд на повседневное программирование, и уж в любом случае книжка просто очень интересная.

Вместо "Паттернов" GoF рекомендую "Рефакторинг с использованием шаблонов" - по сути, шаблоны перечислены те же, но в более практичном контексте, и с помощью этой книги уже можно кое-чему научиться. Что не отменяет пальмы первенства GoF в плане введения терминологии.

Ну и отдельно про С и С++:
- Искусство программирования на Си. Забыл, кто автор.
- [More]Effective C++, [More]Effective STL
- Как не надо программировать на С++. Это типа Java Puzzlers - так же интересно, но более полезно, т.к. в паззлерах рассматриваются довольно эзотерические вещи, а тут - реальные, часто встречающиеся баги, на которые очень легко наступить.



(5 comments) - (Post a new comment)


[info]rigidus
2008-11-24 10:18 pm UTC (link)
Чувствую в пункте доставки на озоне меня узнавать скоро будут... только сегодня взял там 2 книжки из списка zabivator`a

(Reply to this) (Thread)


[info]zabivator
2008-11-25 08:34 am UTC (link)
Какие, если не секрет? =)

(Reply to this) (Parent)(Thread)


[info]rigidus
2008-11-25 10:00 am UTC (link)
Душкин - Функциональное программирование на языке Haskell - главным образом потому что на русском :)

Андрей Робачевский, Сергей Немнюгин, Ольга Стесик "Операционная система UNIX" - второе издание. Просто чтобы углубить и расширить :)

(Reply to this) (Parent)


[info]zabivator
2008-11-25 08:34 am UTC (link)
Спасибо!

(Reply to this)


[info]malaya_zemlya
2008-11-25 09:50 pm UTC (link)
Ежели интересует вопросы вычислимости и сложности то рекомендую:

http://www.amazon.com/Computability-Theory-Chapman-Hall-Mathematics/dp/1584882379/

http://www.amazon.com/Theory-Computation-Texts-Computer-Science/dp/1846282977/

(Reply to this)


(5 comments) - (Post a new comment)

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…