Читать книгу «ВОСХОД программиста» онлайн полностью📖 — Александра Земцова — MyBook.


Тем не менее встреча оказалась не только короткой, но и очень неприятной для меня. Программист, даже не дослушав, безапелляционно заявил, что его программа работает правильно, а нам нужно разбираться со своей «железкой». И предложив почитать Джермейна, он решительно закончил аудиенцию.

Впоследствии, уже став программистом, в библиотеке, на одном из стендов нашего НИИ я наткнулся на две функции (макрокоманды) с характерным названием Take и Place. Здесь нужно пояснить, что описанный инцидент с программистом был вызван следующей проблемой: в то время основным устройством памяти были дисковые устройства, сначала диски емкостью 5 Мб и 7,25 Мб, затем 29 Мб, ну и так далее. Каждое такое устройство представляло собой все тот же шкаф с верхней открывающейся крышкой, снабженной пресловутой кнопкой-микровыключателем. Для установки и снятия самого диска необходимо было выдать разрешение на вскрытие устройства. Так, по сути верно, были названы эти функции – первая для снятия диска, вторая для установки. Именно при выдаче этих разрешений происходила ошибка. Разрешение выдавалось, но при последующем открытии верхней крышки устройства, М-24 фиксировал НСД, то есть несанкционированное действие.

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

Спустя несколько месяцев начались испытания первой очереди системы, которую разрабатывал (увы, без меня) мой НИИ по заказу самого Совета Министров СССР. Моя работа постепенно перешла в русло составления различных актов и протоколов испытаний, передаче их в секретное машбюро и получении их оттуда, а также в сборе подписей.

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

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

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

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

Еще один забавный и вместе с тем грустный момент. Заказчиком разрабатываемой системы был Совет Министров СССР, поэтому в нашем НИИ действовал строгий режим и пропускная система. Практически все документы были секретными. На входе у нас стояли вертушки с кабинами. Внутри кабин в ячейках лежали пропуска сотрудников. Только руководители отделов и выше имели пропуска, которые носили с собой. Остальные при входе должны были дернуть свою кнопку на кабине, после чего пропуск выпадал охраннику, который, сличив фотографию с оригиналом, открывал вертушку, пропуская таким образом сотрудника внутрь.

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

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

Не скажу, что я тоже проводил там по часу, но с какого-то момента стал замечать отсутствие коллег на рабочих местах. Сначала меня это просто удивляло (видимо, такая разновидность инфантилизма: я полагал, что люди приходят на работу для того, чтобы работать), но затем все чаще стало возникать ощущение неудовлетворенности. Было очевидно, что то, чем я занимаюсь здесь, не может быть моей работой на будущее.

Рядом со мной трудились сотрудники подразделения программных средств защиты. В первый год работы то, чем они занимались, было для меня тайной, но все более и более привлекательной. Возникала даже зависть. Думалось: а смогу ли я стать разработчиком-программистом?

* * *

Надо сказать, что несмотря на специальность «Системы управления летательными аппаратами», в МАИ я неплохо ознакомился с компьютерами, или, как тогда говорили, ЭВМ.

МАИ вообще серьезный вуз, а мой факультет, в свою очередь, считался очень весомым в МАИ. Состав предметов был самым обширным. Чему нас только не учили! Наряду с сопроматом, теоретической механикой, аэродинамикой мы изучали гироскопы, электрические машины, технологию металлов и многое другое. Кроме того, был годовой курс ВУДД, что означало «Вычислительные устройства дискретного действия», а также курс ВУНД – «Вычислительные устройства непрерывного действия». Последний был посвящен аналоговым вычислительным машинам, а ВУДД – цифровым.

Поскольку цифровые ЭВМ мы изучали целый год, курс был очень насыщенным. В нем были и устройство ЭВМ, и уже дисковая память (1974–1975), и языки программирования, в частности ALGOL, который мне, помнится, почему-то «не зашел». Были интересные лабораторные и курсовые, например лабораторная по ЭВМ «Наири». По поводу «Наири» я тогда еще подумал: какая же это ЭВМ? Просто мощный калькулятор… Но вид у нее был богатый – с уступами и футуристическим пультом управления.



Что-то мы на ней даже считали, но что именно, точно не скажу. Как такового программирования на ней не было. Нужно было лишь вводить математические формулы, по которым она выполняла расчет.

Помню курсовую работу на машине «Мир».

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



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

Гораздо более значимым было знакомство с компьютерами в ФИАН – Физическом институте Академии наук.

На 4-м курсе я получил предложение поучаствовать в НИРС (научно-исследовательская работа студентов) в этом институте. Тема – «Система управления физическим экспериментом» в лаборатории самого академика Прохорова, нобелевского лауреата.

Лаборатория занимала целое новенькое многоэтажное здание на территории ФИАН между Ленинским проспектом и улицей Вавилова. На первой встрече выяснилось, что в лаборатории был сектор обеспечения физического эксперимента, а в секторе – группа, которая и занималась системой управления физическим экспериментом. Мы беседовали с руководителем этой группы, который рассказал о системе. Оказалось, что систему составляла ЭВМ и периферийные устройства, одним из которых был графопостроитель, которым мне и предстояло заниматься.

Вскоре выяснилось, что прежде чем участвовать в работе, мы должны пройти тестирование на пригодность. Для этого нам были выданы технические задачи, в частности по двоичной системе исчисления и логике, решение которых мы должны были принести через пару дней. Тестирование принимал молодой инженер, выпускник МФТИ и, как оказалось, автор схемы графопостроителя.

После того как продемонстрировали графопостроитель в работе, был представлен неработающий экземпляр. Нам нужно было найти неисправность.

Никогда ранее не видел я такого оборудования! Это были осциллографы, к тому же производства США. С помощью этого осциллографа, подключая его к микросхемам и другим деталям на плате графопостроителя, анализировал его работу. Работал в упоении! А как же иначе? Ведь я занимался тем, о чем читал лишь в фантастических романах! Дух в лаборатории тоже был удивительный. Абсолютное уважение к академику Прохорову, хорошие и добрые шутки, энтузиазм – все это, конечно, не могло не нравиться. А еще рассказывали, что Прохоров тратил средства Нобелевской премии на закупку оборудования.

И вот однажды я, наконец, впервые воочию увидел современный зарубежный компьютер – это был новейший американский миникомпьютер NOVA.



Думаю, тогда, в 1975-м, это был единственный экземпляр в СССР.

* * *

Оказалось, что тот самый молодой инженер, автор графопостроителя, получив этот компьютер в свое распоряжение, с увлечением занялся программированием. У NOVA в комплекте имелся загружаемый или встроенный компилятор BASIC, на котором была немедленно написана программа вычисления биоритмов. Я был допрошен на предмет даты рождения и получил личную распечатку.

Меня к компьютеру, естественно, не допускали: охотников хватало. Да и особого желания не было – я с удовольствием занимался графопостроителем. Однако такая «игрушка», как NOVA, не могла не запомниться: элегантная консоль с самым настоящим дисплеем… Фантастика! Ничего подобного я раньше не видел.

Много позже, уже в НИИ «Восход» в качестве устройств ввода мы использовали консоль – электрическую пишущую машинку – и устройство