Мой топ-100 книг по Программированию, Компьютерам и Науке: часть 4[Перевод]

Всем привет! Это четвёртая часть из моих топ-100 книг по по программированию. компьютерам и науке. Если Вы ещё не видели первую, вторую и третью части, прошу Вас ознакомиться с ними.

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

my-favorite-books-part-four

Я люблю читать. Забавно, что при чтении большого количества книг  никогда не знаешь, в какую единую картину в итоге сложатся изученные идеи и где в будущем они пригодятся. Чем больше я читаю, тем больше у меня появляется новых идей, возникающих на основе ранее изученных. Лично у меня редко когда есть время  для прочтения книги от корки до корки в один присест, потому что большую часть своего времени я использую для развития Browserling. Я не берусь за всю книгу сразу, а прочитываю по 5 страниц в день, причем каждый следующий «подход» я заношу в расписание, и, через, месяц или два, книга оказывается прочитанной. Вообще, я применяю такое подход для выполнения любых дел. Просто делю на части. Каждую часть выполняю независимо от другой. Результаты — объединяю. Принцип «разделяй и властвуй» в реальной жизни (за исключением однопоточного выполнения). Точно также я разделил написание этой серии статей — по пять книг за раз. Это займёт у меня год или даже два, но итоговый результат будет потрясающим и я закончу всю серию статей.

Если Вы заинтересованы в этой серии статьей, то Вы можете подписаться на мой блог или на обновления в твиттере.

bookshelf

Я много читаю. Это моя книжная полка.

Представляю вам пять книг этой недели.

#16 Фейнмановские лекции по Вычислениям

book-feynman-lectures-on-computation

Фейнмановские лекции по Вычислениям.

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

Эта книга — мечта гика, ставшая реальностью. Читать её — наслаждение, ведь она написана в Фейнмановском педагогическом стиле и раскрывает очень много тем. Фейнман начинает с логических вентилей, переходит к конечным автоматам, машинам Тьюринга и проблеме остановки. Далее он обсуждает кодирование и информационную теорию, коды Хэмминга, теорему Шеннона и кодирование Хаффмана. Затем он объясняет обратимые вычисления и термодинамику вычислений, энтропию в термодинамике, теорию информации и демона Максвелла.Здесь же он описывает бильярдный компьютер, являющийся моделью вычислительного устройства, в котором вычисления проводятся путем выстреливания навстречу друг другу идеальных бильярдных шаров. Потрясающе! Книга заканчивается кратки введением в квантовые вычисления (когда книга писалась, квантовые вычисления только зарождались), и далее объясняются физические аспекты вычислений.

maxwells-daemon-feynman-computation

Демон Максвелла за работой.

Автор: Ричард Ф. Фейнман.

#17 Курс Теории Чисел и Криптографии

book-a-course-in-number-theory-and-cryptography

Курс Теории Чисел и Криптографии.

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

Это одна из первых книг, которую я прочитал по математическим основам криптографии. На её обложке написано «graduate» —  уровень магистров , но не нужно на это обращать внимания. Эта книгу могут спокойно читать и студенты первого\второго курсов. Всё, что Вам нужно  знать — это немножко алгебры. Книга начинается с обзора нескольких ключевых тем теории чисел, переходит к конечным полям, затем к криптографии с открытым ключом, RSA, криптографии с нулевым разглашением(информации), далее к тестам простоты, факторингу и в конце — непосредственно к эллиптическим кривым.

Эта книга следует стилю определение-теорема-доказательство-пример, который мне нравится, и в ней есть много упражнений с ответами. Если Вам нравится математика, но отсутствует опыт  по основам криптографии, тогда эта книга поможет быстро войти в курс дела. Основы науки не меняются и, изучив однажды содержание этой книги (а это не должно занять больше недели\двух, если человек достаточно умён и сосредоточен), Вы сможете прочитать практически любой зашифрованный текст.

quadratic-sieve-running-time-loglogn

Асимптотическое время работы алгоритма квадратичное решето.

Автор: Нил Коблиц.

#18 Маленький MLер

book-the-little-mler

Маленкий MLер.

В первой, второй и третьей частях я перечислил Маленького Комбинатора, Опытного Комбинатора и Продвинутого Комбинатора, а сейчас настало время Маленького MLера.

Маленький MLер отправляет Вас в новое потрясающее путешествие! Эта книга учит программированию с использованием типов, сопоставления шаблонов, лямбд, рекурсии, вывода типов, шонфинкелинга, исключений и модульного программирования с подписями, структурам и функторам (нужно помнить, что функторы в разных языках имеют разное значение). После первых нескольких глав Ваши извилины начнут изгибаться. После следующих нескольких Ваша шапка перестанет налезать на голову. Эта книга по-настоящему заставит Вас думать. Желание использовать ручку и бумагу, чтобы убедиться в своём понимании — абсолютно необходимо!

