В жаркое лето перед выпускным классом в школе, на летней отработке, мы помогали переоборудовать кабинет директора под компьютерный класс. Шефы нашей школы, моторостроительный завод (авиационные двигатели), подарил нам ЭВМ СМ-4 работающую под операционной системой Демос.
В нашей школе открывался первый в городе класс информатики.
Тогда я еще не знал как это поможет мне в будущем и изменит мою жизнь.
СМ-4. Справка
СМ-4 — 16-разрядная, система команд DEC PDP-11, включая EIS и FIS, общая шина (ОШ СМ), процессор СМ-4П, производительность — до 800 тыс. оп/с, полупроводниковое ОЗУ до 124 К слов, диспетчер памяти. Выпускалась с 1979 года в СССР, Болгарии, Венгрии.
ДЕМОС (Диалоговая единая мобильная операционная система) — советская операционная система (ОС), созданная на основе ОС BSD.
В 1985 году была выпущена версия 2.0 ОС Демос. Проект закрыт в начале 1990-х годов. Разработчики ДЕМОС были награждены в 1988 году премией Совета министров СССР по науке и технике.
В двух последних классах школы мы занимались в УПК (учебно производственный комбинат).
В течение первого года, наш класс проходил обучение специальности радиомонтажника. “Пайка должна быть скелетной, обтекаемой…” - в общем, до сих пор паяю, дома есть простая паяльная станция и несколько паяльников, от 100 ваттного (последний раз паял им 15 Ач ячейки LiFePO4 аккумулятора), до портативных USB и газового паяльника. Еще есть любимый пинцет с номером, стащенный в УПК. Каюсь, не удержался… был такой грех, до сих пор стыдно, но «моя прелесть» меня поработила — не мог я оставить свой пинцет. После обучения у меня с моим корешем Марком начались визиты на помойки разных НИИ, откуда мы доставали запчасти (они стоили дорого) и собирали наборы «что бы из этого собрать?» - итогом наших изысканий было создание блока питания с защитой от короткого замыкания (схема опубликована в журнале Радио), которым мы метили металлические предметы (что-то вроде маломощной точечной сварки). В школе посещали радио кружок которые вели два студента, на нем они собирали Радио 86РК и помогали понять схемотехнику (азы).
УПК. Справка
Учебно-производственные комбинаты появились в СССР в середине 70-х годов XX века. Постановление об их организации было принято Советом Министров СССР в 1974 году[1].
Согласно «Положению об организации общественно полезного, производительного труда учащихся общеобразовательных школ»[3] учащиеся старших классов общеобразовательных школ были обязаны проходить профессиональное обучение (в размере четырёх часов в неделю) и заниматься общественно полезным трудом (до четырёх часов в неделю). Обеспечением этого процесса и занимались учебно-производственные комбинаты. Для этого один день в неделю старшеклассники занимались не в школе, а проходили обучение в УПК.
По окончании обучения ученики сдавали квалификационные экзамены и получали свидетельство об овладении трудовой специальностью.
Утро понедельника
Очередное занятие в УПК не предвещало ничего плохого. Нас завели в учебный класс, и наш преподаватель, Михаил Давидович, начал первое занятие.
Если коротко, то нам сообщили что мы будем изучать программирование.
Показали компьютер (на самом деле, терминал — компьютер был за стенкой), что такое программа, как набирать ее текст и компилировать. Объяснили что это на самом деле, терминал, а компьютер находится за стенкой. Но нам повезло – в нашей школе открывается компьютерный класс, и нам не придется ездить в УПК.
Затем был задан вопрос, все ли мы поняли. Мы сомнамбулически кивнули «Да». Слишком сильным был культурный шок. Это был первый раз в жизни когда я увидел компьютер вживую.
Михаил Давидович махнул рукой и добавил: вы учитесь в математическом классе и должны осваивать нормальные языки программирования, а не всякую чепуху, как некоторые…. Бейсик изучают.
Нет, вы будете программировать на нормальном языке – С! Этот язык вам пригодится в будущем (как же он был прав).
Дальше было описание языка С на доске, принципы работы с памятью, указатели, а итогом стала программа “Hello World!” (классика) и, на десерт, дано первое домашнее задание – улучшить к следующему занятию эту программу, добавив в ее функционал что угодно.
После первого занятия, я ощущал себя двойственно – слепым котенком, которого бросили в ведро с холодной водой и пациентом психушки, которого обучают плавать в сухом бассейне. Остальные ученики не сильно от меня отличались - сидели как ударенные пыльным мешком по голове. Учебных материалов у нас не было – что записал и запомнил на занятии,с тем и \живи пиши программу. Смартфонов тогда не было, телефоны были не у всех — мне приходилось бегать на остановку зимними вечерами и пытаться что то разобрать в промороженной трубке покрытой инеем. А морозы у нас бывали до минус 40 и школу при этом не закрывали (вот такая она была особенная).
Моя борьба
Дальше начался кошмар. Примерно месяца три-четыре мы пытались писать программы ничего не зная о языке С. Процесс напоминал reverse engineering записей на языке Майя.
Как то раз, мы провели мозговой штурм с моими корешами и решили – нужно сломать ЭВМ. В общем, мы встали на путь луддизма. Улучив момент, загнали металлическую ложку между плат – она хорошо расперла платы, а так как засунули ее ручкой вперед, достать ее было трудно. Не помогло.
Загоняли иголки в кабели ЭВМ. Так как устройство ЭВМ понимали слабо, один раз воткнули иглу по ошибке в шлейф к принтеру. Не помогло.
Апофеозом стало создание живых багов – брали тараканов, посыпали их алюминиевой и бронзовой пудрой и пускали гулять в машинный зал. Не помогло, возможно тараканы теряли ориентацию по пути к теплым местам в ЭВМ.
Засветка мониторов была признана как мало реализуемая без раскрытия.
Нам “светила” двойка в выпускном классе, и ее призрак уже обрел плоть.
Принятие б̶о̶м̶б̶ы̶ программирования
Проскочив каким то чудом “между струйками дождя” первые полгода, я решил воспользоваться принципом – если не можешь бороться, то нужно возглавить и подошел к Михаилу Давидовичу с вопросом: “Михаил Давидович, а у вас случайно не завалялась какая нибудь документация по программированию? Нет, спасибо, описание Демос для меня рановато читать, может быть описание языка С?”
В ответ мне дали небольшую, размера А5, тоненькую брошюрку листов на 20, с описанием языка С.
И открылась мне Истина, и написал я первую программу решения квадратичного уравнения.
Михаил Давидович подошел, посмотрел и сказал “ну наконец то, начал программировать, а раз ты такой умный , вот тебе еще четверо, будешь их натаскивать”.
СМ у нас была всего с четырьмя терминалами и памяти было маловато – если кто-то компилировал программу, то бывало что остальные не могли редактировать.
Позже такой стиль работы назовут парным программированием, у нас было программирование квартетом.
Счастливый конец, а на самом деле - начало
Понемногу мы втянулись и дошли до написания текстовых игрушек ходилок (полноценной графики на СМ ЭВМ не было).
Несмотря на шероховатости процесса обучения, я очень благодарен Михаилу Давидовичу и своей школе - полученный опыт пригодился в ВУЗе. Там, изучая Паскаль без компьютера (машинное время стоило дорого и вначале языку обучали без компьютера и только после сдачи экзамена допускались к работе на ПК), я допустил ошибку в коде, использовав сишный синтаксис (задумался). Так что по программированию в моем дипломе стоит тройка... Впрочем это не помешало моей работе программистом.