Найти тему
SaintCode Bootcamp

Одна из лучших книг, которые я читал про IT. Чарльз Петцольд «Код. Тайный язык информатики»

Отзыв на книгу «Code: The Hidden Language of Computer Hardware and Software»

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

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

Друг посоветовал «Код. Тайный язык информатики», по его словам, это одна из лучших книг по основам программирования. Если посмотреть отзывы на американском Амазоне или наших Озоне и Хабре, то увидите множество таких комментариев:

"Одна из лучших книг, которые я читал про IT"
"Жаль, что я не знал о ней раньше"
"Первая книга по IT, которую не хотелось заканчивать читать"

Автор доступно разъясняет, при этом пишет так, что книгу приятно почитать. Например, таким образом он рассказывает, что такое бит информации:

“Когда в 1973 году Тони Орландо в своей песне попросил, чтобы любимая «повязала желтую ленточку вокруг старого дуба», он не сопроводил свою просьбу ни подробными объяснениями, ни долгими рассуждениями. Никаких «если», «и», «но». Несмотря на сложные чувства и эмоции, сопровождавшие ситуацию, что разворачивалась в реальной жизни и легла в основу песни, мужчине хотелось получить простой ответ: «да» или «нет». Он знал, что, если на старом дубе появится желтая ленточка, это будет означать: «Да, хотя ты и наворотил дел и провел три года в тюрьме, я все равно хочу, чтобы ты вернулся и мы жили под одной крышей». А отсутствие желтой ленточки скажет: «Даже не думай здесь останавливаться»"

Если вам нужно просто сказать «да» или «нет», то способов хватает. Для этого не надо произносить ни одной фразы, слова, даже буквы. Необходим всего один бит , то есть 0 или 1.

Вот пример: автор описывает, как кодируют информацию в штрих-кодах на продуктах. Штрих-код на банке куриного супа с вермишелью фирмы Campbell.

Мы проводим сканером по коду и получаем:
Мы проводим сканером по коду и получаем:
-3

Почти как азбука Морзе. Штрих - это единица, промежуток - это ноль. Первые и последние три бита — всегда 101. Они называются левым и правым шаблоном-ограничителем и нужны для того, чтобы настроить сканер. По ограничителю сканер определяет ширину штриха и промежутка, соответствующую одному биту. Иначе на всех упаковках код пришлось бы делать одинакового размера.

Всего в последовательности 113 бит, которые кодируют 11 десятичных цифр, т.е. обычных цифр. Это примерно по 10 битов на цифру, хотя для представления десятичной цифры достаточно 4 бит. Запас в 2,5 раза.

Такая избыточная надежность служит для защиты от ошибок и подмены данных. Код товара был бы не слишком полезен, если бы покупатель мог легко подправить его фломастером.

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

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

P.S. Удивительно, но перевод от МИФ (2019) хуже, потому рекомендую издание от Microsoft Press (2001). Издание от МИФ вышло неудачное: много избыточных терминов, отсутствует часть иллюстраций, поэтому ищите издание от Microsoft или читайте в оригинале.

Автор: Александр Мельников, бизнесмен.