Вы в полной мере оцените эту книгу только после прочтения всех остальных книг серии. Сначала пройдите их, и только после начинайте читать эту книгу. А после прочтите все книги ещё раз для достижения максимального эффекта.

functions-are-people-too

Глава 7, Функции тоже люди.

Вот мой репозиторий на гитхабе со всеми упражнениями и примерами кода из Маленького MLера, включая спрятанные листинги кода для лояльных Комбинаторов: github репозиторий маленького MLера. Мой репозиторий также содержит хорошо детализированный обзор всех 10 глав книги.

Я просто не могу скрыть своего волнения при виде этих книг. Через несколько недель будет выпущена новая книга этой серии — Маленький Доказатель. Маленький Доказатель научит делать индуктивные умозаключения, как способу доказывать факты о компьютерных программах. Я уже могу представить, насколько интересной будет эта книга. Я ещё даже не видел эту книгу, но она уже заслужила место в списке моих любимых книг, потому что у меня очень высокие ожидания к ней. Я заранее заказал свою копию ещё месяц назад! Закажите и свою тоже! Ради того, чтобы прочитать эту книгу от корки до корки за один присест, я даже возьму свой первый и единственный в этом году выходной в Browserling.

Авторы: Даниэль П. Фридман и Маттиас Феллайзен.

#19 Алгоритмические трюки для программистов

book-hackers-delight

Алгоритмические трюки для программистов (2-е Издание).

Любая книга со словом «хакер» в названии привлекает моё внимание. У меня есть примерно 10 таких книг. Эта книга особенная, потому что первой из них появилась на моей книжной полке. Под словом «хакер» в этой книге имеется в виду его первоначальный смысл, — поклонник компьютеров, — тот, кто наслаждается тем, что делает на компьютере всё новые вещи, а старые решения пересматривает и тоже делает по-новому, по-умному.

Книга «Алгоритмические трюки для программистов» — ещё одна вечная классика. Она состоит из коллекции маленький программных трюков, с которыми автор, Гарри Уоррен, ветеран работы с программами, имеющий за плечами 50 лет опыта, сталкивался во время работы.  Эти программные трюки вращаются исключительно вокруг битовых хаков, забавной арифметики и поиска самых эффективных путей для подсчёта количества битов «1» в слове, транспонирования битовых матриц, пермутации битов, реверса и перестановки битов и байтов, деления на константы и многих других.

Некоторые из самых интересных частей книги включают определение остатка от деления без вычисления значения частного, циклический избыточный код, алгоритм Хэмминга SEC-DED и коды, исправляющие ошибки, необычные основания для систем счисления, такие как -2 и -1+i, порождающие кривые Гильберта, и формулы для генерации простых чисел, и галерея графов дискретных функций.

sheep-and-goats-function-sag

Функция овец и козлов (от англ. «goats and sheeps») SAG(x,m). См. страницы 161-165 книги.

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

А ещё автор сочинил поэму о делении, которую можно найти на 202 странице (1-е Издание) и 278 страниц (2-е Издание):

I think that I shall never envision
An op unlovely as division.

An op whose answer must be guessed
And then, through multiply, assessed;

An op for which we dearly pay,
In cycles wasted every day.

Division code is often hairy;
Long division’s downright scary.

The proofs can overtax your brain,
The ceiling and floor may drive you insane.

Good code to divide takes a Knuthian hero,
But even God can’t divide by zero!

(прим. пер.: жаль, что в русской версии книги поэму переводить не стали, поэтому пришлось привести оригинал)

Автор: Генри Уоррен

#20 Доказательства Без Слов: Упражнения на развитие Визуального Мышления

book-proofs-without-wordsbook-proofs-without-words-two

Доказательства без слов и Доказательства без слов II.

Вау! Когда я открыл для себя эти книги, я сразу же в них влюбился. Мой тип мышления — визуальный, и я люблю визуальные доказательства. В этих книгах нет слов, но при этом они содержат сотни доказательств. По одному доказательству на страницу. Я бы хотел иметь больше времени, чтобы проработать все эти доказательства. Некоторые из доказательств можно понять за несколько секунд, но множество других — занимают часы размышления. Эти книги — самые что ни на есть витамины для ума.

Далее я приведу несколько моих любимых доказательств из этих книг. Доказательство, что результатом сложения нечётных чисел всегда является точный квадрат:

proof-odd-sum

1+3+5+. . .+(2n-1)=n^{2}.

Доказательство, что 1/4+1/16+1/64+. . .=1/3:

[Картинка] 1/4+{1/4}^2 + {1/4}^3 +. . .= 1/3.

Доказательство, что {e^{pi}}>{{\pi}^e}:

proof-geometric-series-sum

e^{\pi}>{\pi}^e.

Автор: Роджер Б. Нельсон

До следующего раза!

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

 

 

 

Мой топ-100 книг по Программированию, Компьютерам и Науке: часть 4[Перевод]: 1 комментарий

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.