Читаем Искусственный интеллект полностью

Разбирать компьютер с детьми – весело. Когда мой сын учился в начальной школе, я однажды разобрала вместе с ним ноутбук. Я собиралась отдать пару ноутбуков на переработку и, прежде чем избавиться от них, хотела разбить жесткие диски молотком. (Я обнаружила, что в каком-то смысле такое уничтожение жестких дисков приносит большее удовлетворение, чем просто стирание данных.) Тогда я спросила сына, не хочет ли он помочь мне и вытащить жесткий диск. «Ты шутишь? Я хочу разобрать всю эту штуку на части», – ответил он, и следующие два часа мы провели на кухне, разбирая два компьютера.

В рамках моего курса в университете мы сначала играем с жесткими дисками и уже потом переходим к обсуждению программного обеспечения (ПО) и «Hello, world!» в том числе. ПО – это все, что взаимодействует с аппаратным обеспечением. С его помощью вы добиваетесь от компьютера выполнения написанных вами на клавиатуре инструкций. Это то, что обеспечивает работу программы «Hello, world!». К слову, текст, который вы набираете, также превращается в инструкции, которые компьютер исполняет. Железо – это физическая часть компьютера, софт – все остальное. Таким образом, компьютерное программирование и написание ПО чаще всего означают одни и те же вещи.

Не буду вас обманывать: программирование – это математика. И если кто-то пытается убедить вас в обратном, что, мол, без математики можно научиться программировать, то, скорее всего, вам пытаются что-то продать.

Хорошая новость заключается в том, что для начального уровня программирования понадобится математика уровня 4-5 класса школы. Вам нужно разбираться в таких операциях, как сложение, вычитание, умножение, деление, и понимать, что такое проценты и остаток. Кроме того, понадобятся базовые знания геометрии, а именно представления о площади, периметре, радиусе и окружности. Также стоит вспомнить о графиках и о координатах х, y, z. Наконец, вам понадобится базовое понимание функций – тех, что мы используем, чтобы превратить 2 в 22.

Если у вас математическая фобия, то, вероятно, на этом самом месте вы хотите закрыть книгу. Это нормально. Многие говорят, что каждый должен уметь писать программы, но я так не считаю. Программирование окажется неприятным опытом, если математика – не ваша сильная сторона. Однако если вы уверены, что способны пересчитать чек в ресторане, или справляетесь с ежедневными задачами вроде измерения ковра, который планируете положить в гостиной, то определенно вы справитесь.

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

Обычно способ взаимодействия аппаратного обеспечения и софта описывается техническим языком. Вместо этого воспользуемся метафорой. Разобраться в слоях компьютера – все равно что разобраться в слоях клаб-сэндвича с индейкой (рис. 2.3).

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

Слой хлеба – основа сэндвича, в случае компьютера – это железо. Оно «не знает» ничего, разве что то, как справиться с двоичными данными – нулями и единицами. Под справляться я подразумеваю считать. Помните, что вся деятельность компьютеров сводится к математике.

Над аппаратным обеспечением находится слой, который позволяет переводить слова в двоичный код (нули и единицы). Назовем его слоем машинного языка. Это как слой индейки, который укладывается поверх хлеба. Машинный слой обеспечивает перевод символов в двоичный код, при помощи которого компьютер и осуществляет расчеты. Этими символами могут быть слова, цифры – то, что мы, люди, используем для коммуникации друг с другом. Это искусственная система. Чтобы говорить на языке машинных кодов, необходимо владеть особым диалектом – языком ассемблера, который буквально собирает символы в машинный код.

Язык ассемблера сложный. Ниже можно познакомиться с примером того, как на нем выглядит программа десятикратного вывода «Hello, world!». Я нашла этот код на сайте для разработчиков под названием Stack Overflow.

Перейти на страницу:

Похожие книги

21 урок для XXI века
21 урок для XXI века

