Сила PEEK и POKE

Что пара простых команд из устаревшего компьютерного языка может рассказать нам о жизни?

Итак, на днях я провалился в кроличью нору. Когда я копался в коробке в своем хранилище, я наткнулся на очень старый флаер, который я хранил все эти годы из-за ностальгии. На нем ухмыляющийся Уильям Шатнер в свитере — вскоре после выхода первого фильма «Звездный путь», но до Гнева Хана — провозгласил Commodore VIC-20 «чудо-компьютером 1980-х».

Для тех, кто недостаточно взрослый, чтобы помнить (или кто в 80-е имел более важные дела), VIC-20 был ранним «домашним компьютером» со значительно меньшим объемом оперативной памяти, чем вы могли бы найти в даже самые тупые «умные часы» на сегодняшний день. Тем не менее, на пару лет это был весь мой мир. Я не помню точно, что я сказал или сделал, чтобы убедить своих родителей купить его для меня (по колоссальной цене в 300 долларов), но что бы это ни было, я уверен, что никогда не был так убедителен в чем-либо еще в мире. Вся моя жизнь.

За исключением нескольких часов, проведенных с компьютерами Radio Shack в нашей школе, этот VIC-20 был в основном тем, как я научился программировать на одном из первых языков программирования под названием BASIC. По сегодняшним стандартам программирования Бейсик был довольно примитивным, но он познакомил меня с основными принципами всех языков программирования, которые я сохранил до сих пор. Большую часть свободного времени я тратил на изучение переменных, операторов IF/THEN и циклов FOR/NEXT, жадно печатая сотни строк кода в день как для того, чтобы увидеть, что возможно, так и для создания реальных вещей, таких как элементарные игры и приложения.

Как уже упоминалось, у VIC-20 не было много оперативной памяти. Только около 5 КБ ОЗУ из коробки, насколько я помню. Чтобы представить это в перспективе, ноутбук, на котором я пишу это, теперь имеет 16 ГБ — в три миллиона раз больше. Так что для программиста память VIC-20 была ценной. Это означало, что если вы пытались написать какую-либо приличную программу, вам приходилось либо «украсть» память из небольших ее карманов, расположенных между машинным кодом, управляющим основными функциями компьютера, либо иногда даже приказать вашей программе изменить эти системные настройки. напрямую. И чтобы сделать это, вы должны использовать одни и те же две команды снова и снова — PEEK и POKE.

Учитывая все обстоятельства, PEEK был относительно пассивным и безвредным. Это позволяло вам видеть текущее значение ячейки памяти. Напротив, POKE был одновременно невероятно мощным и мучительно опасным, потому что позволял вам изменить существующее значение на что-то другое. Сделайте это правильно, и ваша игра получит классную новую функцию. Но ТОЧИТЕ не ту ячейку памяти, и ваша клавиатура просто перестанет работать. Или ваш монитор (в моем случае это старый черно-белый телевизор) забит тарабарщиной. Любой из них, наряду с дюжиной других столь же ужасных исходов, может означать потерю работы на целый день в мгновение ока.

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

В бизнесе, как и в жизни, важен PEEK, потому что нужно знать и то, что уже сделано, и то, что впереди. Прыгать, не глядя, не «дважды отмерив», как говорится, может означать напрасные усилия, потраченное впустую время и потраченные впустую ресурсы.

Тем не менее, не менее важно не бояться плохого исхода настолько, чтобы не ТЫКАТЬ, когда придет время. В конце концов, инерция может быть худшим исходом, чем неудача, и много было написано о концепции «неудачи вперед» — обучении на неожиданных или нежелательных результатах. Делайте домашнее задание, да, конечно. Знайте свой бизнес, пользуйтесь аналитикой, задавайте правильные вопросы. Но в конечном счете, если вы не готовы действовать, рисковать тем, что все пойдет не так, вы никогда не продвинетесь вперед и не сделаете что-то великое.

Как метод кодирования PEEK и POKE давно устарели. У современных программистов более чем достаточно памяти, чтобы делать всевозможные удивительные вещи, которые едва ли можно было представить в 80-х годах. Но как концепция PEEK и POKE продолжают жить, по крайней мере, для меня. Это две стороны одной медали, которые я каждый день переворачиваю в своей голове. С тем же успехом вы можете назвать их Экзамен и Исполнение. Или, может быть, Анализ и Действие. Но как их ни назови, ясно, что в любом виде бизнеса, да и вообще в жизни одно без другого не имеет смысла.

Эта статья была первоначально опубликована на LinkedIn и RandyHeller.com 24 октября 2018 г.