У меня было много разных соображений, но я был не в состоянии поднять руку и начать говорить. Обычно я сидел на краю своего стула и слушал, как остальные делились всякими новостями компьютерной индустрии, рассказывали о том, какие именно технологии готовились тогда к выпуску. Я был слишком застенчив для того, чтобы во всем этом участвовать. Как и в средней школе, я тоже сидел там на заднем ряду.
В конце концов мне пришлось встать и продемонстрировать всем участникам два собранных мной настоящих компьютера. (Один из них впоследствии послужил основой конструкции Apple I.) И как только люди вокруг узнали о моих поистине впечатляющих достижениях, тут же возникли общие темы.
Начиная со средней школы и до основания компании Apple и даже позже схемы моих изобретений всегда помогали мне устанавливать комфортные взаимоотношения с людьми. Уверен, что каждому из нас хочется найти товарищей по интересам. Я их нашел благодаря собранным мной впечатляющим электронным устройствам и остроумным и эффектным розыгрышам.
Вероятнее всего, именно моя застенчивость побудила меня приняться за изучение журналов по электротехнике. Я мог читать про всякую электронную всячину, и мне не нужно было подходить к людям и задавать вопросы. Я был слишком застенчив даже для того, чтобы просто пойти в библиотеку и заказать там книгу о компьютерах, которая так и называлась – «Компьютеры». И в силу того что я был слишком застенчив и не мог учиться привычным для остальных способом, я случайно узнал то, что для меня стало самым важным в мире.
* * *
А потом все снова круто изменилось – во многом благодаря преподавателю электротехники, которого звали мистер Макколлум. Он очень сильно на меня повлиял.
Помимо всего прочего мистер Макколлум был очень интересным человеком. До того как стать учителем, он служил в армии, а это значило, что он мог рассказать много шуток, пусть даже старых и затасканных. Он легко находил общий язык со своими учениками. Имейте в виду, что в то время студенты на занятиях электротехники в основном были плохо успевающими. Электротехника была вроде как необязательным предметом. Там было всего несколько студентов, как и я, ходивших на дополнительные занятия по другим предметам. И не забывайте, что я был математическим всезнайкой. По окончании средней школы я получил награду по математике, а в старшей школе выиграл несколько ежегодных математических наград.
Если совместить математика и электротехника, то что мы получим? Правильно: инженера.
Мистер Макколлум обычно стоял перед всеми нами и производил расчеты с помощью большой желтой линейки на роликах. Он производил намного больше расчетов, чем мы делали на уроках химии, его занятия были более серьезными. Мистер Макколлум сам составил всю программу обучения. Он подготовил учебные материалы, составленные в логическом порядке – шаг за шагом, вверх по лестнице электротехнической науки. Сначала изучаешь что-то одно, например, резисторы, затем что-то посложнее; в результате одно накладывается на другое, и процесс идет быстрее. Этот способ был настолько эффективным, что впоследствии им же стал пользоваться я сам, когда начал вести компьютерные классы.
А еще у мистера Макколлума была потрясающая коллекция электронного оборудования, действительно передовая техника. Это было тестовое оборудование, которое мне было не по карману. Оно было намного лучше того, чем располагали в то время типичные лаборатории в колледжах. Мистер Макколлум проявил изобретательность, и средняя школа Хоумстед приняла решение оснастить классы доступными электротехническими наборами уже в первые несколько лет своего существования. Ученики мистера Макколлума изучали электротехнику и постепенно совершенствовали свои электротехнические наборы, чтобы с их помощью изучать новые явления. Таким образом, к старшим классам у нас уже были полные комплекты оборудования.
Ну вот, у нас тогда были горы оборудования. И как много удовольствия приносили нам эти занятия. Ты собираешь что-то – и оно работает. Не приходилось отвлекаться на поиски недостающих деталей или учиться исключительно методом проб и ошибок. Нам объясняли, в чем именно заключались наши ошибки, а это главный урок для электротехников. Нас всех время от времени било током. Один раз, когда я копался в телевизоре, меня ударило разрядом в 22 тысячи вольт. Тогда меня отбросило метра на полтора. Ух ты. Но это, клянусь вам, было привычным явлением для любителей электроники вроде меня. Мы выросли без свойственного большинству людей страха перед электричеством.
У меня сейчас есть рулетка-электрошокер – четыре человека засовывают в нее пальцы, и под аккомпанемент музыки и ярких огней она постепенно замедляется, пока одного из них не бьет током. Те, кто работает с электронным оборудованием, всегда соглашаются в нее сыграть, а программисты, как правило, трусят.
Мистер Макколлум позволял мне заниматься всем, чем я хотел. Он даже разрешал мне выходить на работу в одну компанию по пятницам, чтобы я не скучал. Эта фирма называлась Sylvania, она располагалась в Саннивейл, и там я научился программированию. Мистер Макколлум сказал мне, что я уже полностью освоил его программу, и мне остается только устраивать розыгрыши. У нас в школе компьютера не было. И тогда, на фирме, я впервые столкнулся с компьютером, на котором можно было писать программы – и с того момента обратного пути уже не было.
Я никогда не думал, что мне в жизни доведется столкнуться с компьютером. Я думал: «Боже мой! Компьютеры!» Я купил книжку по «Фортрану» и решил для себя: все, теперь я научусь программировать. Один инженер из компании Sylvania научил меня пользоваться клавишным перфоратором. Я помню, как набирал свою первую маленькую программу и как он помогал мне загрузить ее в компьютер и запустить.
Первая настоящая программа, которую я попробовал написать, – «Ход конем». Она перемещала коня по шахматной доске так, что он только единожды попадал на каждую из 64 клеток. Это не так просто сделать. Сначала я написал программу, ходившую на два хода вперед, затем плюс еще один, и так снова и снова – пока не перепробовал все возможные ходы. И если программа не могла сходить единожды на каждую клетку на доске и заходила в тупик, она возвращалась назад и пробовала новые комбинации. Она могла возвращаться назад столько раз, сколько требовалось для правильного ее завершения. Тот компьютер мог совершать миллион операций в секунду, поэтому я решил, что для него это будет плевым делом и поставленную задачу он решит быстро.
Так вот, сижу я, довольный своей программой, и думаю, что это только первый шаг и вскоре я решу все самые сложные задачи в мире. И что вы думаете? Компьютер не выдает никакого результата. Лампочки на машине немного помигали, а потом застыли в одном положении. Ничего не происходило. Мой товарищ, инженер этой компании, еще немного подождал, а потом сказал: «Ну что, похоже, имеет место бесконечный цикл». И он показал мне, что значит бесконечный цикл – когда программа замыкается и делает одни и те же действия по кругу бесконечно. (Просто к слову – Бесконечный цикл стало названием улицы, на которой сегодня располагается штаб-квартира компании Apple.) Как бы то ни было, на следующей неделе я пришел туда снова и написал программу, которая выводила на принтер все ходы. Помню, как я вытягивал эти распечатки из принтера и внимательно их изучал. Тогда я кое-что понял. Программа и правда работала так, как и должна была работать. Я все сделал правильно. Только на поиск решения ей требовалось 1025 лет. Наша Вселенная существует меньше.
Тогда я понял, что миллион циклов в секунду не решает всех задач. Одна лишь скорость – это не всегда решение проблемы. Многие понятные задачи в программировании нуждаются в хитроумном, хорошо продуманном подходе. Особенный метод, используемый в компьютерной программе, в совокупности с правилами, этапами и процедурами, кстати, и называется алгоритмом.
Что представляла собой программа «Ход конем»?
«Ход конем» – больше чем просто математическая задача, в которой надо было перемещать шахматную фигуру коня по доске. Это достаточно старая математическая задача, и люди столетиями пытались решить ее – безуспешно. Суть проблемы – переместить фигуру коня по доске 64 раза таким образом, чтобы она попадала на каждую клетку на доске только один раз.
Я нашел в Интернете два сайта для тех, кому это может быть интересно. По ссылке http://www.borderschess.org/KnightTour.htm находится программа Knight’s Tour Puzzle, которая работает в режиме онлайн. На другой странице, на том же сайте – http://www.borderschess.org/KTsimple.htm – есть полная инструкция, овладев которой, вы просто взорвете другим людям мозг! Удачи.