[Перевод] Мой топ-100 книг по Программированию, Компьютерам и Науке: часть 2
Добро пожаловать на вторую часть моих топ-100 книг о программировании, компьютера и науке. Если Вы ещё не видели первую часть, прошу Вас ознакомиться с ней. В этой части я сделаю микс моих любимых книг по теории и практике, ведь, как говорит Дональд Кнут в своих Избранных статьях по информатике, — «Лучшая теория основана на практике; Лучшая практика основана на теории».
В моём представлении теория и практика должны быть разделены в соотношении 20/80. Я люблю добиваться выполнения практических задач, но в то же время мне нравится изучать теорию, на основе которой я их решаю. Мои наиболее творческие идеи всегда приходят ко мне из теоретических книг. Прочитав достаточно книг по теории, внезапно много идей выстраиваются во что-то новое.
Некоторые читатели спрашивали, почему я рассказываю только про пять книг за раз. Очень просто — написать одну статью в блог о 100 книга могло бы занять у меня несколько недель усилий. Разделяя их на маленькие части, это намного проще выполнить. К тому же, приятно ощущать прогресс по мере увеличения номера публикации.
Если вас заинтересовала серия, вы можете подписаться на RSS-рассылку моего блога и подписаться на обновления в моём твиттере.
Итак, приступим к книгам этой недели!
#6 Избранные статьи по Информатике Дональдка КнутаИзбранные статьи по Информатике
Это одна из самых доступных книг Кнута. Эта книга принесла мне много наслаждения. Она написана не только для тех, кто является специалистом в предмете. Она написана для людей, имеющих образование в любой отрасли, и для её прочтения нет необходимости знать высшую математику.Сам Кнут об этой книге говорит следующее: «Если какая-либо из моих работ заслуживает того, чтобы о ней знали все, то я бы хотел, чтобы запомнили именно эту книгу». Кнут рассуждает в ней о таких темах, как борьба с конечностью, полезность игровых проблем, теория против практики, история алгоритмов, первая компьютерная программа Фон Неймана, и о многих других.
Эту книгу необходимо иметь, если Вы хотите ознакомиться с творчеством Кнута, описанным простым языком и изучить что-то новое, не требующее много усилий.
Я только что вспомнил, что уже написал в блоге о Первом Компьютере Дональда Кнута много лет назад, основанную на одной из глав этой книги. Я даже отсканировал фотографию из этой книги, на которой изображен молодой Дональд Кнут в возрасте 20 лет, работающий на моём любимом IBM 650 (1958 год):
Молодой Дональд Кнут, 20 лет, за своим первым IBM 650 в 1958 году.
Автор: Дональд Е.Кнут
#7 Как рассмешить ПересмешникаКак рассмешить Пересмешника
Одна из самых запоминающихся и забавных книг, которую я когда-либо изучил. Эта книга учит комбинаторной логике, представляя комбинаторов в виде поющих птичек. Вы услышите пение птиц Тьюринга и отправитесь путешествовать в лес Геделя. Убедитесь, что Вы готовы к этому путешествию, — Вам понадобится много бумаги и чая, потому что эта книга захватит Вас сразу, как только вы начнете разбираться в описанных в ней проблемах. Книг будет смешить Вас, когда Вы начнёте узнавать о новых птицах, Вы получите хорошую зарядку для ума. Если у Вас хватит терпения проработать все главы, в конце Вы узнаете о кодировках в Церквях и незавершённости теорем Гёделя.
Мастер леса — вход только для Элиты.
Эту книгу, возможно, будет проблематично найти, потому что она больше не издаётся. Свой экземпляр я получил много лет назад, когда она ещё была в печати. Прямо сейчас на Amazon есть 10 подержанных копий. Также она доступна на Kindle и Nook. Если Вам нужна именно печатная версия, попробуйте поискать её на Ebay или Powell. Там тоже есть несколько копий в продаже.Автор: Рэймонд Смэллиан.
#8 Опытный КомбинаторОпытный комбинатор.
Опытный Комбинатор — это продолжение книги Маленький Комбинатор, которую я отметил в своём списке под номером #4 в первой части серии. Эта книга написана в том же стиле, что и Маленький Комбинатор и читать её очень весело. Это диалог между Вами и авторами, но, в отличие от Маленького Комбинатора, которая учит думать рекурсивно, эта книга учит думать о природе вычислений. Вы изучите приближения, продолжений и стиль прохождения продложений (cps), y-комбинатор и реализацию Вашего собственного языка Lisp на Lisp в конце книги.Когда я читал книгу, я собирал все примеры кода и заповеди программирования на github: репозиторий-опытного-комбинатора.
Решение одной из проблем Опытного Комбинатора.
Авторы: Дэниел П. Фридман и Матиас Фелайзен.
#9 Экспертное Прогарммирование на CЭкспертное Программирование на C.
Вернёмся к книгам по практике, — это классическая книга по программированию на C. Я изучил этот язык в совершенстве, программируя и читая примеры кода, не прочитав ни единого учебника, и эта книга стала моей первой книгой по C. Эта книга предназначена для людей, которые уже знают C на приличном уровне. Она представляет тонкие аспекты языка и выявляет шокирующую правду, что массивы и указатели в C — это не одно и то же. Причудам языка сопутствуют интересные истории и предположения, называемые удобной эвристикой. Она написана забавно, и исторические анекдоты тоже очень интересны.
Я слышал, как кто-то сказал: «Вы точно поймёте, что вы гик, если поймаете себя на хихиканьи над всеми весёлыми комментариями книги. То, что создал Питер ван дер Линден, является не столько книгой о C, сколько взглядом изнутри на культуру хакерства. Это снимок ещё того Интернета, который когда-то почти являлся синонимом «Аккаунт UNIX».Продолжаем. Эта книга даст Вам +10 очков к гиковости. Вперёд к прочтению!
Забавная задачка по программированию.
Автор: Питер ван дер Линден.
#10 Комбинаторные Проблемы и Упражнения Ласло ЛовесаКомбинаторные Проблемы и Упражнения Ласло Ловеса.
Эта книга, возможно, самая продвинутая из всей серии. Но она настолько хороша, что я должен был рассказать про неё как можно раньше, в топ-10. Эта книга написана в стиле Проблема-Подсказка-Решение. Проблемы занимаются первые 100 страниц, далее следуют подсказки и решения на остальных 500 страницах. Ловес начинает с простых проблем, которые может решить любой, и быстро продвигается к более сложным проблемам. В этой книги нет теории.
Периодически, когда у меня возникает желание заняться математикой, я прорабатываю пару проблем. Я понял для себя, что стиль Проблема-Подсказка-Решение является идеальным способом для быстрого для быстрого изучения новых техник, помогающих решать проблемы. Если Вы хотите повысить свои комбинаторные навыки и разобраться в теорией графов, и вы любите решать проблемы, то это книга для Вас.
Забавная история — я слышал, что студенты-первогодки (PhD) в Венгрии (родина автора книги) должны прорешать все проблемы из этой книги. Те, кто не могут решить проблемы, не смогут перейти на второй курс.Автор: Ласло Ловас.
До следующего раза!