«В мире, перегруженном информацией, ясность – это сила. Почти каждый может внести вклад в дискуссию о будущем человечества, но мало кто четко представляет себе, каким оно должно быть. Порой мы даже не замечаем, что эта полемика ведется, и не понимаем, в чем сущность ее ключевых вопросов. Большинству из нас не до того – ведь у нас есть более насущные дела: мы должны ходить на работу, воспитывать детей, заботиться о пожилых родителях. К сожалению, история никому не делает скидок. Даже если будущее человечества будет решено без вашего участия, потому что вы были заняты тем, чтобы прокормить и одеть своих детей, то последствий вам (и вашим детям) все равно не избежать. Да, это несправедливо. А кто сказал, что история справедлива?…»Издательство «Синдбад» внесло существенные изменения в содержание перевода, в основном, в тех местах, где упомянуты Россия, Украина и Путин. Хотя это было сделано с разрешения автора, сравнение версий представляется интересным как для прояснения позиции автора, так и для ознакомления с политикой некоторых современных российских издательств.Данная версии файла дополнена комментариями с исходным текстом найденных отличий (возможно, не всех). Также, в двух местах были добавлены варианты перевода от «The Insider». Для удобства поиска, а также большего соответствия теме книги, добавленные комментарии отмечены словом «post-truth».Комментарий автора:«Моя главная задача — сделать так, чтобы содержащиеся в этой книге идеи об угрозе диктатуры, экстремизма и нетерпимости достигли широкой и разнообразной аудитории. Это касается в том числе аудитории, которая живет в недемократических режимах. Некоторые примеры в книге могут оттолкнуть этих читателей или вызвать цензуру. В связи с этим я иногда разрешаю менять некоторые острые примеры, но никогда не меняю ключевые тезисы в книге»

Юваль Ной Харари

Обществознание, социология / Самосовершенствование / Зарубежная публицистика / Документальное
Лучшее в нас. Почему насилия в мире стало меньше
Лучшее в нас. Почему насилия в мире стало меньше

Сталкиваясь с бесконечным потоком новостей о войнах, преступности и терроризме, нетрудно поверить, что мы живем в самый страшный период в истории человечества.Но Стивен Пинкер показывает в своей удивительной и захватывающей книге, что на самом деле все обстоит ровно наоборот: на протяжении тысячелетий насилие сокращается, и мы, по всей вероятности, живем в самое мирное время за всю историю существования нашего вида.В прошлом войны, рабство, детоубийство, жестокое обращение с детьми, убийства, погромы, калечащие наказания, кровопролитные столкновения и проявления геноцида были обычным делом. Но в нашей с вами действительности Пинкер показывает (в том числе с помощью сотни с лишним графиков и карт), что все эти виды насилия значительно сократились и повсеместно все больше осуждаются обществом. Как это произошло?В этой революционной работе Пинкер исследует глубины человеческой природы и, сочетая историю с психологией, рисует удивительную картину мира, который все чаще отказывается от насилия. Автор помогает понять наши запутанные мотивы — внутренних демонов, которые склоняют нас к насилию, и добрых ангелов, указывающих противоположный путь, — а также проследить, как изменение условий жизни помогло нашим добрым ангелам взять верх.Развенчивая фаталистические мифы о том, что насилие — неотъемлемое свойство человеческой цивилизации, а время, в которое мы живем, проклято, эта смелая и задевающая за живое книга несомненно вызовет горячие споры и в кабинетах политиков и ученых, и в домах обычных читателей, поскольку она ставит под сомнение и изменяет наши взгляды на общество.

Стивен Пинкер

Обществознание, социология / Зарубежная публицистика / Документальное
Открытый заговор
Открытый заговор

Работа «Открытый Заговор» принадлежит перу известного английского писателя Герберта Уэллса, широко известного в России в качестве автора научно-фантастических романов «Машина времени», «Человек-невидимка», «Война миров» и другие. Помимо этого, Уэллс работал в жанрах бытового романа, детской, научно-популярной литературы и публицистики. «Открытый Заговор» – редкий для английского писателя жанр, который можно назвать политическим. Предлагаемую работу можно даже назвать манифестом, содержащим призыв к человечеству переустроить мир на новых началах.«Открытый Заговор» ранее не переводился на русский язык и в нашей стране не издавался. Первая версия этой работы увидела свет в 1928 году. Несколько раз произведение перерабатывалось и переиздавалось. Настоящая книга является переводом с издания 1933 года. Суть предлагаемого Уэллсом переустройства мира – в демонтаже суверенных государств и создании вместо них Мирового государства, возглавляемого Мировым правительством. Некоторые позиции программы «Открытого Заговора» выглядят утопичными, но, вместе с тем, целый ряд положений программы уже воплощен в жизнь, а какие-то находятся в стадии реализации. Несмотря на то что работа писалась около 90 лет назад, она помогает лучше понять суть процессов, происходящих сегодня в мире.

Герберт Джордж Уэллс , Герберт Уэллс

Государство и право / Политика / Зарубежная публицистика / Документальное