Code the hidden language of hardware and software
Code the hidden language of hardware and software
CODE
The Hidden Language of Computer Hardware and Software
ISBN: 0-7356-0505-X; Microsoft Press; September 29, 1999; 400 pages (hardcover).
ISBN: 0-7356-1131-9; Microsoft Press; October 11, 2000; 400 pages (softcover).
Information
Annotated Bibliography
Technical Addendum
Page 53: The second sentence should read «Follow down and across to get the sum.» Thanks to Noor-Allah Noorani for reporting this error.
Page 63: The last plus sign on the page should not be there. Thanks to Noël Verhoeven for reporting this error.
Page 146: Under the line that begins with «Step 1,» the first number in the subtraction should be all 1’s like this: Thanks to Michael Broschat for reporting this error.
Page 167: The Q-bar in the function table should be Q. The table should be identical to the one on 191, like this:
Inputs | Output | |
---|---|---|
D | Clk | Q |
0 | 1 | 0 |
1 | 1 | 1 |
X | 0 | Q |
Thanks to Jonathan Gold for reporting this error.
Pages 167 and 191: Actually, the function tables on pages 167 and 191 should probably show both outputs:
Inputs | Outputs | ||
---|---|---|---|
D | Clk | Q | Q-bar |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
X | 0 | Q | Q-bar |
Page 171: Just below the center of the page, the sentence «The outputs of the second stage are inputs to the first stage.» should read «The outputs of the first stage are inputs to the second stage.» Thanks to Jonathan Gold for reporting this error.
Page 197: In the bottom paragraph, S1 should actually have a bar over the S. Thanks to Jonathan Gold for reporting this error.
Page 264: In the third paragraph, last sentence, the statement «aaaa indicates a 32-bit memory address» should read «aaaa indicates a 16-bit memory address.» Thanks to Luis Alonso Ramos for reporting this error.
Page 271: The two lines of code towards the bottom of the page that use MOV instructions should instead use MVI instructions:
Page 272: The last full paragraph on the page should read «The shift instructions come in handy when you’re multiplying a number by 2 (that’s a shift left) or dividing a number by 2 (a shift right). Thanks to Thomas Schaefer for reporting this error.
Page 279: In the first two lines of code, the MOV instructions should be MVI instructions: Thanks to Erik Larismaa for reporting this error.
Page 291: The headings in the second table should be ASCII Figure rather than Baudot Figure. Thanks to Thomas Schaefer for reporting this error.
Page 322: In the code examples, the CMP instruction should be CPI. The two ADD instructions should be ADI. The AND instruction should be ANI. That ANI instruction should actually be the first instruction of the NibbleToAscii subroutine. Thanks to Erik Larismaa for reporting these errors.
Page 331: In the code examples, the three MOV instructions should be MVI. Thanks to Erik Larismaa for reporting this error.
Page 347: In the third paragraph, first sentence, the phrase «uses many of the same signals as the 8086 and 8087 chips» should read «uses many of the same signals as the 8086 and 8088 chips.» Thanks to Demian Johnston for reporting this error.
Page 356: In the last full paragraph on the page, the statement «While ALGOL uses a slash (/) for mulitplication» should, of course, read «While ALGOL uses a slash (/) for division.» Thanks to Larry Smith for reporting this error.
Ambiguities and Clarifications
Chapter 3: The discussion of Braille was not meant to be exhaustive. In particular, Grade 2 Braille also includes 76 short-form words, such as «imm» for «immediate». These include «ab» for «about» (so it would require only two symbols rather than the 4 shown on page 19) and «Brl» for «Braille,» implicitly including a capital. The example of Louis Braille’s name in Braille would thus require only 3 symbols for the last name rather than the 8 shown on page 20. Thanks to Ed Godfrey for this information.
Page 26: The first paragraph indicates that the negative terminal of a battery is called an anode and the positive terminal is called the cathode. Some readers have questioned whether this is correct, since it seems opposite from other uses of the words anode and cathode. The terminology used in Code was taken from:
Linden, David, ed. Handbook of Batteries, 2 nd edition. New York, NY: McGraw-Hill, Inc., 1995, page 1.3.
The perspective inside the battery corresponds more closely to other uses of the words.
Page 29: The penultimate paragraph contains the statement «the current (I) is 1.5 divided by a large number.» The current is not 1.5. The voltage is. The statement might be better written as: «the current (I) equals 1.5 volts divided by a large number.» Thanks to Habib Heydarian for reporting this ambiguity.
Page 49: In the last paragraph the statement occurs: «when adding two Roman numerals, you simply combine all the symbols from both numbers and then simplify the result using just a few rules.» The passage should have mentioned that this only works well when Roman numerals are written without using the subtraction principle, for example, without using IV to mean 4. The subtraction principle was a comparatively modern enhancement to Roman numeration. Thanks to Larry Smith for reporting this omission.
Page 284: The last paragraph states: «The x86 family continued in 1985 with the 32-bit 386 chip, in 1989 with the 486, and beginning in 1993, with the Intel Pentium line. » Somehow the 186 and 286 were omitted. The sentence should begin: «The x86 family continued in 1982 with the 186 and 286 chips, in 1985 with the 32-bit 386 chip. » Thanks to Luis Alonso Ramos and Larry Smith for reporting these omissions.
Page 343: About a third of the way down the page appears the statement «If e equals 255 and f equals 0, the number is positive or negative infinity, depending on the sign s.» This statement implies that infinity is a number, which it is not. The statement might be better phrased «If e equals 255 and f equals 0, the value is positive or negative infinity, depending on the sign s.» Thanks to Jonathan Gold for pointing this out.
Page 382: The first paragraph contains the sentence: «Java programs must be compiled, but the result of the compilation isn’t machine code. It’s instead Java byte codes.» That’s the usual case. However, Java source code can be compiled into machine code if a platform-independent binary is not required. Thanks to Larry Smith for clarifying this.
Код. Тайный язык информатики
Автор: | Чарльз Петцольд |
Перевод: | Олег Ю. Сивченко |
Жанр: | Околокомпьютерная литература |
Год: | 2019 |
ISBN: | 978-5-00117-545-2 |
Книга «Код» представляет собой увлекательное путешествие в прошлое – мир электрических устройств и телеграфных машин. Знакомство с прообразами первых компьютеров позволит читателю с любым уровнем технической подготовки узнать о том, как работают современные электронные устройства.
Научные редакторы Валерий Артюхин, Азат Гизатулин
Издано с разрешения Pearson Education, Inc.
Книга рекомендована к изданию Дмитрием Воротилиным, Юрием Коровкиным, Александром Самохваловым, Ольгой Соминой
Все права защищены.
Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
© Authorized translation from the English language edition, entitled Code: The Hidden Language of Computer Hardware and software, 1st Edition; ISBN: 0735611319; by Petzold, Charles; published by Pearson, representing Microsoft Press
Код. Тайный язык информатики скачать fb2, epub, pdf, txt бесплатно
Автор: Владимир Гуриев
Автор: Илья Щуров Voyager
Компьютерра №33 (605)
Тема номера: Выставки
Дата выхода: 13 сентября 2005 года
Автор: Леонид Левкович-Маслюк
Автор: Илья Щуров Voyager
Автор: Илья Щуров Voyager
В начале мая на планете Земля было неспокойно. Прогрессивное человечество с замиранием сердца смотрело на счетчик времени, оставшегося до запуска Большого адронного коллайдера (БАК), и гадало: настанет техногенный конец света или не настанет, появится черная мини-дыра, способная проглотить Землю вместе с прилегающим пространством в несколько парсек, или не появится…
«Мы указали в настройках счетчика дату 15 мая просто потому, что надо было какую-то указать. На самом деле, решение о моменте запуска пока не принято, и мы обновим эту информацию, как только она у нас будет. Так что не хотим вас разочаровывать, но мы все завтра не умрем», — гласил комментарий на сайте LHCountdown.com, однако завороженная тикающими часиками публика не обращала внимания на такие мелочи и активно обсуждала грядущий судный день в блогах и на форумах. (Не миновала сия участь и наш редакционный блог.)
Загадка из томика «Пословиц и поговорок русского народа» Владимира Ивановича Даля, вынесенная в эпиграф, довольно хорошо известна благодаря фантастическому рассказу Никиты Владимировича Разговорова, опубликованному в далеком 1963 году. Ну, вы наверняка помните, как марсиане выловили в космосе спутник, запущенный землянами, с четвероногим космонавтом на борту, долго пытались установить с ним контакт, и что из всего этого вышло. Известна всем и разгадка «четырок»: разумеется (и без вариантов!) — собака. На самом же деле в труде Даля, кстати, невероятном по объему 1
Эта книга описывает жизнь и карьеру легендарного разработчика, про славившегося как «крестный отец компьютерных игр» и создатель стратегии Civilization. Сид Мейер создал множество популярнейших в мире видеоигр и делится с читателями своим сорокалетним опытом. Написанная с теплотой и ироничным юмором, эта книга описывает создание в будущем влиятельной студии MicroProse, автор рассказывает о создании таких знаковых игр, как Pirates! Railroad Tycoon, Civilization и многих других.
На русском языке публикуется впервые.
«Ненавидь шаенов, они уничтожили нашу семью», – говорила тетушка и продала меня шаену. «Никогда не связывайся с шаенами, они презирают людей», – уверял единственный слуга и пошел следом за мной. «Не влюбляйся в шаена, он поработит твою душу», – шептали сестры, насмехаясь над моей судьбой. Но был ли выбор? Мне уготована судьба стать любовницей шаена. Мрачного и хмурого генерала с жутким шрамом на лице. И не только на лице, но и на сердце. Том самом, для которого он теперь ищет бальзам. Возможно, им стану я. Жаль, никто не рассказывал, как уберечь сердце от темной любви шаена. А у меня только я и моя честь.
Код: тайный язык информатики
The Hidden Language of Computer Hardware and Software
Код: тайный язык информатики
The Hidden Language of Computer Hardware and Software
отсутствует на складе
О книге
Культовая книга, ставшая для многих первым уверенным шагом в программировании.
Хотя современные компьютеры и сложнее, чем компьютеры четвертьвековой или полувековой давности, фундаментально они не изменились. Вот почему изучать историю техники так здорово: чем сильнее углубляешься в прошлое, тем проще становятся технологии. Поэтому легко добраться до точки, где понятно решительно все.
Автор книги «Код» заглянул настолько далеко в прошлое, что добрался до XIX века и на примере первых телеграфных машин объяснил устройство компьютера. Теоретически вся техника из первых 17 глав «Кода» легко собирается из простейших электрических компонентов, которые в ходу уже более века.
Благодаря всей этой винтажной технике, при чтении «Кода» вы испытаете некоторую ностальгию. И пусть «Код» весьма основательно объясняет устройство компьютера (не много найдется других книг, где описано, например, как именно работает процессор), стиль книги вполне развлекательный. Несмотря на глубину темы, автор устроит читателю комфортную прогулку по миру программирования.
Для кого эта книга
Для всех, кто мечтает научиться программировать или уже учится. Для всех, кому интересна внутренняя жизнь компьютеров и принципы их работы.
Цитаты из книги
Двоичная система
Сведя систему счисления к двоичным цифрам 0 и 1, мы достигли предела. Далее упрощать некуда. Более того, двоичная система соединяет арифметику с электричеством.
Сложение
Если нам удастся сконструировать механизм, умеющий складывать, мы окажемся способны создать устройство, использующее операцию сложения для того, чтобы вычитать, умножать, делить, рассчитывать платежи по ипотеке, отправлять ракеты на Марс, играть в шахматы и вносить путаницу в наши телефонные счета.
Автоматизация
Наше отвращение к работе так сильно, а изобретательность настолько выражена, что мы готовы потратить бесчисленные часы на проектирование и сборку устройств, которые могли бы урезать наш рабочий день на несколько минут.
Байты и символы
Эквивалентность байтов и символов, безусловно, удобна, поскольку мы можем приблизительно представить, какой объем компьютерной памяти занимает конкретный текстовый документ, просто подсчитав количество символов.
Полноцветный режим
Если вы рассмотрите экран телевизора или компьютерного дисплея через увеличительное стекло, то обнаружите, что каждый цвет создается различными комбинациями основных цветов: красного, зеленого и синего.
Компьютерные языки
Человеческие языки — это сотни и тысячи лет сложных взаимодействий, случайных изменений и приспособлений. Даже в основе таких искусственных языков, как эсперанто, лежит реальный язык. Однако компьютерные языки высокого уровня — результат более целенаправленной работы.
Code the hidden language of hardware and software
Секрет конечно так себе в данной ситуации. Что и показало развитие событий. Роман для одного раза прочитать.
Огни, камера, игра [ЛП]
Напомнило романы Райли, зефирно-ванильные конечно. Может только эта история менее развратная.
Я просто хочу тебя (ЛП)
Опять мужик с психологическими травмами, которые не позволяют заводить серьëзные отношения. Может уже хватит оправданий обыкновенного кобелизма? Но зато ревности на пустом месте полные штаны. Герой не
Секс на одну ночь. или на две [ЛП]
Простенькие герои, забавные ситуации. Романчик довольно мил.
Реальная любовь [ЛП]
Роман на один раз. Семейка конечно у героини что врагу не пожелаешь. Здесь уже не смешно. Правда немного удивляет и героиня, которой далеко не 18 лет, но она всë ещë не может поступать так, как ей хочется.
В глубинах тьмы [ЛП]
Совершенно маньячная тëмная история. К сожалению, как жизнь доказывает, такие дети, а тем более уже ставшие взрослыми людьми, не адаптируются к нормальной жизни никогда. Здесь же всë слишком
Игра [ЛП]
Роман ни о чём. Отношения, кроме постоянного желания обеих сторон потр. ться, совершенно не раскрыты. Соответственно и ощущение, что любовь из ниоткуда. Сексуальные сцены также никакие.
Code: The Hidden Language of Computer Hardware and Software
Рейтинг: 0/5 (Всего голосов: 0)
Аннотация
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Code. The Hidden Language of Computer Hardware and Software
A masterpiece by Charles Petzold
Let’s suppose you are stuck at a desert island. You somehow manage to find food and now you need the second crucial thing to survive: a computer. How could you build a computer without… buying it?
It was my brother who’ve recommended the Code (the book) to me. I’ve read a couple of its chapters, found it ridiculously simple and thrown it away as a “stupid book” not worthy of my time. Years later I will find out that this was the only book (without an exaggeration) that I needed at the time. More than two years I was studying programming through studying C++ (the one and only). It felt good because there are so many concepts in C++ that force you to understand the low-level details of programs. However, there was that barrier that I could never cross. I couldn’t understand how is it that the CPU “understands” that it should subtract variables rather than multiplying. How could it understand that the variable x is at the address 0x12008992, and it should be loaded into one of its registers?
Building a computer became my ultimate dream as a programmer. And that was the perfect time that I was ready to read the masterpiece by Charles Petzold.
The book starts with the concept of “codes” and information encoding/decoding, introducing the Morse code, the Braille alphabet and so on. It slowly builds a strong foundation for the reader to move towards zeroes and ones. The author carefully introduces the reader to the binary numeral system and boolean algebra.
After building the required fundament, the book dives into electric circuits and teaches how to build a very simple calculator. The reader will encounter many graphics depicting particular circuits in action.
Eventually, you will be able to build a computer with relays from scratch and with bare hands. That’s a feeling worth everything. After building logic gates using relays and other components, the reader will have her next great moment by understanding how memory works. How can a device actually store even a single bit of information? Though modern systems differ in their complexity and structure from the CPU and RAM built in the book, the very idea that you can build a complete computer with your bare hands (even theoretically) by reading a 400-page book is kind of shocking. The author deserves a VIP spot in heaven.
Finally, the book introduces an assembly language and how would it be run by the “computer” (or the CPU) built in the book. It shows the process of automating the CPU to sequentially execute instructions read from the RAM.
The book finishes with describing a graphical interface and its low-level components but doesn’t dive into the basics as it did with the computer. However, the book can be considered as a complete work that every programmer must read at least twice. After reading the book you will be inspired to build your own computer as did this guy.
Impressing, isn’t it? (though it’s built on relays).
Final score
Useful for programmers: 10/10
Fundamental knowledge: 11/10
Real-world projects and examples: 6/10
Код. Тайный язык информатики. Чарльз Петцольд
Как пишет автор в предисловии, эта «книга о том, как работают компьютеры». Петцольд старается избегать «изысканных метафор и сравнений». Он прямо пишет, что «компьютер представляет собой иерархию, в основании которой лежат транзисторы, а на вершине — информация, отображаемая на мониторе» — и именно об этом книга.
В первой части посмотрим на главы 1–14. За это время успеем узнать, что именно Петцольд подразумевает под кодом, и почему двоичные коды — особенные. Начиная с 4-й главы начнём строить электрические цепи с лампочками, а начиная с 10-й главы — логические. В конце первой части конспекта мы соберём цепь, которая будет уметь считать от 0 до 256 🤯
Глава 1. Верные друзья
Код — это система для обмена информацией между людьми и машинами, то есть средство коммуникации. Код полезен, если выполняет задачу, с которой не справляются другие коды.
Звуки, издаваемые при произнесении слова, — это код, понятный любому, кто способен услышать наш голос и понимает язык, на котором мы говорим. Мы называем этот код речью. Для слов, изображаемых на бумаге, существует другой код — в виде написанных или на- печатанных символов. Мы называем этот код письмом или текстом
Для общения люди используют множество различных кодов, потому что одни коды иногда удобнее других. Например, устную речь нельзя сохранить на бумаге, поэтому вместо нее мы применяем письмо
Читателей знакомят с кодированием информации через азбуку Морзе. В ней самые частые буквы кодируются самыми простыми и короткими символами:
Таблица в направлении «буква алфавита → точки и тире азбуки Морзе»
На письме азбука Морзе сводится ко двум символам. А…
Два чего угодно способны в соответствующих комбинациях передать любую информацию
Глава 2. Коды и комбинации
Чтобы воспринимать сообщение, написанное морзянкой, проще использовать не таблицу выше, а другую, в обратном направлении «точки и тире азбуки Морзе → буква алфавита».
Диаграмма в направлении «точки и тире азбуки Морзе → буква алфавита»
Из неё можно увидеть, что количество букв, которые можно закодировать, равно двойке в степени, равной количеству точек или тире:
Количество кодов = 2 Количество точек и тире
Значит, азбука Морзе — это двоичный код. Для двоичных кодов при подсчёте количества кодов используют степени 2.
Глава 3. Брайль и двоичные коды
В шрифте Брайля символы кодируются комбинациями от одной до шести выпуклых точек, расположенных в ячейке размерами 2х3. Шрифт Брайля — тоже двоичный код.
Любая точка может пребывать в одном из двух состояний: плоская или выпуклая
Общее число комбинаций шести точек, каждая из которых может быть плоской или выпуклой, равно 2^6 = 64
Многие из кодов несут двойную нагрузку в зависимости от контекста: интервалов между кодами, особых кодов переключений (shift codes) и escape-кодов.
Код переключения меняет смысл всех следующих кодов, пока его действие не будет отменено
Признак прописной буквы [escape-код, прим. автора конспекта] означает, что следующая за ним буква (и только она) должна интерпретироваться как прописная, а не строчная
К таким кодам часто прибегают при двоичном кодировании печатных символов.
Глава 4. Анатомия фонарика
На примере фонарика рассмотрим действие электричества. Простейшая схема фонарика может быть такой:
Батарейка, лампа и разомкнутый провод, который играет роль переключателя
Чтобы лампочка загорелась, цепь должна быть замкнутой. Переключатель управляет замыканием и размыканием цепи. По замкнутой цепи «течёт» поток заряженных частиц, электронов, от одного атому к другому.
Батарейки «заставляют» электричество течь по цепи против часовой стрелки, если цепь замкнута.
Химический состав батареек подобран так, что… на том конце батарейки, что помечен знаком «–», образуется избыток электронов, а на противоположном — …возникает их недостаток
Чтобы возобновить реакцию, избыточным электронам на отрицательном полюсе батарейки нужно обеспечить проход к ее положительному полюсу. …Реакция происходит только при наличии замкнутой электрической цепи
Электричество течёт по проводу, который сделан из особого материала, который проводит электричество — проводника. Материалы, которые плохо проводят электричество называются изоляторами.
Проводники «сопротивляются» течению тока — обладают сопротивлением (R). Чем выше сопротивление, тем меньше электронов течёт по цепи (I). У батареек есть потенциальная способность к выполнению работы — напряжением (U). Величины связаны законом Ома:
Лампочка горит, потому что
Если сопротивление провода невелико, он раскаляется и начинает светиться, поскольку электрическая энергия в нем преобразуется в тепловую
Переключатель отвечает за замкнутость цепи: выключен фонарик или нет, это тоже похоже на двоичный код.
Глава 5. Там, за поворотом
Попробуем построить электрическую схему для устройства, похожего на телеграф:
Когда переключатели соединены, соответствующая лампочка загорается; это позволяет передавать сообщения азбукой Морзе на расстоянии
Или используя схему с заземлением:
Здесь буквой V обозначается соединение батареи отрицательным контактом с землёй
Чем длиннее провода, тем больше сопротивление, меньше ток, и тусклее светит лампа. Эта проблема относится и к настоящему телеграфу.
Глава 6. Телеграф и реле
Мгновенная связь появилась относительно недавно и началась с телеграфа.
…Суть электрического телеграфа проста: вы делаете нечто на одном конце провода, в результате чего на другом конце провода что-то происходит
Основа телеграфа — электромагнит. Замыкание переключателя на одном конце «включает» электромагнит на другом.
Когда телеграфный ключ нажат, электромагнит тянет подвижный металлический молоточек вниз, и раздается звук одного тона («тик»). Когда ключ отпущен, электромагнит выключается, и молоточек возвращается в исходное положение, производя звук другого тона («так»). Быстрое чередование звуков («тик-так») соответствует точке, медленное — тире
Провода тянуть бесконечно нельзя, поэтому приходится организовывать ретрансляцию — повторение сообщения для передачи дальше. Для этого используется реле.
Схема реле: входящий ток приводит в действие электромагнит, тот притягивает гибкую металлическую полоску, а она замыкает цепь для выходящего тока
Глава 7. Великолепная десятка
Выбор десятичной системы счисления был произвольным. Но в десятичной системе (в отличие от той же римской) был ноль, который позволил использовать позиционную запись и облегчил умножение и деление.
Так как десятичная система позиционная, каждая цифра в записи числа — это количество соответствующих степеней десятки:
Преимущество позиционной записи не в том, что она хорошо работает в десятичной системе счисления, а в том, что она хорошо работает в системах счисления, основанных не на десяти
Глава 8. Альтренативы десяти
В десятичной системе счисления круглыми числами мы считаем те, которые заканчиваются на 0: 10, 100, 1000… Такие числа — это произведение 10 на себя.
В других системах счисления круглые числа получаются по тому же принципу. В двоичной, например:
В многозначном двоичном числе позиции цифр соответствуют степеням двойки
Провод, лампа и переключатель из прошлых глав тоже могут быть представлены в двоичном виде:
Если по проводу течет ток, двоичная цифра равна 1. Если тока нет… 0
Если переключатель включен, двоичная цифра равна 1. Если выключен… 0
Если лампочка горит, двоичная цифра равна 1. Если не горит… 0
Двоичное число — это бит.
Глава 9. За битом бит
Двоичная система счисления — простейшая система. Бит — одна двоичная цифра — это также минимально возможное количество информации.
Одиночный бит — это выбор из двух возможностей: да или нет. Всё, что можно свести к такому выбору, можно представить набором битов.
Чем больше битов используется, тем больше доступных вариантов выбора (кодов). В двоичной системе число кодов (N) — это:
…где b — это число битов.
Чаще всего двоичный код в жизни можно увидеть на штрих-кодах. В битовом представлении срез штрих-кода выглядит так:
Штрих-код представляет собой набор 95 битов; эти же цифры можно найти под штрих-кодом
Биты также играют роль в логике, где под 1 и 0 представляют истину и ложь.
Глава 10. Логика и переключатели
Традиционная алгебра работает с числами, булева алгебра работает с множествами.
В булевой алгебре знак «+» (или OR) означает объединение множеств, символ «×» (или AND) означает пересечение множеств. В ней работают коммутативность, ассоциативность и дистрибутивность.
Пустое множество означается нулём, 0. Единица — полное множество, всё, о чём идёт речь. Для пересечения справедливо:
Операцию пересечения можно представить в виде электрической цепи, где два переключателя соединены последовательно:
Лампочка загорится лишь при одном условии: если вы включите левый и правый переключатели одновременно
Для объединения подойдёт цепь с двумя параллельными переключателями:
Лампа горит, если включен любой из переключателей
Глава 11. Вентили, которые не протекают
Соединение нескольких реле лежит в основе построения логических вентилей. Например, для построения AND:
Лампочка загорится, только если замкнуть переключатели на обоих реле
Символически вентиль AND обозначается так:
Обозначение вентиля AND
Если соединить реле параллельно, а не последовательно, получится вентиль OR, который обозначается так:
Обозначение вентиля OR
Если же лампочка горит, когда переключатель разомкнут, и тухнет, когда переключатель замкнут, получится инвертор:
Вентиль NOR работает, как вентиль AND с двумя инверторами на входах:
Вентиль OR с инвертированными входами — это NAND:
Последние два выражения — это законы де Моргана. Они помогают упрощать цепи.
Глава 12. Двоичный сумматор
Сложение — основное арифметическое действие, а также…
Практически единственное действие, которое выполняют компьютеры
Таблицу сложения двоичных чисел удобно делить на две: таблицу разряда суммы и таблицу разряда переноса:
Таблица переноса это работа вентиля AND, для работы суммы нам нужна схема XOR:
Результат равен 1, если сигнал подаётся лишь на один из входов
Обозначается эта схема так:
Обозначение вентиля XOR
И тогда схема суммирования:
Это полусумматор (half-adder). Называется он так, потому что он не прибавляет к сумме возможный разряд переноса от предыдущего суммирования. Чтобы сложить 3 двоичных цифры, нужны 2 полусумматора и вентиль OR:
Схема полного сумматора (full-adder)
Глава 13. А как же вычитание?
Сперва научимся вычитать без заимствования из старшего разряда:
253 – 176
253 – 176 + 1000 – 1000
253 – 176 + 999 + 1 – 1000
253 + (999 – 176) + 1 – 1000
253 + 823 + 1 – 1000
76 + 1 = 77
При вычитании двоичных чисел используется такой же метод, только вместо дополнения до 9, используется дополнение до 1.
Схема для вычитания будет такой:
Если надо выполнить вычитание, сигнал Выч будет равен 1. При вычитании входы В инвертируются, а к результату сумматора прибавляется 1
Для записи отрицательных чисел используется дополнение до двух, когда отрицательные числа становятся после последнего возможного положительного числа:
Чтобы вычислить дополнение до двух, нужно посчитать дополнение до единицы и прибавить 1 или, что эквивалентно, инвертировать все цифры и прибавить 1
Эта система позволяет выражать положительные и отрицательные числа без знака «минус», а также складывать положительные и отрицательные числа, используя только правила сложения
Глава 14. Обратная связь и триггеры
Соединение с обратной связью (feedback) — это соединение, в котором выход является также одним из его входов. Триггер (flip-flop) — соединение, которое сохраняет информацию.
Он снабжает электрическую схему памятью, в которой хранится информация о том, что в этой схеме происходило раньше
У простейшего триггера (RS-триггера), два входа S (set) и R (reset). Он запоминает, какой из двух входов был последний раз под напряжением.
Триггер, который запоминает значение в конкретный момент времени, это D-триггер со срабатыванием по уровню (data). Этот триггер запоминает один бит информации и хранит его для дальнейшего использования:
Clock = «запомнить этот бит»; можно считать эту схему «памятью» в 1 бит
В таком триггере, если сигнал Данные изменится, пока сигнал Clk равен 1, изменения будут отражаться на выходах Q и !Q. Если мы хотим, чтобы выход менялся только, когда сигнал Clk переходит из 0 в 1, то нам нужен триггер со срабатыванием по фронту (edge-trigger):
Первый блок работает как D-триггер, но содержимое входа Данные сохраняется, когда сигнал Clk равен 0. Выходы первого блока — это входы для второго, их содержимое сохраняется при обращении сигнала Clk в 1
Если совместить подряд 3 делителя частоты…
Схема с тремя последовательно соединёнными делителями частоты
…И считать их выходы…
Графики сигнала Clk и выходных сигналов каждого из делителей
…То получим схему, которая…
считает в двоичном формате от 0 до максимального числа, зависящего от количества триггеров в схеме
Что дальше
В следующей части конспекта мы прочитаем оставшиеся главы 15–25. В них мы соберём первую память, которая сможет хранить информацию, а потом подключим её к сумматору. Создадим первый процессор, на основе которого сделаем примитивный компьютер с вводом и выводом.
Code : The Hidden Language of Computer Hardware and Software
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Code: The Hidden Language of Computer Hardware and Software
Чарльз Петцольд
7 октября 2021 г. 19:04
5 Увлекательно о сложном
Книгу порекомендовал бы всем начинающим программистам (особенно системным), а также всем, кто по какой-то причине упустил в своём обучении предмет информатики и желал бы восполнить упущенное.
31 марта 2021 г. 21:41
Книга, которую я купила много лет назад, но до которой никак не доходили руки. а зря! 400 страниц, из которых состоит код, здорово заполнили пробелы, оставшиеся после школы. Это было путешествие в историю от создания счетов и азбуки Морзе до полупроводников и микросхем компьютера.
Совершенно необходимо к прочтению тем, кто входит в IT. Но также рекомендую всем, кто интересуется технологиями, да и просто освежить в голове уроки физики, математики и информатики- полезное дело.
21 марта 2021 г. 17:30
5 Захватывающая вычислительная Илиада
Это такая своеобразная информатическая Илиада. Она повествует о том, как человечество двигалось по пути создания технических средств для передачи, хранения и обработки информации. Книга вышла первый раз в 2000-м году, но по-прежнему актуальна. Признаться, со времени как я увлекался информатикой в школе, а потом в Бауманке, где-то внутри я чувствовал неудовлетворённость. Она заключалась в том, что я так и не освоил ассемблер и не мог связать софт и хард. Не понимал, как эти нулики и единички, программки на Турбо Паскале относятся к железякам внутри тогда ещё внушительного системного блока 286-го компьютера.
Книга Чарльза Петцольда помогла насытить мой интерес. Не скажу, что я всё понял, но возникла целостная картина происходящего, и я теперь знаю «где копать» дальше. Приятно удивило…
24 апреля 2021 г. 11:13
Отличный путеводитель по истории компьютерной науки, начиная с азбуки Морзе и счёта на пальцах, заканчивая принципами работы операционных систем. Сравнительно легко читается, за исключением пары глав, где автор чуть больше углубляется в электротехнику. В книге отличный юмор.
Из недостатков можно отметить только мягкую обложку и отсутствие некоторых иллюстраций, а именно портретов ученых, о которых рассказывает автор. Но это не критично, издание очень качественное.
Я бы порекомендовал книгу действующим программистам, которые хотят заполнить пробелы в образовании или узнать историю своей профессии. Новичкам книга может показаться сложной для восприятия.
1 февраля 2021 г. 11:08
5 Доходчиво и детально
Автор очень доступно рассказывает о базовых вещах в информатике и устройстве компьютеров. Нигде еще не доводилось лично мне найти более простого и полного объяснения логическим вентилям через устройство реле. Хотелось бы еще узнать о принципах работы полупроводников, но это уже более сложная тема, выходящая за рамки книги.
15 марта 2021 г. 13:48
5 Как создать свой компьютер
Хорошее компьютерное чтиво. Автор объясняет самый нижний уровень строения компьютера. Попутно, почти в каждой главе, собирает схему собственных процессора, памяти и тд. К концу книги внимательный читатель сможет разобраться в полноценной схеме эвм.
Книга не для расслабленного чтения. Порой приходилось возвращаться к уже прочитанному чтобы лучше понять новое.
Итог: хороший материал чтобы понять принцип работы компьютера.
29 июля 2020 г. 13:45
5 лучшее пояснение работы компьютера
Я сам учился на связиста и в принципе основу кодирования, построение ПК и прочие тонкости мы изучали. Но прочитав эту книгу я словно вник в суть вещей, понял все до самых мелочей. Начинается все с объяснения простых вещей, а заканчивается сложным. Рекомендую всем, кто интересуется программированием.
29 января 2020 г. 09:27
4 Дело в переводе.
Книга шикарная, позволяет понять устройство компьютера на раз-два. Проблема в переводе МИФ. Они настолько убого перевели книгу, что в ней теряется большая часть смысла. Отсутствуют картинки, а еще они часто поставлены не там, где должны по оригиналу, а там, где удобно, тем самым, во второй раз убивая логику.
20 июля 2019 г. 10:05
5 Как работает компьютер — до основания!
Восхитительный последовательный рассказ о создании компьютера с самого нижнего уровня переключателей до машины Тюринга и работы программ.
Без странных метафор и лишних аналогий, прям как есть, без прикрас, но подробно и наглядно.
По мере продвижения к концу книга требует умственного напряжения (может даже листочка с ручкой и гугления), но если посидеть подумать, все доступно, не выходит за рамки школьной программы за 9 классов.
Code : The Hidden Language of Computer Hardware and Software
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Code: The Hidden Language of Computer Hardware and Software
From Wikipedia, the free encyclopedia
Code: The Hidden Language of Computer Hardware and Software (1999) is a book by Charles Petzold that seeks to teach how personal computers work at a hardware and software level. In the preface to the 2000 softcover edition, Petzold wrote that his goal was for readers to understand how computers work at a concrete level that «just might even rival that of electrical engineers and programmers» and that he «went as far back» as he could go in regard to the history of technological development. Petzold describes Code as being structured as moving «up each level in the hierarchy» in which computers are constructed. [1] On June 10, 2022, Petzold announced that an expanded second edition would be published on August 19, 2022 and he is building a companion interactive website. [2]
The idea of writing the book came to him in 1987 while writing a column called «PC Tutor» for PC Magazine. [3]
Code: The Hidden Language of Computer Hardware and Software
Чарльз Петцольд
7 октября 2021 г. 19:04
5 Увлекательно о сложном
Книгу порекомендовал бы всем начинающим программистам (особенно системным), а также всем, кто по какой-то причине упустил в своём обучении предмет информатики и желал бы восполнить упущенное.
31 марта 2021 г. 21:41
Книга, которую я купила много лет назад, но до которой никак не доходили руки. а зря! 400 страниц, из которых состоит код, здорово заполнили пробелы, оставшиеся после школы. Это было путешествие в историю от создания счетов и азбуки Морзе до полупроводников и микросхем компьютера.
Совершенно необходимо к прочтению тем, кто входит в IT. Но также рекомендую всем, кто интересуется технологиями, да и просто освежить в голове уроки физики, математики и информатики- полезное дело.
21 марта 2021 г. 17:30
5 Захватывающая вычислительная Илиада
Это такая своеобразная информатическая Илиада. Она повествует о том, как человечество двигалось по пути создания технических средств для передачи, хранения и обработки информации. Книга вышла первый раз в 2000-м году, но по-прежнему актуальна. Признаться, со времени как я увлекался информатикой в школе, а потом в Бауманке, где-то внутри я чувствовал неудовлетворённость. Она заключалась в том, что я так и не освоил ассемблер и не мог связать софт и хард. Не понимал, как эти нулики и единички, программки на Турбо Паскале относятся к железякам внутри тогда ещё внушительного системного блока 286-го компьютера.
Книга Чарльза Петцольда помогла насытить мой интерес. Не скажу, что я всё понял, но возникла целостная картина происходящего, и я теперь знаю «где копать» дальше. Приятно удивило…
24 апреля 2021 г. 11:13
Отличный путеводитель по истории компьютерной науки, начиная с азбуки Морзе и счёта на пальцах, заканчивая принципами работы операционных систем. Сравнительно легко читается, за исключением пары глав, где автор чуть больше углубляется в электротехнику. В книге отличный юмор.
Из недостатков можно отметить только мягкую обложку и отсутствие некоторых иллюстраций, а именно портретов ученых, о которых рассказывает автор. Но это не критично, издание очень качественное.
Я бы порекомендовал книгу действующим программистам, которые хотят заполнить пробелы в образовании или узнать историю своей профессии. Новичкам книга может показаться сложной для восприятия.
1 февраля 2021 г. 11:08
5 Доходчиво и детально
Автор очень доступно рассказывает о базовых вещах в информатике и устройстве компьютеров. Нигде еще не доводилось лично мне найти более простого и полного объяснения логическим вентилям через устройство реле. Хотелось бы еще узнать о принципах работы полупроводников, но это уже более сложная тема, выходящая за рамки книги.
15 марта 2021 г. 13:48
5 Как создать свой компьютер
Хорошее компьютерное чтиво. Автор объясняет самый нижний уровень строения компьютера. Попутно, почти в каждой главе, собирает схему собственных процессора, памяти и тд. К концу книги внимательный читатель сможет разобраться в полноценной схеме эвм.
Книга не для расслабленного чтения. Порой приходилось возвращаться к уже прочитанному чтобы лучше понять новое.
Итог: хороший материал чтобы понять принцип работы компьютера.
29 июля 2020 г. 13:45
5 лучшее пояснение работы компьютера
Я сам учился на связиста и в принципе основу кодирования, построение ПК и прочие тонкости мы изучали. Но прочитав эту книгу я словно вник в суть вещей, понял все до самых мелочей. Начинается все с объяснения простых вещей, а заканчивается сложным. Рекомендую всем, кто интересуется программированием.
29 января 2020 г. 09:27
4 Дело в переводе.
Книга шикарная, позволяет понять устройство компьютера на раз-два. Проблема в переводе МИФ. Они настолько убого перевели книгу, что в ней теряется большая часть смысла. Отсутствуют картинки, а еще они часто поставлены не там, где должны по оригиналу, а там, где удобно, тем самым, во второй раз убивая логику.
20 июля 2019 г. 10:05
5 Как работает компьютер — до основания!
Восхитительный последовательный рассказ о создании компьютера с самого нижнего уровня переключателей до машины Тюринга и работы программ.
Без странных метафор и лишних аналогий, прям как есть, без прикрас, но подробно и наглядно.
По мере продвижения к концу книга требует умственного напряжения (может даже листочка с ручкой и гугления), но если посидеть подумать, все доступно, не выходит за рамки школьной программы за 9 классов.
Code : The Hidden Language of Computer Hardware and Software
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
From Wikipedia, the free encyclopedia
Tell your friends about Wikiwand!
Gmail Facebook Twitter Link
Suggest as cover photo
Would you like to suggest this photo as the cover photo for this article?
Thank you for helping!
Your input will affect cover photo selection, along with input from other users.
Thanks for reporting this video!
This browser is not supported by Wikiwand 🙁
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:
An extension you use may be preventing Wikiwand articles from loading properly.
If you’re using HTTPS Everywhere or you’re unable to access any article on Wikiwand, please consider switching to HTTPS (https://www.wikiwand.com).
An extension you use may be preventing Wikiwand articles from loading properly.
If you are using an Ad-Blocker, it might have mistakenly blocked our content. You will need to temporarily disable your Ad-blocker to view this page.
Code: The Hidden Language of Computer Hardware and Software, First Edition
Read it now on the O’Reilly learning platform with a 10-day free trial.
O’Reilly members get unlimited access to live online training experiences, plus books, videos, and digital content from O’Reilly and nearly 200 trusted publishing partners.
Book description
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Code : The Hidden Language of Computer Hardware and Software
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Code : The Hidden Language of Computer Hardware and Software
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Код. Тайный язык информатики. Часть 2
В первой части конспекта мы прочли главы 1–14. Научились строить электрические и логические цепи с лампочками. В конце первой части на их основе мы собрали цепь, которая считала от 0 до 256.
В этот раз мы прочитаем оставшиеся главы 15–25. В них мы соберём первую память, которая сможет хранить информацию, а потом подключим её к сумматору. Создадим первый процессор, на основе которого сделаем примитивный компьютер с вводом и выводом.
Глава 15. Байты и шестнадцатеричные числа
Байт — это (не открою Америки) 8 бит. Значения: от 00000000 до 11111111, 256 (2 8 ) вариантов, значения длинные, поэтому вместо двоичной записи можно использовать шестнадцатиричную.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, …
Тогда, например, 101101102 = B616.
Глава 16. Сборка памяти
Бумага для людей — это основная внешняя память:
Мы пишем, чтобы позже прочитать… Мы сохраняем информацию, чтобы позже использовать ее
D-триггер из прошлых глав, защёлка — это память размером в 1 бит. Мы можем переназвать выход Q «выводом данных», а вход Clk «записью». Из 8 таких защёлок, а также дешифратора 3 на 8 и селектора 8 на 1 мы получим память с произвольным доступом (random access memory, RAM):
Дешифратор с помощью адреса определяет, какой из входов под напряжением — в какую из защёлок идёт запись. Селектор определяет, сигнал с какого входа пойдёт на выход
Произвольный доступ означает, что читать и записывать значения можно в любой защёлке с помощью комбинации входов «Адрес».
При параллельном соединении двух RAM 8×1 получим RAM 8×2. При соединении с помощью селектора 2 на 1 и дешифратора 1 на 2 (как две отдельных «защёлки» внутри) — RAM 16×1.
Число значений в массиве RAM = 2 Количество входов «Адрес»
Память с произвольным доступом называют энергозависимой, потому что
Для хранения информации ей требуется непрерывное энергоснабжение
Глава 17. Автоматизация
Построим наконец компьютер™. Будем предполагать, что под защёлками всегда имеются в виду защёлки со срабатыванием по фронту (когда Clk переходит из 0 в 1).
Подключим память RAM к сумматору с накоплением суммы.
Схема с памятью, сумматором с накоплением и пультом управления для ввода значений
Допустим, нужно найти три суммы. Представим в памяти слагаемые и адреса значений:
Массив RAM со значениями для суммирования
Для сложения сумматор теперь должен:
…Переписать [загрузить] содержимое ячейки памяти в аккумулятор. …Сложить байт из памяти с содержимым аккумулятора. …Сохранить в памяти сумму из аккумулятора. …Остановить работу сумматора
Для массива из рисунка выше:
Чтобы этого добиться, каждое число в памяти сопроводим кодом нужного действия. Этим будет заниматься отдельный массив RAM («коды»), в который мы запишем нужные действия:
Массив RAM «коды» с записанными действиями для автоматического сумматора
«Данные» и «коды» можно объединить в один массив, но чтобы было удобнее работать с адресами команд, стоит добавить команду «Перейти», которая укажет на адрес следующей команды для выполнения.
Также добавим флаг нуля (zero flag), выход которого равен 1, лишь если всего его входы равны нулям. С ним мы можем добавить ещё 4 команды. Итого сейчас есть коды команд:
Операция | Код | Мнемоника |
---|---|---|
Загрузить | 10h | LOD |
Сохранить | 11h | STO |
Сложить | 20h | ADD |
Вычесть | 21h | SUB |
Сложить с переносом | 22h | ADC |
Вычесть с заимствованием | 23h | SBB |
Перейти | 30h | JMP |
Перейти, если 0 | 31h | JZ |
Перейти, если перенос | 32h | JC |
Перейти, если не 0 | 33h | JNZ |
Перейти, если не перенос | 34h | JNC |
Остановить | FFh | HLT |
Этих команд хватит, чтобы перемножить два числа друг на друга:
Массив памяти с инструкциями к перемножению чисел
Чтобы провести эти операции, потребуется схема:
Схема примитивного компьютера
возможность управляемых циклических процедур отличает компьютер от калькулятора
В схеме выше память — это 64-килобайтовый массив RAM. Ввод и вывод — переключатели и лампочки на пульте управления памятью. Всё остальное — 8-разрядный процессор (central processing unit, CPU).
С помощью мнемоник, команды можно записывать в виде:
При написании кодов численные значения адресов лучше не использовать, так как они могут измениться… Для обозначения ячеек памяти предпочтительнее пользоваться метками (labels)
Добавим метки, получим «ассемблер». Вот программа для умножения чисел:
Глава 18. От счетов к микросхемам
Реле для создания компьютеров не подходят, и в XX веке их заменили радиолампы:
Будучи механическими устройствами, действие которых основывалось на изгибании металлической пластины, после продолжительной работы они в самом прямом смысле слова ломались
Компьютер, который мы собрали ранее, — типичный пример архитектуры фон Неймана. Её недостаток в долгой загрузке из памяти.
В 1947 году появился полупроводниковый транзистор. Полупроводники — это элементы, проводимостью которых можно управлять (например, кремний). Если в полупроводнике есть избыточные электроны, это полупроводник n-типа, в обратном случае — p-типа.
Транзистор состоит из полупроводниковых элементов: коллектора, базы и эмиттера.
Небольшое напряжение на базе управляет гораздо большим током, проходящим из коллектора в эмиттер. Если на базе напряжения нет, транзистор практически закрывается
Транзисторы подходят для сборки логических вентилей:
Вентили AND и OR, собранные из транзисторов
В интегральных микросхемах умещаются сразу логические схемы. Например, в «счетверенной двухвходовой положительной схеме NAND» было 4 вентиля NAND:
Vcc — питающее напряжение, Gnd — земля
Напряжения в диапазоне 0–0,8 В считаются логическим нулем, а напряжения от 2 до 5 В — логической единицей. …Так микросхемы защищаются от шума
Время установки — между изменением сигнала на входе и на выходе — измеряется в наносекундах.
Для осциллятора используется кварцевый кристалл, частота их колебаний более миллиона в секунду, это влияет на быстродействие.
Глава 19. Два классических микропроцессора
В этой главе автор в подробностях описывает принцип работы процессоров Intel 8080 и Motorolla 6800. Я приведу здесь лишь сокращённое описание 8080, там самая мякотка.
Назначение каждого из 40 выводов микропроцессора 8080
Зачёркнутые нули — это синхронизирующие сигналы. От A0 до A15 — адресация памяти. С D0 до D7 — для данных. Остальное — управляющие сигналы.
Кроме аккумулятора есть 6 регистров B, C, D, E, H, L. H и L — это High и Low. 8-битовый значения в регистрах HL рассматриваются как 16-битовая пара, где старший байт хранится в H, а младший в L. Регистры позволяют не обращаться постоянно к памяти, что ускоряет работу.
63 кода отведено под команд MOV — для перемещения содержимого из одного регистра в другой.
MVI — перемещает непосредственно байт данных в регистр или ячейку памяти, адрес которой записан в HL.
Для арифметических действий есть 32 команды. Сложение (ADD), сложение с переносом (ADC), вычитание (SUB), вычитание с заимствованием (SBB).
Есть также команды для логических операций. AND, OR и XOR выполняются побитово. CMP — сравнение:
CMA — дополняет содержимое аккумулятора до 1. DAA — для арифметических операций с десятичными числами в BCD (Binary-coded decimal). BCD — это когда 27h значит 27 в десятичной, а не 39.
Команды для увеличения и уменьшения значения регистров, аккумулятора или ячейки памяти на 1: INR, DCR. 4 команды для циклического сдвига: RLC, RRC, RAL, RAR. Команды для работы со стеком: PUSH, POP_.
CALL и RET — команды для создания подпрограмм. Команда CALL записывает в стек адрес команды, стоящей следом за командой CALL, а потом происходит переход в начало подпрограммы с меткой Multiply. По завершении выполняется команда RET, в результате чего в программный счетчик возвращается значение из стека.
(Кстати, именно в этой книге я-таки наконец полностью понял, что такое «стек вызова» и почему именно return стоит в конце функции.)
Команды IN и OUT — для общения с периферией.
Глава 20. ASCII — символы нашего времени
Американский стандартный код для обмена информацией (American Standard Code for Information Interchange, ASCII) — 7-битовая (технически) текстовая кодировка. Её коды принимают значения от 00h до 7Fh. Для хранения отдельных символов отводится 8 битов.
В ASCII содержатся знаки препинания, цифры, прописные и строчные буквы и управляющие символы. я отдельных символов отводится 8 битов. Коды строчных букв отличаются от соответствующих прописных на 20h, это позволяет относительно просто переводить строчные в прописные и обратно.
Для того, чтобы закодировать что-то кроме латиницы, появился Unicode. В ней символы занимают по 2 байта, первые 128 символов совпадают с ASCII.
Глава 21. Под шорох шин
Интегральные схемы, из которых состоит компьютер, монтируются на платах. Платы обмениваются информацией через шину. Сигналы на ней делятся на 4 категории:
Шина во всеобщем пользовании может стать стандартом
Шины приходится модернизировать или заменять, когда микропроцессоры перерастают их либо по разрядности данных, либо по объему адресуемой памяти, либо по быстродействию
Ещё в этой главе есть рассказ о дискетах и катодно-лучевой трубке! 😃
Луч начинает свое путешествие в верхнем левом углу. Пройдя вправо до конца экрана, он возвращается назад и начинает рисовать следующую строку развертки
Закончив последнюю строку, луч возвращается из нижнего правого в верхний левый угол экрана
Чтобы вывести текст на экране, надо символы ASCII отобразить в виде чёрных и белых пикселей на экране. Генератор символов переводит 7-битовый код ASCII в 64-битовый код, определяющий внешний вид символа:
Каждому символу соответствует не только 7-битовый код ASCII, но и 64 бита на экране, которые определяют его внешний вид
Чтобы раскрасить пиксель, надо увеличить количество битов, на него отведённое:
Количество цветов = 2 Количество битов на пиксель
Глава 22. Операционная система
Нашему компьютеру не достаёт двух вещей:
Для работы клавиатуры нам нужна специальная программа — обработчик клавиатуры, а также командный процессор.
Кроме этого нам потребуется ПЗУ — постоянное запоминающее устройство, чтобы введённая информация не терялась после отключения питания. В качестве ПЗУ можно использовать жёсткий диск.
Вам придется помнить, что и куда вы сохранили… часть места на диске, вероятно, занята другими данными, сектора с одной и той же программой не обязательно будут следовать друг за другом
Сидеть перед компьютером и продолжать записывать на бумажке адреса секторов и отмечать, что в них сохранено, — слишком трудоемко. …[Настало время] разработки файловой системы
Файловая система — организация информации, когда она делится на файлы. Файл — набор данных с общим смыслом, записанный в одном или нескольких секторах.
Забавный факт о названиях файлов в и размере расширения в 3 символа:
Имя файла в CP/M состоит из двух частей. Первая часть — собственно имя файла (filename) длиной до 8 символов… Длина второй — типа файла (file type) — ограничена тремя символами…
Чтобы запустить операционную систему, её нужно переписать с диска в память — загрузить. В конце загрузки ОС полностью размещается в памяти, занимая её старшие адреса.
Прикладным программам (приложениям) не нужно заботиться о дорожках и секторах на диске при наличии ОС — интерфейса прикладного программирования, API.
API аппаратно независим. То есть при написании программ для CP/M нам не надо знать, как работают клавиатура, монитор и диск на конкретном компьютере.
Глава 23. Фиксированная точка, плавающая точка
Мы привыкли думать о непрерывном ряде чисел, но компьютеры работают с дискретными величинами.
Чтобы записать дробь, мы можем использовать фиксированную точку — отвести конкретное количество бит под десятичные числа. В таком случае десятичный разделитель всегда находится в определённом месте числа.
Формат с фиксированной точкой хорош, если вы знаете, что числа не «перерастут» ту область памяти, которую вы для них отвели
В обратном случае, под такие числа придётся резервировать слишком много места в памяти. Чтобы записывать числа, которые могут быть и очень большими, и очень маленькими используется плавающая точка.
В числах плавающей точкой используется научная нотация чисел со значащей частью и порядком. Но так как мы работаем с двоичными числами, то и порядок будет указывать на степень 2, а не 10.
В нормализованном виде слева от разделителя всегда стоит единица:
В большей части компьютеров для чисел с плавающей точкой используется стандарт IEEE, Standard 754 Floating Point Numbers. В нём есть 2 формата: с простой точностью (single precision, 4 байта на число) и двойной точностью (double precision, 8 байтов на число).
Точность числа с фиксированной точкой легко определить по внешнему виду: сколько чисел после запятой, такая и точность. С плавающей — ¯\_(ツ)_/¯
В зависимости от порядка число с плавающей точкой может быть точным до долей пенса или до нескольких тысяч долларов
…С точки зрения программы 262 144,00 долларов не отличаются от 262 144,01 долларов… Действительно, оба числа представляются в компьютере так: 1.00000000000000000000000 × 2 18
Глава 24. Языки высокие и низкие
Программировать в машинных кодах — все равно что есть зубочисткой
Первым делом стоит автоматизировать перевод из команд мнемокодов (MOV, MVI и прочие) в настоящие коды команд. Этим занимаются ассемблеры.
Новый ассемблер приходится разрабатывать каждый раз при появлении нового процессора
У программ-ассемблеров два недостатка:
Язык ассемблера считается языком низкого уровня, потому что он напрямую взаимодействует с оборудованием компьютера. Языки высокого уровня этим не занимаются.
Для работы языку высокого уровня нужен синтаксис и компилятор или интерпретатор. Первый — набор правил для построения выражений; второй — программа, которая преобразует код в машинные коды.
Далее в этой главе есть несколько примеров программирования на Алголе и Бейсике, здесь я их приводить не буду, но по фану почитать интересно.
Глава 25. Графическая революция
Чтобы получить на экране электронно-лучевой трубки цвет, приходится использовать уже не одну, а три электронные пушки, по одной для каждого из основных цветов — красного, зеленого, синего.
Таблица кодирования цветов для адаптера дисплея может быть такой:
Биты | Цвет |
---|---|
000 | Черный |
001 | Синий |
010 | Зеленый |
011 | Голубой |
100 | Красный |
101 | Малиновый |
110 | Желтый |
111 | Белый |
Количество достпуных цветов выражается:
Число цветов = 2 Число битов на пиксель
Чтобы работать со звуком, нужны преобразователи:
Частота, с которой аналоговый звуковой сигнал преобразуется в цифровой, называется частотой дискретизации
Заключение
“It all makes sense now” — вот так бы я назвал чувство, которое появилось после первого прочтения этой книги 😃
Всё, что здесь написано, я проходил в школе и университете. Эти знания были, но они не были. объединены что ли. Не было прочной уверенности в том, как всё на самом деле работает, было трудно переходить от одного уровня абстракций к другому. Сейчас всё наконец-то
Code the hidden language of hardware and software
Секрет конечно так себе в данной ситуации. Что и показало развитие событий. Роман для одного раза прочитать.
Огни, камера, игра [ЛП]
Напомнило романы Райли, зефирно-ванильные конечно. Может только эта история менее развратная.
Я просто хочу тебя (ЛП)
Опять мужик с психологическими травмами, которые не позволяют заводить серьëзные отношения. Может уже хватит оправданий обыкновенного кобелизма? Но зато ревности на пустом месте полные штаны. Герой не
Секс на одну ночь. или на две [ЛП]
Простенькие герои, забавные ситуации. Романчик довольно мил.
Реальная любовь [ЛП]
Роман на один раз. Семейка конечно у героини что врагу не пожелаешь. Здесь уже не смешно. Правда немного удивляет и героиня, которой далеко не 18 лет, но она всë ещë не может поступать так, как ей хочется.
В глубинах тьмы [ЛП]
Совершенно маньячная тëмная история. К сожалению, как жизнь доказывает, такие дети, а тем более уже ставшие взрослыми людьми, не адаптируются к нормальной жизни никогда. Здесь же всë слишком
Игра [ЛП]
Роман ни о чём. Отношения, кроме постоянного желания обеих сторон потр. ться, совершенно не раскрыты. Соответственно и ощущение, что любовь из ниоткуда. Сексуальные сцены также никакие.
Code: The Hidden Language of Computer Hardware and Software
Рейтинг: 0/5 (Всего голосов: 0)
Аннотация
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Code : The Hidden Language of Computer Hardware and Software
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Идеальная подборка книг для разработчиков
В этой статье представлены более 100 лучших книг для разработчика по мнению ведущего американского специалиста Йогева Ситтона. Следующий список книг.
Предисловие
Это перевод статьи известного зарубежного iOS разработчика Йогева Ситтона, который, опираясь на более чем десятилетний опыт разработки приложений, составил лучшую, по его мнению, подборку книг по программированию.
Я уже довольно долго занимаюсь разработкой. Начав с веба в 2004, я стал full-stack разработчиком в 2009 и с 2013 занимаюсь созданием приложением под iOS.
Большую часть знаний я получил в университете и на работе. Да, львиную долю о программировании можно узнать, только сталкиваясь со сложными задачами, работая в разных командах.
Однако оставалась одна вещь, которой мне все еще не хватало – больше книг о разработке. Но список «Обязательных книг для любого разработчика» был не мал. Список таких списков был ничуть не меньше.
Каждая книга хороша по-своему, но их уж слишком много, чтобы успеть прочитать за всю жизнь. Может быть, даже за две. Этот факт может слегка угнетать, и именно из-за него я не мог прочитать свою первую книгу, уже став профессионалом. Похоже, что не я один.
Я углубился в изучение этой проблемы и, найдя в общем счете 18 подобных списков, составил один «идеальный», отсортировав его по количеству упоминаний.
Эти книги не сделают из вас великих разработчиков, это сделает применение полученных вами знаний наряду с приобретаемым опытом. Я сам стараюсь читать хотя бы одну из этих книг каждые два месяца.
Весь список состоит из 139 книг, которые доступны по ссылке внизу страницы. Книги, упомянутые в этой статье, являются лучшими в этой огромной подборке. Хотите предложить другие списки, которые я пропустил? Оставьте соответствующий комментарий, и я их добавлю.
В этом списке вы не найдете книгу о том, как стать Java-разработчиком, зато можете найти книгу, в которой примеры решений будут написаны на Java, что позволит лучше понять всю тему. Вы можете найти книгу по определенному языку, которая подойдет и разработчикам, пишущим на других языках. Я также добавил сюда книги, отвлеченные от разработки, которые, впрочем, считаются полезными для разработчиков (например, «Мифический человеко-месяц, или Как создаются программные системы»).
Итак, без дальнейших отлагательств, я рад представить вам:
Идеальную подборку книг для разработчиков (в порядке возрастания частоты упоминаний)
Популярные технологии разработки
Design Patterns: Elements of Reusable Object-Oriented Software (Приёмы объектно-ориентированного проектирования. Паттерны проектирования)
Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидс
Это классическая книга, необходимая для понимания того, что такое паттерны проектирования, и с какими из них вам предстоит столкнуться в процессе разработки. Также в ней представлена огромная коллекция популярных паттернов.
Code: The Hidden Language of Computer Hardware and Software (Тайный язык информатики)
Не только настольная книга для всех, кто связан с компьютерной индустрией, после прочтения которой вы поймете, как на самом деле работает ваша программа. Это к тому же и наглядное пособие по тому, как человек и окружающий его мир связан с вселенной Кода.
Working Effectively with Legacy Code (Эффективная работа с унаследованным кодом)
Майкл Физерс
Навык работы с унаследованными системами буквально необходим для любого разработчика. Если вы работаете с большой базой данных более чем пятилетней давности, возможно, вы только что открыли новую библию. Читайте с любовью, чтобы научиться выжимать максимум из унаследованных систем
Командная разработка
Peopleware: Productive Projects and Teams (Человеческий фактор: успешные проекты и команды)
Том ДеМарко, Тим Листер
Книга, взорвавшая все то, что было до этого известно в области управления разработкой программного обеспечения. Если вы всегда хотели стать настоящим боевым тим-лидером, эта книга для вас.
Patterns of Enterprise Application Architecture (Архитектура корпоративных программных приложений)
Мартин Фаулер
Научитесь избегать частых ошибок в работе с кодом. Книга изобилует примерами того, когда лучше использовать (или не использовать) тот или иной паттерн. Ее визитная карточка – это каталог шаблонов весьма серьезного уровня.
Introduction to Algorithms (Алгоритмы: построение и анализ)
Томас Кормен, Чарльз Лейзерсон, Рональд Ривест и Клиффорд Штайн
Пожалуй, лучшая книга для понимания и использования алгоритмов, просто и полно объясняющая быстрые решения сложных проблем с использованием правильных структур. Квинтэссенция полезности и всесторонности.
Рефакторинг и оптимизация
Clean Code: A Handbook of Agile Software Craftsmanship (Чистый код. Создание, анализ и рефакторинг)
Роберт Мартин
Книга, делящая ваш мир кодинга на «до» и «после». Единственная в своем роде. Лучший способ избавиться от вредных привычек в программировании.
Refactoring: Improving the Design of Existing Code (Рефакторинг: улучшение существующего кода)
Мартин Фаулер
С развитием объектно-ориентированных языков программирования появилась более серьезная проблема – разработчики. Научитесь избавляться от ненужного и экономить свое время и время других. Необходимо к прочтению тем, кто хочет улучшить уже написанный код.
Философия кодинга
The Mythical Man-Month (Мифический человеко-месяц, или Как создаются программные системы)
Фредерик Брукс
Переработанная и исправленная классика, не подвергнутая влиянию времени. Необходимо к прочтению, если вы связаны с разработкой и хотите задуматься над психологической стороной разработки. Практически единственная классическая книга в этой области.
The Pragmatic Programmer: From Journeyman to Master (Программист-прагматик. Путь от подмастерья к мастеру)
Эндрю Хант, Девид Томас
Эта книга не только изменит ваши привычки при написании кода, но и вас, как программиста. Она наполнена практическими советами о том, как получить максимум от кода и вас самих. Насколько новаторская ли это книга? Достаточно, чтобы запустить целую издательскую кампанию. Если вам как-то удалось не прочитать ее, сделайте это сейчас.
Code Complete: A Practical Handbook of Software Construction
Стив МакКонелл
Книга, меняющая не только код, но и вас самих. Самое лучшее, удобное и понятное, что вы сможете найти. Окажите себе услугу и прочитайте ее как можно быстрее. Мы будем удивлены, если после этого вы не посоветуете ее всем своим коллегам-программистам
Весь список состоит из 139 книг и рекомендаций к ним. Вы можете ознакомиться с ним по ссылке.
Code : The Hidden Language of Computer Hardware and Software
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Code : The Hidden Language of Computer Hardware and Software
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Code the hidden language of hardware and software
Секрет конечно так себе в данной ситуации. Что и показало развитие событий. Роман для одного раза прочитать.
Огни, камера, игра [ЛП]
Напомнило романы Райли, зефирно-ванильные конечно. Может только эта история менее развратная.
Я просто хочу тебя (ЛП)
Опять мужик с психологическими травмами, которые не позволяют заводить серьëзные отношения. Может уже хватит оправданий обыкновенного кобелизма? Но зато ревности на пустом месте полные штаны. Герой не
Секс на одну ночь. или на две [ЛП]
Простенькие герои, забавные ситуации. Романчик довольно мил.
Реальная любовь [ЛП]
Роман на один раз. Семейка конечно у героини что врагу не пожелаешь. Здесь уже не смешно. Правда немного удивляет и героиня, которой далеко не 18 лет, но она всë ещë не может поступать так, как ей хочется.
В глубинах тьмы [ЛП]
Совершенно маньячная тëмная история. К сожалению, как жизнь доказывает, такие дети, а тем более уже ставшие взрослыми людьми, не адаптируются к нормальной жизни никогда. Здесь же всë слишком
Игра [ЛП]
Роман ни о чём. Отношения, кроме постоянного желания обеих сторон потр. ться, совершенно не раскрыты. Соответственно и ощущение, что любовь из ниоткуда. Сексуальные сцены также никакие.
Code: The Hidden Language of Computer Hardware and Software
Рейтинг: 0/5 (Всего голосов: 0)
Аннотация
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Book Review: Code: The Hidden Language of Computer Hardware and Software
Whether you want to become a software engineer, or just better understand the technologies that power our world, there’s real value in learning how computers actually work. Because computers are so complicated these days, it can be hard to figure out where to start.
The answer, according to Charles Petzold, is to go back in history to build an understanding of the foundational concepts, slowly moving from the telegraph equipment of the 19th century to the graphical user interfaces of the 1980s. In “ Code: The Hidden Language of Computer Hardware and Software,” Petzold takes us from morse code to the early microprocessors of the 70’s and 80’s, providing a deep and satisfying explanation of exactly how computers function.
What is code?
The book starts off by going straight to the heart of the title – explaining “what is code.” Not, initially, a series of steps describing operations that you’d like a computer to perform, but rather the very simplest codes like morse code — a system for transferring information between people and/or machines.
In addition to being a good introduction to the idea of codes, morse is also useful because it is binary. That is, it’s composed of two values — dots and dashes — used in various combinations to represent all of the letters of the alphabet. And that’s something we’ll see a lot more of as the book progresses since most computers also use a binary code (with 1s and 0s) to represent information and instructions.
Just add electricity
In the spirit of starting from the basics, Petzold also provides an introduction to electricity by introducing “the anatomy of a flashlight.” In doing so, he explains how electrons are moved through a circuit by a voltage, explaining what voltage, current, and resistance really mean.
After introducing both codes and electricity, Petzold examines the telegraph – a way to use electricity to transmit encoded information. The telegraph also marks the beginning of modern communication. As Petzold notes «For the first time, people were able to communicate further than the eye could see or the ear could hear and faster than a horse could gallop.»
One challenge with the telegraph is that the signal becomes weaker with distance. If you wanted to send messages across the US, you’d need to find a way to make the signal stronger every so many miles. To handle that, Petzold introduces the idea of a relay — something that takes a small, weak current and uses it to flip a switch in another circuit which can carry a bigger current. At the risk of a spoiler alert, he is also effectively introducing us to the action that transistors perform. With a transistor, a small current on one of their three terminals allows you to switch a bigger current between the other two terminals — just like a relay, but in a much smaller and more efficient package. And transistors are the primary building blocks of most modern digital electronics — including computers.
Binary basics
Petzold then takes a detour to introduce “base” systems, working down from decimal (ten distinct numbers from 0-9 before you have to add another digit to represent “10”) through octal (you only have 8 digits) all the way down to binary where you only have 0s and 1s. He even introduces some worked examples. “Tie a yellow ribbon” is a binary signal with only two possible states whereas Paul Revere’s “one if by land, two if by sea” required a couple of lanterns to convey the three possible states!
Just add algebra
A binary system is fine for conveying information, but to be able to perform operations on the information, you also need boolean algebra – a way to work with binary data. Petzold first introduces the basics of boolean logic and then shows how you can combine that with electricity (starting with simple circuits using a light bulb and switches) to create logic gates. He shows how AND, OR and NOT logic gates work and how they can be combined.
From here, he shows how to create the capacity to add and subtract using just logic gates and then introduces oscillators (that change between two stable states frequently) and flip-flops – a kind of gate that adds memory to a system.
Building a modern computer
Petzold then runs us through how to build an automated adding machine, building up the basic instructions of a microprocessor one at a time. He introduces the classic Von Neuman architecture that underlies most computers, explains how semiconductors work and then introduces two of the early, classic microprocessors from the late 1970’s – the Intel 8080 and the Motorola 6800.
Just add software
Finally, Petzold introduces the software required to turn a chunk of silicon into Excel, Pac-Man or a website! He starts off by explaining the functioning of a typical Operating System, and then shows how higher levels of abstraction can make it easier to write software when compared to describing everything in machine code – which is extremely verbose and tedious. He then rounds out the book by explaining how computer graphics work and how they are used to deliver graphical user interfaces.
Summary
If you just want a couple of metaphors to have a sense for how elements of computing work, this is not the book for you. Rather than being satisfied with explanations like “RAM is like your tabletop and your hard drive is like your filing cabinet” Petzold takes the time to provide a rich and nuanced introduction to the internal workings of modern computers.
Unusually this book blends comprehensiveness with accessibility. If you’re willing to take the time to work through the 380 pages, you’ll never quite think about a computer in the same way again!
Code: The Hidden Language of Computer Hardware and Software
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Code. The Hidden Language of Computer Hardware and Software
A masterpiece by Charles Petzold
Let’s suppose you are stuck at a desert island. You somehow manage to find food and now you need the second crucial thing to survive: a computer. How could you build a computer without… buying it?
It was my brother who’ve recommended the Code (the book) to me. I’ve read a couple of its chapters, found it ridiculously simple and thrown it away as a “stupid book” not worthy of my time. Years later I will find out that this was the only book (without an exaggeration) that I needed at the time. More than two years I was studying programming through studying C++ (the one and only). It felt good because there are so many concepts in C++ that force you to understand the low-level details of programs. However, there was that barrier that I could never cross. I couldn’t understand how is it that the CPU “understands” that it should subtract variables rather than multiplying. How could it understand that the variable x is at the address 0x12008992, and it should be loaded into one of its registers?
Building a computer became my ultimate dream as a programmer. And that was the perfect time that I was ready to read the masterpiece by Charles Petzold.
The book starts with the concept of “codes” and information encoding/decoding, introducing the Morse code, the Braille alphabet and so on. It slowly builds a strong foundation for the reader to move towards zeroes and ones. The author carefully introduces the reader to the binary numeral system and boolean algebra.
After building the required fundament, the book dives into electric circuits and teaches how to build a very simple calculator. The reader will encounter many graphics depicting particular circuits in action.
Eventually, you will be able to build a computer with relays from scratch and with bare hands. That’s a feeling worth everything. After building logic gates using relays and other components, the reader will have her next great moment by understanding how memory works. How can a device actually store even a single bit of information? Though modern systems differ in their complexity and structure from the CPU and RAM built in the book, the very idea that you can build a complete computer with your bare hands (even theoretically) by reading a 400-page book is kind of shocking. The author deserves a VIP spot in heaven.
Finally, the book introduces an assembly language and how would it be run by the “computer” (or the CPU) built in the book. It shows the process of automating the CPU to sequentially execute instructions read from the RAM.
The book finishes with describing a graphical interface and its low-level components but doesn’t dive into the basics as it did with the computer. However, the book can be considered as a complete work that every programmer must read at least twice. After reading the book you will be inspired to build your own computer as did this guy.
Impressing, isn’t it? (though it’s built on relays).
Final score
Useful for programmers: 10/10
Fundamental knowledge: 11/10
Real-world projects and examples: 6/10
Топ-20 самых упоминаемых книг на HackerNews
На HackerNews пользователь tracyhenry проанализировал 40 000 комментариев и составил рейтинг самых упоминаемых в комментариях книг.
Автор рейтинга преисполнен благодарности тем книгам, про которые он узнал благодаря HackerNews и решил отдать долг и написать приложение, которое бы проанализировало все рекомендации на Hackerews. Такие попытки были неоднократно (раз, два, три), но в предыдущих попытках были ограничения по размеру выборки, либо были недостаточно четкие правила поиска и поэтому картина была не полна. Еще сложность представляли случаи, когда названия книги пересекалось с названием фильма («Первому игроку приготовиться») или название — это общеупотребительное слово/словосочетание: «Стив Джобс» или «Медитация».
Автор рейтинга использовал NLP-модель BERT для повышения точности распознавания (и 4000 вручную размеченных комментариев). Новая версия извлекает в 9-50 раз больше упоминаний, чем предыдущие решения.
Ограничения текущей модели: 1) не различает две разные книги с одинаковым названием («Гарри Поттер» и «Гарри Поттер и методы рационального мышления»). 2) не понимает, что это гневный комментарий.
Книги из топ-20 очень известные, и нет смысла давать их краткое описание, это уже делали много раз. Привожу здесь список из топ-20 (более полный см тут), чтобы вы могли свериться, насколько вы «соответствуете повестке мировой ИТ элиты» и отзывы/конспекты/упоминания про эти книги на Хабре.
Что вы уже давно прочитали, а что упустили из вида и почему?
1. Thinking, Fast and Slow
«Думай быстро, решай медленно», Канеман
2. The Pragmatic Programmer
«Программист-прагматик. Путь от подмастерья к мастеру», Хант, Томас
3. Dune
«Дюна», Фрэнк Герберт
4. Snow Crash
«Лавина», Нил Стивенсон
5. The Selfish Gene
«Эгоистичный ген», Докинз
6. Why We Sleep: Unlocking the Power of Sleep and Dreams
«Зачем мы спим», Мэттью Уолкер
7. The Design of Everyday Things
«Дизайн привычных вещей», Дональд Норман.
8. Atlas Shrugged
«Атлант расправил плечи», Айн Рэнд
9. Brave New World
«О дивный новый мир», Олдос Хаксли
10. Cryptonomicon
«Криптономикон», Нил Стивенсон
11. Zen and the Art of Motorcycle Maintenance
«Дзэн и искусство ухода за мотоциклом», Роберт Пёрсиг
12. Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture
13. The Black Swan
«Черный лебедь. Под знаком непредсказуемости», Нассим Николас Талеб
14. Zero to One: Notes on Startups, or How to Build the Future
15. The Lean Startup
» Бизнес с нуля. Метод Lean Startup», Эрик Рис
16. Designing Data-Intensive Applications
«Высоконагруженные приложения. Программирование масштабирование поддержка», Клеппман Мартин
17. Guns, Germs, and Steel: The Fates of Human Societies
«Ружья, микробы и сталь. Судьбы человеческих обществ», Джаред Даймонд
18. Deep Work: Rules for Focused Success in a Distracted World
«В работу с головой. Паттерны успеха от IT-специалиста», Ньюпорт Кэл
19. Clean Code: A Handbook of Agile Software Craftsmanship
«Чистый код. Создание, анализ и рефакторинг», Роберт Мартин
20. Getting Things Done: The Art of Stress-Free Productivity
«Как привести дела в порядок. Искусство продуктивности без стресса», Дэвид Аллен
Robin’s Blog
Review: Code – The Hidden Language of Computer Hardware and Software by Charles Petzold
Summary: This book takes you all the way from Morse Code to a fully working computer, explaining everything along the way. What’s more, it’s a great read too! If you ever wondered how a computer worked then buy this and read it – even if you think you already know (unless you’re, you know, a chip designer at Intel or something!)
Reference: Petzold, C., 2000, Code: The Hidden Language of Computer Hardware and Software, Microsoft Press, 395pp Amazon Link
As you’ll probably know if you’ve read many articles on this site: I’m a computer programmer and general ‘geek’. So, it won’t surprise you to know that I am quite interested in how computers work – and picked up this book thinking that I’d already know quite a lot of it. I knew a fair bit – but I learnt a huge amount from reading it, and it helped me gain a full understanding of what is going on when I write computer programs – right down to the level of the electricity inside the processor. By the end of the book I was itching to buy lots of relays or transformers and make a computer on my living room table!
The book starts by looking at the ways you, as a child, might try and communicate with your best friend who lives across the street – after your parents think you’ve gone to bed. The natural solution to this is Morse code using a torch, and Petzold takes this simple code as a good starting point to explain the concepts of a code. He then moves on to Braille, which is significantly more complex than I thought, and which gives the opportunity to look at some of the more complex things you find in codes (eg. shift characters and escape characters – both of which Braille has). You’ll note that nothing about computers has been introduced yet – and that is a key feature of the first part of the book, it doesn’t go straight in to “this is how a computer works”, it starts at a very basic (but still interesting) level that becomes useful when thinking about computers later in the book, but isn’t too scary.
Electricity and electrical circuits are introduced when describing how you might communicate with another friend whose window you can’t see from yours. This is introduced almost entirely from scratch – explaining how circuits work, what voltage is, how batteries work etc – but it actually went beyond my previous knowledge in electricity fairly quickly, and taught me much of interest. Whenever circuits are drawn in the book – from here onwards – they are shown with the wires that have current in them in red, making it very easy to see what is going on.
The discussion of electricity for sending messages leads into the history of telegraph networks, and then the concept of relays. I’d never really understood relays before, but Petzold introduces them with a very good analogy as a ‘labour saving device’ at a telegraph station. Around this point a number of other key – but rather unrelated – topics are covered like Boolean logic (True/False, AND, OR etc) and number systems (particularly number bases and binary). There is a very practical emphasis on everything – and the point about the importance of binary as on/off, true/false, open/closed and so on, is very much emphasised. After these introductions, the relays discussed earlier are combined to produce logic gates (AND, OR, NOT, NAND, XOR and so on) with the aim of producing a circuit to help you choose a cat (yes, it sounds strange, but works well as an example!). Here you can start to see how this is moving towards a computer…
I’m not going to go much further into detail about the rest of the book, except to say that you move towards being able to ‘build’ (conceptually if not actually physically) a fully-working computer gradually, one step at a time. From logic gates, to adding circuits and subtracting circuits and from clocks to flip-flops and RAM you gradually work up to a full, programmable computer which you have basically built by page 260! Given how much detail everything is explained in – and how little knowledge is assumed – fitting it into 260 pages is very impressive!
Of course, the book continues past page 260, going on to cover topics including input and output (from keyboards and to the screen), high and low level programming languages, graphics, multimedia and more. Interestingly, transistors aren’t mentioned until after you’ve got almost all of the way to building a computer – but this is almost certainly because relays are far easier to understand, and accomplish the same job. Once they have been introduced, a couple of important processors (the Intel 8080 and the Motorola 6800) are examined in detail – a really interesting opportunity to see how the concepts you’ve learnt about have been applied in real life by chip designers.
I can think of very few issues with this book – although the last chapter does read rather strangely, as if the author was trying to fit far too much into far too little space (trying to cover multimedia, networking, WIMP interfaces and more in one chapter is a bit of a tall order though!), but I very much like the book as a whole. It is one of those rare books that is suitable for a very wide range of audiences – from those with almost no knowledge of the subject at all (it starts from the very beginning, so that isn’t a problem) right up to those who are experienced programmers and know some of it (they will still find a lot they don’t know, and realise a lot of things). Overall: a great read, very interesting and very educational. You won’t be disappointed.
Code : The Hidden Language of Computer Hardware and Software
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
9 лучших книг про IT и программирование, которые вы могли пропустить
Помните, Льюис Кэрролл писал: «Здесь приходится бежать со всех ног, чтобы только остаться на том же месте, а чтобы попасть в другое место, нужно бежать вдвое быстрее»? Это фраза прекрасно подходит для IT-мира: технологии быстро развиваются, и каждый день нужно осваивать что-то новое, чтобы оставаться востребованным специалистом. У каждого программиста наверняка есть 5-6 бумажных книг, ставших классикой. О некоторых таких книгах мы уже писали. Но чтобы оставаться востребованным кодером, надо постоянно обновлять библиотеку. В прошлом году портал DevMountain сделал подборку из семи не слишком популярных книг для начинающих программистов. Учитывалась не только оценка портала, но и отзывы на Amazon, а также рекомендации популярных блогов. Автор GeekBrains Илья Бубнов внимательно изучил этот список, а также дополнил подборку парой свежайших экземпляров.
Python Tricks: A Buffet of Awesome Python Features
Открывает наш рейтинг лучшая книга по Python, выпущенная в прошлом году. Здесь представлены best practice, лаконичные решения сложных задач, а также совсем простые примеры с пошаговым описанием.
Python Tricks идеально подойдёт тем, кто уже освоил синтаксис и основные возможности языка, но пока «плавает» в алгоритмах. С этой книгой можно сосредоточиться на практических навыках, создании чистого и, главное, рабочего кода.
The Complete Software Developer’s Career Guide
Code: The Hidden Language of Computer Hardware and Software
Чарльз Петцольд является одним из семи «пионеров Windows» — высшей награды Microsoft, вручаемой за вклад в популяризацию ОС. О программировании и IT он пишет с 1984 года. «Code:…» был впервые опубликован в 2000 году и быстро стал настоящим бестселлером. Сегодня это одна из лучших книг в мире IT благодаря простому объяснению, как код встроен в наши жизни и почему крайне полезно его изучить. Петцольд говорит об истории, развитии технологий, первых языках высокого уровня, ориентируясь на широкую аудиторию. Результат – даже ребенок поймёт описанное в «Code:…», после чего без проблем сделает первые шаги в программировании. Кстати, эта книга есть и в русском переводе.
Hacking: The Art of Exploitation, 2nd Edition
Упрощённо говоря, хакерство – это просто дисциплина, занимающаяся поиском и решением проблем в коде. Иногда это требует нетрадиционных подходов, иногда это просто использование очевидных «дыр». Благодаря этой книге читатели смогут взглянуть на мир программирования с точки зрения хакера: узнают про слабые места в криптографии и взлом через сети, а практические задания позволят любому желающему размять руки и мозг.
The Art of Invisibility: The World’s Most Famous Hacker Teaches You How to Be Safe in the Age of Big Brother and Big Data
Автор книги, Кевин Митник, называет себя «самым известным хакером в мире». Его карьера началась в 13 лет, когда он взломал систему проездных карт, чтобы бесплатно кататься на автобусе по Лос-Анджелесу. Позднее он совершил ещё несколько киберпреступлений разной сложности, пока в итоге не был пойман ФБР. В тюрьме он провёл 5 лет – с 1995 по 2000 год. Теперь Митник ведёт лекции о том, как оставаться невидимым в эпоху Большого Брата и больших данных. Эта книга – базовое пособие для новичков. Здесь не только советы общего характера, но и практические указания на то, как не надо программировать. Для опытных программистов у Митника есть книги «повышенной сложности» – «The Art of Intrusion: The Real Stories Behind the Exploits of Hackers, Intruders and Deceivers» и «The Art of Deception: Controlling the Human Element of Security».
Javascript Design Patterns
Шаблоны проектирования существуют во всех языках, JavaScript здесь не исключение. Если у вас нет фундаментального понимания, что это такое – эта книга станет отличным учебником. Всегда где-то есть начинающий программист, который борется с теми же проблемами, что и вы. И всегда есть тот, кто эту проблему уже решил. Javascript Design Patterns содержит множество проверенных решений для типовых задач, поэтому эта книга пригодится как для обучения, так и в качестве подручного помощника.
Managing Humans: Biting and Humorous Tales of a Software Engineering Manager
Майкл Лопп – ещё один автор популярного блога (Rands in Repose), который решил выпустить книгу. Лопп имеет за плечами опыт работы в Symantec, Netscape и Apple, поэтому познакомиться с этой смесью мемуаров и навигатора по карьере будет интересно как руководителям, так и рядовым специалистам. Он рассказывает, каково это – работать в Силиконовой долине, управляя «дисфункциональными яркими людьми». Этим термином Лопп описывает поведение сотрудников, игнорирующих любые различия коллег: по возрасту, полу, статусу, культуре, образованию и т.д. Независимо от того, чью сторону вы займете при прочтении книги, несколько полезных советов для себя наверняка вынесете.
Make Your Own Neural Network
Создание ИИ и нейронных сетей – актуальный тренд в IT. Несмотря на то, что почти вся практическая часть книги приведена на Python, в основе лежит математика и теория нейронных сетей в целом. «Make Your Own Neural Network» знакомит читателей с концепцией искусственного интеллекта через простые и понятные примеры. После прочтения этой книги даже те, кто ничего не понимает в программировании, получат исчерпывающие знания о нейронной сети и том, как они применяются в современном мире.
The Self-Taught Programmer: The Definitive Guide to Programming Professionally
Кори Алтофф – программист-самоучка. Когда он устроился на работу в eBay, он понял, насколько далеко находится от статуса профессионала. Эта книга предназначена для новичков, но и опытным self-taught программистам она пригодится – для развития и оттачивания профессиональных навыков. Темы предельно общие: объектно-ориентированное программирование, основы компьютерной архитектуры и алгоритмов, методы кодирования для разработки ПО.
Какие свежие или просто не зачитанные до дыр книги по программированию порекомендуете вы?
Code: The Hidden Language of Computer Hardware and Software
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Code : The Hidden Language of Computer Hardware and Software
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Автор | Чарльз Петцольд |
---|---|
Предмет | Компьютерная архитектура, Информатика |
Издатель | Microsoft Press |
Идея написать эту книгу пришла ему в голову в 1987 году, когда он писал колонку «PC Tutor» для Журнал ПК. [2] СодержаниеСодержаниеПетцольд начинает Код обсуждая старые технологии, такие как азбука Морзе, Шрифт Брайля, и Логическая логика, который он использует, чтобы объяснить вакуумные трубки, транзисторы, и интегральные схемы. Он отметил, что «очень умным людям» приходилось заходить в «тупики» механических компьютеров и десятичные вычисления до достижения масштабируемого решения, а именно электронного двоичного компьютера с фон Неймана архитектура. В книге также освещены недавние разработки, включая такие темы, как математика с плавающей запятой, операционные системы, и ASCII. Книга фокусируется на «предварительно подключенных к сети компьютерах» и не охватывает таких понятий, как распределенных вычислений потому что Петцольд думал, что это будет не так полезно для «большинства людей, пользующихся Интернетом», его целевой аудитории. [2] В частности, в интервью он сказал, что его «главная надежда» в письменной форме Код должен был передать своим читателям «действительно хорошее ощущение того, что кусочек есть, и как биты комбинируются для передачи информации ». [2] ПриемИнженер-программист и блогер Джефф Этвуд описанный Код как «любовное письмо компьютеру». [3] Code : The Hidden Language of Computer Hardware and SoftwareWhat do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Code : The Hidden Language of Computer Hardware and SoftwareWhat do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Code : The Hidden Language of Computer Hardware and SoftwareWhat do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines. It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within. Code the hidden language of hardware and softwareЭту книгу хорошо дополняют:12 технологических трендов, которые определяют наше будущее Как машинное обучение изменит наш мир Понятная книга о том, как устроен цифровой мир Нелли Литвак и Андрей Райгородский (Почти) правдивая история первого компьютера Charles PetzoldThe Hidden Language of Computer Hardware and SoftwareMICROSOFT PRESS Чарльз ПетцольдТайный язык информатикиИнформация |
Автор | Чарльз Петцольд |
---|---|
Предмет | Компьютерная архитектура, Информатика |
Издатель | Microsoft Press |
Идея написать эту книгу пришла ему в голову в 1987 году, когда он писал колонку «PC Tutor» для Журнал ПК. [2] СодержаниеСодержаниеПетцольд начинает Код обсуждая старые технологии, такие как азбука Морзе, Шрифт Брайля, и Логическая логика, который он использует, чтобы объяснить вакуумные трубки, транзисторы, и интегральные схемы. Он отметил, что «очень умным людям» приходилось заходить в «тупики» механических компьютеров и десятичные вычисления до достижения масштабируемого решения, а именно электронного двоичного компьютера с фон Неймана архитектура. В книге также освещены недавние разработки, включая такие темы, как математика с плавающей запятой, операционные системы, и ASCII. Книга фокусируется на «предварительно подключенных к сети компьютерах» и не охватывает таких понятий, как распределенных вычислений потому что Петцольд думал, что это будет не так полезно для «большинства людей, пользующихся Интернетом», его целевой аудитории. [2] В частности, в интервью он сказал, что его «главная надежда» в письменной форме Код должен был передать своим читателям «действительно хорошее ощущение того, что кусочек есть, и как биты комбинируются для передачи информации ». [2] ПриемИнженер-программист и блогер Джефф Этвуд описанный Код как «любовное письмо компьютеру». [3] Code : The Hidden Language of Computer Hardware and SoftwareWhat do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Code. The Hidden Language of Computer Hardware and SoftwareA masterpiece by Charles PetzoldLet’s suppose you are stuck at a desert island. You somehow manage to find food and now you need the second crucial thing to survive: a computer. How could you build a computer without… buying it? It was my brother who’ve recommended the Code (the book) to me. I’ve read a couple of its chapters, found it ridiculously simple and thrown it away as a “stupid book” not worthy of my time. Years later I will find out that this was the only book (without an exaggeration) that I needed at the time. More than two years I was studying programming through studying C++ (the one and only). It felt good because there are so many concepts in C++ that force you to understand the low-level details of programs. However, there was that barrier that I could never cross. I couldn’t understand how is it that the CPU “understands” that it should subtract variables rather than multiplying. How could it understand that the variable x is at the address 0x12008992, and it should be loaded into one of its registers? Building a computer became my ultimate dream as a programmer. And that was the perfect time that I was ready to read the masterpiece by Charles Petzold. The book starts with the concept of “codes” and information encoding/decoding, introducing the Morse code, the Braille alphabet and so on. It slowly builds a strong foundation for the reader to move towards zeroes and ones. The author carefully introduces the reader to the binary numeral system and boolean algebra. After building the required fundament, the book dives into electric circuits and teaches how to build a very simple calculator. The reader will encounter many graphics depicting particular circuits in action. Eventually, you will be able to build a computer with relays from scratch and with bare hands. That’s a feeling worth everything. After building logic gates using relays and other components, the reader will have her next great moment by understanding how memory works. How can a device actually store even a single bit of information? Though modern systems differ in their complexity and structure from the CPU and RAM built in the book, the very idea that you can build a complete computer with your bare hands (even theoretically) by reading a 400-page book is kind of shocking. The author deserves a VIP spot in heaven. Finally, the book introduces an assembly language and how would it be run by the “computer” (or the CPU) built in the book. It shows the process of automating the CPU to sequentially execute instructions read from the RAM. The book finishes with describing a graphical interface and its low-level components but doesn’t dive into the basics as it did with the computer. However, the book can be considered as a complete work that every programmer must read at least twice. After reading the book you will be inspired to build your own computer as did this guy. Impressing, isn’t it? (though it’s built on relays). Final scoreUseful for programmers: 10/10 Fundamental knowledge: 11/10 Real-world projects and examples: 6/10 Code : The Hidden Language of Computer Hardware and SoftwareWhat do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines. It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within. Описание книги «Код. Тайный язык информатики»Описание и краткое содержание «Код. Тайный язык информатики» читать бесплатно онлайн. Чарльз Петцольд. Код. Тайный язык информатики Информация от издательства Научные редакторы Валерий Артюхин, Азат Гизатулин Издано с разрешения Pearson Education, Inc. Книга рекомендована к изданию Дмитрием Воротилиным, Юрием Коровкиным, Александром Самохваловым, Ольгой Соминой Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. © Authorized translation from the English language edition, entitled Code: The Hidden Language of Computer Hardware and software, 1st Edition; ISBN: 0735611319; by Petzold, Charles; published by Pearson, representing Microsoft Press © 2000 by Charles Petzold. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. Russian language edition published by Mann, Ivanov, and Ferber Publishers. Copyright © 2019. All rights reserved. © Перевод на русский язык, издание на русском языке, оформление. ООО «Манн, Иванов и Фербер», 2019 Предисловие к оригинальному изданию Замысел «Кода» я вынашивал лет десять. И тогда, и во время работы над рукописью, и даже когда книга вышла из типографии многие спрашивали: «О чем она?» Я всегда отвечал уклончиво, бормотал что-нибудь в духе: «Необычная экскурсия по истории цифровых технологий, сформировавших современную эпоху» – в надежде, что этого будет достаточно. Но в какой-то момент мне пришлось признать: «Код» – это книга о том, как устроены компьютеры. Как я и опасался, отклики были неблагожелательными. На возражение в духе: «А-а, у меня уже есть такая книга» – я немедленно парировал: «Отнюдь, такой – нет». И по-прежнему так считаю. «Код» не похож на прочие книги «о компьютерах». В нем нет больших цветных иллюстраций с дисководами, где стрелками показано, как данные поступают в компьютер, нет рисунков, где паровозик в товарных вагончиках везет нули и единички. Метафоры и сравнения чудесны в своей буквальности, но они ни на что не годны, лишь затмевают красоту технологий. Мне говорили: «А кому интересно, как работают компьютеры?» Верное замечание. Мне, например, нравится вникать в устройство приборов, но я хочу сам решать, когда это делать. Так, описать, как работает мой холодильник, я смогу лишь под пыткой. Однако окружающие часто задают вопросы, свидетельствующие об их интересе к внутреннему устройству компьютера. Типичный пример: «Чем отличается оперативная память от дисковой?» Естественно, это важный вопрос. Такие понятия составляют основу маркетинга ПК. Даже начинающему пользователю требуется знать, сколько мегов одного и гигов другого потребуется для конкретного приложения. Кроме того, новичок должен представлять, что такое файл, как он загружается с диска в память, а затем сохраняется там. На вопрос о дисковой и оперативной памяти принято отвечать: «Память похожа на столешницу, а диск – на ящики стола». В принципе неплохой ответ, но мне он кажется неудовлетворительным. Создается впечатление, будто архитектура компьютера разрабатывалась по образу и подобию бюро. На самом деле разница между оперативной и дисковой памятью – искусственная и обусловлена отсутствием единого энергонезависимого и при этом быстро работающего носителя. Так называемая архитектура фон Неймана, доминирующая в компьютерной индустрии уже более 50 лет, возникла в результате этого технического изъяна. Когда меня спрашивали, как запускать программы для Macintosh под Windows, я впадал в ступор, осознавая, что для ответа придется затронуть массу технических тонкостей, которые собеседник явно сразу не поймет. Хочу, чтобы с помощью «Кода» вы научились разбираться во всех этих вещах настолько, чтобы смогли потягаться с электротехниками и программистами. Надеюсь, вы оцените, каким достижением является компьютер среди технологий XX века, и прочувствуете его красоту саму по себе, без метафор и сравнений. По сути, компьютеры иерархичны: на самом нижнем уровне располагаются транзисторы, а венчает все информация, которая выводится на монитор. В книге мы будем придерживаться этой иерархии. В принципе, книга и структурирована от уровня к уровню. И этот путь не столь сложен, как может показаться. Да, в современном компьютере происходит масса всякой всячины, но это самые обычные и простые операции. Хотя в настоящее время компьютеры сложнее, чем четверть или полвека назад, они не изменились фундаментально. Вот почему изучать историю техники так здорово: чем сильнее углубляешься в прошлое, тем проще становятся технологии. Именно поэтому легко добраться до точки, где понятно решительно все. В книге «Код» я заглянул настолько далеко в прошлое, насколько смог. Сам поразился, что удалось добраться до XIX века и на примере первых телеграфных машин объяснить устройство компьютера. Теоретически все, о чем говорится в первых 17 главах, легко собирается из простейших электрических компонентов, которые в ходу уже более века. Думаю, благодаря всей этой винтажной технике при чтении вы испытаете некоторую ностальгию. Книгу «Код» невозможно было бы озаглавить «Еще быстрее, еще технологичнее» или «Сверхскоростной бизнес на цифровых нейронах»: определение бита дается лишь на 79-й странице, байта – на 199-й. Транзисторы впервые упоминаются на 156-й странице, и то вскользь. Итак, пусть «Код» и весьма основательно объясняет устройство компьютера (найдется немного других книг, где описано, например, как именно работает процессор), стиль книги вполне развлекательный. Несмотря на глубину темы, я старался устроить читателю максимально комфортную прогулку. Без всяких вагончиков с нулями и единицами. 16 августа 2000 года 3а. Система сигналов для представления букв и цифр при передаче сообщений. b. Система символов, букв или слов, которым присваиваются некоторые произвольно подобранные значения. Используется для передачи сообщений в случаях, когда требуется добиться конфиденциальности или краткости. 4. Система символов, применяемая для представления компьютерных команд… Словарь английского языка американского наследия Глава 1. Лучшие друзья Вам десять лет. Ваш лучший друг живет на другой стороне улицы, напротив. Даже окна ваших спален обращены друг к другу. Каждый вечер родители объявляют отбой в безбожно ранний час, а вам еще хочется пообщаться, поделиться мыслями, наблюдениями, секретами, сплетнями, шутками и мечтами. Никто не вправе вас за это упрекнуть. В конце концов, стремление к коммуникации – одно из наиболее характерных человеческих качеств. Пока в спальнях горит свет, можно помахать друг другу из окон и, полагаясь на примитивный язык тела, жестикулируя, обменяться парой мыслей. Однако передавать таким образом сложную информацию вряд ли удастся. И как только родители скомандуют: «Погаси свет!» – ситуация кажется безнадежной. Как общаться? Может, по телефону? А был ли у вас в комнате телефон, когда вам было десять? Даже если так, то, где бы он ни находился, вас подслушают. Если ваш домашний компьютер подключен к телефонной линии, возможно, через него удастся поболтать бесшумно, но, опять же, компьютера в комнате нет. Однако у вас с другом есть карманные фонарики. Все знают, что такой фонарик изобрели специально для чтения книжки под одеялом, но он отлично подходит для ночной коммуникации. Такая связь практически бесшумна, а луч света бьет прицельно, и, пожалуй, его не заметишь в щель под дверью. Бдительные домашние ничего не заподозрят. Можно ли общаться при помощи вспышек? Попробовать точно стоит. В первом классе вы учились писать на бумаге слова и буквы, поэтому кажется уместным экстраполировать эти знания на обмен сигналами. Просто встаньте у окна и попытайтесь рисовать буквы светом. Чтобы написать О, включите фонарик, опишите им круг в воздухе, а потом выключайте. I – это вертикальная палочка. Но, как вы вскоре убедитесь, этот метод просто не работает. Наблюдая за фонариком друга, которым тот выводит в воздухе буквы, вы поймете, как сложно мысленно скомпоновать эти штрихи во что-то цельное. Завитушки и мазки света не слишком точны. Наверняка вы видели в фильмах, как два морехода сигнализировали друг другу над водой мерцающими фонариками, один шпион покачивал зеркальцем, направляя свет сообщнику в другую комнату. Кажется, вот решение. Сначала разработаем простой метод. Каждая буква алфавита соответствует последовательности бликов. Таким образом, один блик будет означать А, два – Б, три – В и т. д. Для Я уже понадобятся 33 блика. Слово «ГДЕ» – 4 блика + 5 бликов + 6 бликов, которые передаются с небольшими паузами, чтобы не перепутать эту серию с 15 бликами, то есть с Н. Паузы-пробелы между словами должны быть чуть длиннее. Code : The Hidden Language of Computer Hardware and SoftwareWhat do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. |
Автор | Чарльз Петцольд |
---|---|
Предмет | Компьютерная архитектура, Информатика |
Издатель | Microsoft Press |
Идея написать эту книгу пришла ему в голову в 1987 году, когда он писал колонку «PC Tutor» для Журнал ПК. [2] СодержаниеСодержаниеПетцольд начинает Код обсуждая старые технологии, такие как азбука Морзе, Шрифт Брайля, и Логическая логика, который он использует, чтобы объяснить вакуумные трубки, транзисторы, и интегральные схемы. Он отметил, что «очень умным людям» приходилось заходить в «тупики» механических компьютеров и десятичные вычисления до достижения масштабируемого решения, а именно электронного двоичного компьютера с фон Неймана архитектура. В книге также освещены недавние разработки, включая такие темы, как математика с плавающей запятой, операционные системы, и ASCII. Книга фокусируется на «предварительно подключенных к сети компьютерах» и не охватывает таких понятий, как распределенных вычислений потому что Петцольд думал, что это будет не так полезно для «большинства людей, пользующихся Интернетом», его целевой аудитории. [2] В частности, в интервью он сказал, что его «главная надежда» в письменной форме Код должен был передать своим читателям «действительно хорошее ощущение того, что кусочек есть, и как биты комбинируются для передачи информации ». [2] ПриемИнженер-программист и блогер Джефф Этвуд описанный Код как «любовное письмо компьютеру». [3] Code : The Hidden Language of Computer Hardware and SoftwareWhat do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Code: The Hidden Language of Computer Hardware and SoftwareWhat do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Usin What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines. Get A CopyFriend ReviewsReader Q&AMatthew Hayes This book pretty quickly gets into electricity and basic circuits. There isn’t any math, but definitely electronics and computer science. I would not recommend this if you «in general have no inclination towards the sciences».(less) Dan Drake I read the Kindle version, and it’s fine. A couple things don’t quite work, though: there are a lot of large-ish tables and sometimes flipping the pag…more I read the Kindle version, and it’s fine. A couple things don’t quite work, though: there are a lot of large-ish tables and sometimes flipping the page past them requires being careful about where you tap/swipe (I have a Paperwhite). There’s also a bit on fonts and typefaces, and the text in that section all appears identical even though it’s clear that in the print version, it’s different. So, the Kindle version isn’t a perfect version, but I’d say it’s «comfortable» and perfectly readable. If you have a Kindle and want to read this book with it, go ahead. It’s a good book.(less) Lists with This BookCommunity ReviewsКод. Тайный язык информатикиЧарльз ПетцольдЭта книга — азбука компьютерных технологий. Шаг за шагом автор знакомит читателя с сущностью кодирования информации, рассказывает об истории возникновения компьютеров, на практических примерах помогает освоить основные концепции информационных технологий, подробно излагает принципы работы процессора и других устройств компьютера. Написанная живо, доступно, иногда иронично, книга богато иллюстрирована, состоит из 25 глав и предметного указателя. Издание адресовано в первую очередь студентам вузов (как гуманитарных, так и технических), а также всем, кто интересуется принципами создания и работы компьютеров. Лучшая рецензия на книгу11 января 2022 г. 21:24 5 Та самая, которую давно искал!Возрастные ограничения: 16+ Рецензии11 января 2022 г. 21:24 5 Та самая, которую давно искал!7 октября 2021 г. 19:04 5 Увлекательно о сложномКнигу порекомендовал бы всем начинающим программистам (особенно системным), а также всем, кто по какой-то причине упустил в своём обучении предмет информатики и желал бы восполнить упущенное. CODE: The Hidden Language of Computer Hardware and Software, a ReviewRevered as a classic in Computer Science and Engineering, Charles Petzold’s CODE lives up to the hype. The primary purpose of this fascinating book is to take the reader through the process of building a simple computer from basic electrical circuits and components that existed in the 19th century to the relatively advanced machines of the 1980s. On our way there, we also receive a history of computing. We start somewhere in the 19th century, where the author tells us a bit about Braille and Morse code. As it turns out, Morse’s telegraph relays will play a big role in our primitive computer, and both Braille and Morse code provide a convenient and familiar introduction to binary codes — an essential part of modern computer architecture. We build elementary electrical circuits, then combine these primitives into logic gates, and continue this way, building more and more complex structures until we have an actual computer. From there, we explore the intricacies of computer storage, GUIs, fixed and floating point arithmetic and get a quick overview of programming languages and operating systems. This book is not easy to read. Read it slowly and allow yourself to absorb its material. I know I had to reread many things when the author is constructing our computer. Yes, it is pretty dense at parts, but the author tells us that it will be from the outset, so prepare yourself. Because of the scope of the book, it is far from comprehensive in its coverage of many areas (operating systems and programming languages theory) but this is to be expected in a book that attempts to cover so many areas. Code : The Hidden Language of Computer Hardware and SoftwareWhat do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines. It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within. 9 лучших книг про IT и программирование, которые вы могли пропуститьПомните, Льюис Кэрролл писал: «Здесь приходится бежать со всех ног, чтобы только остаться на том же месте, а чтобы попасть в другое место, нужно бежать вдвое быстрее»? Это фраза прекрасно подходит для IT-мира: технологии быстро развиваются, и каждый день нужно осваивать что-то новое, чтобы оставаться востребованным специалистом. У каждого программиста наверняка есть 5-6 бумажных книг, ставших классикой. О некоторых таких книгах мы уже писали. Но чтобы оставаться востребованным кодером, надо постоянно обновлять библиотеку. В прошлом году портал DevMountain сделал подборку из семи не слишком популярных книг для начинающих программистов. Учитывалась не только оценка портала, но и отзывы на Amazon, а также рекомендации популярных блогов. Автор GeekBrains Илья Бубнов внимательно изучил этот список, а также дополнил подборку парой свежайших экземпляров. Python Tricks: A Buffet of Awesome Python FeaturesОткрывает наш рейтинг лучшая книга по Python, выпущенная в прошлом году. Здесь представлены best practice, лаконичные решения сложных задач, а также совсем простые примеры с пошаговым описанием. Python Tricks идеально подойдёт тем, кто уже освоил синтаксис и основные возможности языка, но пока «плавает» в алгоритмах. С этой книгой можно сосредоточиться на практических навыках, создании чистого и, главное, рабочего кода. The Complete Software Developer’s Career GuideCode: The Hidden Language of Computer Hardware and SoftwareЧарльз Петцольд является одним из семи «пионеров Windows» — высшей награды Microsoft, вручаемой за вклад в популяризацию ОС. О программировании и IT он пишет с 1984 года. «Code:…» был впервые опубликован в 2000 году и быстро стал настоящим бестселлером. Сегодня это одна из лучших книг в мире IT благодаря простому объяснению, как код встроен в наши жизни и почему крайне полезно его изучить. Петцольд говорит об истории, развитии технологий, первых языках высокого уровня, ориентируясь на широкую аудиторию. Результат – даже ребенок поймёт описанное в «Code:…», после чего без проблем сделает первые шаги в программировании. Кстати, эта книга есть и в русском переводе. Hacking: The Art of Exploitation, 2nd EditionУпрощённо говоря, хакерство – это просто дисциплина, занимающаяся поиском и решением проблем в коде. Иногда это требует нетрадиционных подходов, иногда это просто использование очевидных «дыр». Благодаря этой книге читатели смогут взглянуть на мир программирования с точки зрения хакера: узнают про слабые места в криптографии и взлом через сети, а практические задания позволят любому желающему размять руки и мозг. The Art of Invisibility: The World’s Most Famous Hacker Teaches You How to Be Safe in the Age of Big Brother and Big DataАвтор книги, Кевин Митник, называет себя «самым известным хакером в мире». Его карьера началась в 13 лет, когда он взломал систему проездных карт, чтобы бесплатно кататься на автобусе по Лос-Анджелесу. Позднее он совершил ещё несколько киберпреступлений разной сложности, пока в итоге не был пойман ФБР. В тюрьме он провёл 5 лет – с 1995 по 2000 год. Теперь Митник ведёт лекции о том, как оставаться невидимым в эпоху Большого Брата и больших данных. Эта книга – базовое пособие для новичков. Здесь не только советы общего характера, но и практические указания на то, как не надо программировать. Для опытных программистов у Митника есть книги «повышенной сложности» – «The Art of Intrusion: The Real Stories Behind the Exploits of Hackers, Intruders and Deceivers» и «The Art of Deception: Controlling the Human Element of Security». Javascript Design Patterns Шаблоны проектирования существуют во всех языках, JavaScript здесь не исключение. Если у вас нет фундаментального понимания, что это такое – эта книга станет отличным учебником. Всегда где-то есть начинающий программист, который борется с теми же проблемами, что и вы. И всегда есть тот, кто эту проблему уже решил. Javascript Design Patterns содержит множество проверенных решений для типовых задач, поэтому эта книга пригодится как для обучения, так и в качестве подручного помощника. Managing Humans: Biting and Humorous Tales of a Software Engineering ManagerМайкл Лопп – ещё один автор популярного блога (Rands in Repose), который решил выпустить книгу. Лопп имеет за плечами опыт работы в Symantec, Netscape и Apple, поэтому познакомиться с этой смесью мемуаров и навигатора по карьере будет интересно как руководителям, так и рядовым специалистам. Он рассказывает, каково это – работать в Силиконовой долине, управляя «дисфункциональными яркими людьми». Этим термином Лопп описывает поведение сотрудников, игнорирующих любые различия коллег: по возрасту, полу, статусу, культуре, образованию и т.д. Независимо от того, чью сторону вы займете при прочтении книги, несколько полезных советов для себя наверняка вынесете. Make Your Own Neural Network Создание ИИ и нейронных сетей – актуальный тренд в IT. Несмотря на то, что почти вся практическая часть книги приведена на Python, в основе лежит математика и теория нейронных сетей в целом. «Make Your Own Neural Network» знакомит читателей с концепцией искусственного интеллекта через простые и понятные примеры. После прочтения этой книги даже те, кто ничего не понимает в программировании, получат исчерпывающие знания о нейронной сети и том, как они применяются в современном мире. The Self-Taught Programmer: The Definitive Guide to Programming ProfessionallyКори Алтофф – программист-самоучка. Когда он устроился на работу в eBay, он понял, насколько далеко находится от статуса профессионала. Эта книга предназначена для новичков, но и опытным self-taught программистам она пригодится – для развития и оттачивания профессиональных навыков. Темы предельно общие: объектно-ориентированное программирование, основы компьютерной архитектуры и алгоритмов, методы кодирования для разработки ПО. Какие свежие или просто не зачитанные до дыр книги по программированию порекомендуете вы? Code : The Hidden Language of Computer Hardware and SoftwareWhat do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines. It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within. Code. The Hidden Language of Computer Hardware and SoftwareA masterpiece by Charles PetzoldLet’s suppose you are stuck at a desert island. You somehow manage to find food and now you need the second crucial thing to survive: a computer. How could you build a computer without… buying it? It was my brother who’ve recommended the Code (the book) to me. I’ve read a couple of its chapters, found it ridiculously simple and thrown it away as a “stupid book” not worthy of my time. Years later I will find out that this was the only book (without an exaggeration) that I needed at the time. More than two years I was studying programming through studying C++ (the one and only). It felt good because there are so many concepts in C++ that force you to understand the low-level details of programs. However, there was that barrier that I could never cross. I couldn’t understand how is it that the CPU “understands” that it should subtract variables rather than multiplying. How could it understand that the variable x is at the address 0x12008992, and it should be loaded into one of its registers? Building a computer became my ultimate dream as a programmer. And that was the perfect time that I was ready to read the masterpiece by Charles Petzold. The book starts with the concept of “codes” and information encoding/decoding, introducing the Morse code, the Braille alphabet and so on. It slowly builds a strong foundation for the reader to move towards zeroes and ones. The author carefully introduces the reader to the binary numeral system and boolean algebra. After building the required fundament, the book dives into electric circuits and teaches how to build a very simple calculator. The reader will encounter many graphics depicting particular circuits in action. Eventually, you will be able to build a computer with relays from scratch and with bare hands. That’s a feeling worth everything. After building logic gates using relays and other components, the reader will have her next great moment by understanding how memory works. How can a device actually store even a single bit of information? Though modern systems differ in their complexity and structure from the CPU and RAM built in the book, the very idea that you can build a complete computer with your bare hands (even theoretically) by reading a 400-page book is kind of shocking. The author deserves a VIP spot in heaven. Finally, the book introduces an assembly language and how would it be run by the “computer” (or the CPU) built in the book. It shows the process of automating the CPU to sequentially execute instructions read from the RAM. The book finishes with describing a graphical interface and its low-level components but doesn’t dive into the basics as it did with the computer. However, the book can be considered as a complete work that every programmer must read at least twice. After reading the book you will be inspired to build your own computer as did this guy. Impressing, isn’t it? (though it’s built on relays). Final scoreUseful for programmers: 10/10 Fundamental knowledge: 11/10 Real-world projects and examples: 6/10 Советуют разработчики: подборка популярных книг о программировании, языках, алгоритмахВ сегодняшнем материале мы собрали одни из наиболее популярных книг, отобранных самими разработчиками — резидентами Reddit, Quora, Stack Exchange, Stack Overflow и Hacker News. В нашу подборку попали работы по популярным языкам программирования, проектированию ПО, работе с Linux-системами, сборники практических советов для разработчиков — от начинающих, до опытных. Объединяют эту подборку высокие оценки самих программистов, которым эти книги помогали на разных этапах их карьеры. Об устройстве компьютера и разработке в целомНачнем с книг, которые будут полезны тем, кто делает первые шаги в разработке или хочет «закрыть пробелы» в базовых знаниях. Крэйг Роу (Craig Rowe), руководитель группы разработчиков компании Dootrix, признается, что прочитал книгу только потому, что Джоэл Спольски (Joel Spolsky), автор блога Joel on Software и один из основателей Stack Overflow, назвал её маст-ридом. Сначала Крэйг сомневался, стоит ли читать книгу, ведь она вышла в 2000 году. Но в итоге прочитал и остался доволен: книга помогла ему заполнить пробелы по темам, упущенным во время обучения, а повествование в формате последовательности исторических событий позволило сделать чтение увлекательным. В книге есть множество практических задач, решение которых приводится далеко не всегда — некоторые видят в этом еще одно ее достоинство. В качестве дополнения к этой книге пользователи Reddit рекомендуют обратить внимание на издание The Elements of Computing Systems. Популярность эта книга приобрела из-за отзыва Питера Норвига (Peter Norvig), директора по исследованиям в Google. Питер проводит аналогию с автомобилями: SICP подойдет тем, кто хочет понять, как работает автомобиль, из чего состоит, и как построить безопасную и надежную машину, но вряд ли порадует тех, кто просто хочет научиться водить. Это не легкое чтиво, книга требует концентрации и вдумчивого изучения. Из-за ее сложности некоторые даже устраивают себе SICP-челлендж: чтобы его пройти, нужно дочитать книгу до конца. Если время вам слишком дорого, можно обратить внимание на краткую версию книги. Об алгоритмахОднако мнения резидентов Stack Overflow об этой книге разделились: кто-то уверенно рекомендует её начинающим, а кто-то советует только полистать первые 200 страниц. Кстати, Стивен Скиена в 1988 году вместе со своей командой придумал и описал концепцию, похожую на iPad, на конкурсе по разработке компьютера будущего. О тонкостях LinuxПо словам Фила Булла (Phil Bull), исследователя в области астрофизики из NASA, проблема многих книг по Linux состоит в том, что они пытаются объять необъятное. Авторы часто мечутся между общим, но поверхностным материалом и описанием специфики конкретного дистрибутива. Автор этой книги сумел найти баланс между данными о системе в целом и более детальной информацией. По мнению разработчика компании AppDynamics Фрэнка Клирли (Frank Cleary), книга помогла ему лучше понять, как взаимодействуют разные компоненты Linux, и применять полученные знания в работе. Резиденты Reddit отмечают, что она подскажет нужные инструменты и научит управлять популярными серверными дистрибутивами. Автор книги, преподаватель и инженер Эви Немет (Evi Nemeth) известна глубокими познаниями в области системного администрирования и сетевых технологий. Помимо работы в ИТ и преподавания Эви увлекалась яхтенным туризмом и ходила на своей яхте Wonderland в разные части мира. В 2013 году она вместе с командой отплыла на яхте Niña в направлении Австралии и пропала без вести где-то в пути. Автор книги Майкл Керриск (Michael Kerrisk) — программист и создатель проекта Linux man-pages получил широкое признание за этот объемный (1500+ страниц) труд среди Linux-разработчиков. Федерико Лючифреди (Federico Lucifredi), менеджер дистрибутивов SUSE Linux Enterprise и openSUSE, называет эту книгу энциклопедией программирования под Linux. А Джейк Эдж (Jake Edge), Linux-разработчик и редактор LWN.net, говорит, что, несмотря на внушительный объем, книга легко читается и простыми словами объясняет большинство ключевых моментов.
О языках программированияПитер Ли (Peter Lee), глава Microsoft Research, особенно рекомендует обратить внимание на книгу тем, кто хочет освежить свои знания о С++. Кроме того, Ли отмечает хорошую подачу материала, которая позволяет быстро и эффективно найти и изучить все, что нужно. Стоит учесть физические размеры книги (если вы предпочитаете бумажную версию): томик размером в 1300 страниц читать в транспорте или между делом будет не очень удобно. Пользователи Reddit считают, что книга стоящая и полезная, но предостерегают, что осилить её целиком довольно непросто и советуют использовать книгу в основном в качестве справочника. Дополнительно по этой ссылке можно найти подборку книг по С++ для любого уровня владения языком. В отличие от своей предыдущей книги Design Patterns in Ruby в этой автор Расс Олсен (Russ Olsen) рассматривает не конкретные шаблоны проектирования на Ruby, а стиль и сущность Ruby в целом. Разработчик и автор блога Code inComplete Джейк Гордон (Jake Gordon) рекомендует эту книгу продвинутым Ruby-программистам, которые хотят убедиться, что они на верном пути. Резиденты Reddit отмечают, что книга может стать вашим единственным туториалом по С, потому что дает исчерпывающее представление о структуре и особенностях языка. А программист Майк Тейлор (Mike Taylor) сравнивает эту книгу с группой Beatles: она популярна и популярность её абсолютно заслуженна. О тонкостях работы и самосовершенствованииДрю Хувер (Drew Hoover), разработчик компании Atomic Object, отмечает, что несмотря на возраст, книга содержит мысли и идеи, которые не теряют своей значимости. Некоторые, однако, ругают книгу за излишнюю категоричность — поэтому Clean Code рекомендуют опытным программистам. Один из основателей Stack Overflow Джефф Этвуд (Jeff Atwood) отмечает, что чтение этой книги означает, что вам нравится ваша работа, вы серьезно к ней относитесь и хотите совершенствоваться. А блогер и разработчик Джейсон Роэлл (Jason Roell) считает, что независимо от опыта, среды разработки или размера проекта, эта книга будет стимулировать мышление и поможет усовершенствовать код. Осман Ахмед Осман (Osman Ahmed Osman), ведущий инженер Quora, утверждает, что в первый день работы в Google ему выдали именно эту книгу как гайд по написанию кода, и она здорово ему помогла. Среди минусов можно отметить объём — 900 страниц быстро прочитать не получится — и постепенное устаревание некоторых принципов, упомянутых в книге. Резиденты Stack Exchange называют ее канонической в плане изучения шаблонов проектирования. А начать знакомство с шаблонами пользователи Stack Exchange рекомендуют с книги Head First Design Patterns: A Brain-Friendly Guide. Несмотря на неоднозначную обложку, многие отмечают, что ее легко читать, что особенно важно при знакомстве с темой. Книга приводит множество разных точек зрения и отмечена положительными отзывами известных разработчиков. Джоэл Спольски отмечает, что она не просто полезная, но и по-настоящему увлекательная. А какие книги, полезные для программистов, порекомендовали бы вы? Code: The Hidden Language of Computer Hardware and SoftwareWhat do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Usin What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
|