БЭСМ-4М
У меня опыт работы в ИТ 50 лет - мне 68!
Я тоже ничего специального не оканчивал, кроме курсов повышения квалификации. Хотя и имею "красный диплом" технического ВУЗа, но ни дня по специальности не работал. Извините, но ваш рассказ меня не вдохновил - так профессионалами не становятся! Но спорить предлагаю потом, сейчас хочу рассказать о своем пути в специальность.
Начался он наверное в 17 лет с посещения, в рамках школьной программы профориентации, соседнего с нашей школой НИИ металлургического профиля. У них там стояла ЭВМ, по моему НАИРИ-2, на ней трудились аж целых два сотрудника. Не думаю, что они делали на ней, что-то полезное для своего института. Уже не помню, что они нам такого за несколько минут рассказали и показали, но вышел я от них с твердой уверенностью, что хочу научиться работать на ЭВМ.
Мои родители, в момент окончания мной средней школы, трудились в Индии, и сама мысль о необходимости, взаимодействовать с властями в процессе действий по бронированию квартиры, в случае переезда на учебу в другой город, приводила меня в ужас.
Учился я не плохо, в атестате имел всего две четверки (которые на самом деле были слабенькими тройками) по физкультуре и английскому языку. Остальные оценки были пятерками, по физике и математике очень даже твердые. Кроме того я целый год ходил на курсы по подготовке к поступлению в ВУЗ и ничего не боялся. Поэтому решил поступать в местный машиностроительный институт на факультет электронной техники, не смотря на то, что там был конкурс выше, чем в мединститут.
Помню долго не мог определиться с выбором специальности, ни как не мог решить, какая из двух ближайших, по моему мнению, к моей будущей работе, поможет мне получить необходимые знания. Выбор делал между специальностями: "полупроводниковые приборы" и "конструирование и производство радиоаппаратуры". Что поделаешь других более близких, к намеченной мной цели, специальностей в этом вузе не было. Что в итоге выбрал уже не помню.
Но тут в мою карьеру в первый раз вмешался его Величество случай.
Дело в том, что у моей одноклассницы был старший брат, который работал в этом ВУЗе лаборантом и по какому-то совпадению он решил поступать на ту же специальность, только на вечерний. Она предложила мне потренироваться в сдаче экзаменов - мысль мне показалась здравой. Дальнейшее все происходило так: я приходил в институт примерно за час до начала экзамена; брат со своим коллегой (тоже лаборантом) встречали меня и запирали в какой-то аудитории; я довольно долго ждал; потом приходил друг и приносил задание; я его делал, а друг приходил снова и относил результат экзаменуемому; освобождали меня по окончанию экзамена.
Так я сдал за брата одноклассницы три экзамена: математику письменно, физику и математику устно. Экзамены я сдал так: на отлично - письменную математику, а устные на четыре и пять ( но тут моей вины не было - на дополнительные вопросы отвечал сам испытуемый). Задания мне показались легкими, я все знал и справился с ними быстро, так что большую часть времени просто сидел в заперти.
Быстро я справился с заданием и на своем собственном письменном экзамене по математике. Черновиками я не пользовался и сдал результат, где-то через полчаса, но допустил досадную описку, пропустил коэффициент в ответе к задаче. В общем я получил за письменную математику три. И хотя устные экзамены (математику и физику) я сдал на отлично шансов на поступления на эту специальность у меня не осталось никаких!
Задним числом, рассуждая о том, как могла бы сложиться моя трудовая карьера поступи я на выбранную специальность, с уверенностью могу сказать, что программистом тогда бы я точно не стал. Слишком далеки эти специальности были от программирования, учиться на них действительно было сложно, да и я был слишком примерным учеником. Достаточно сказать, что в первом семестре я выполнил абсолютно все домашние задания по аналитической геометрии, хотя задавали нам их десятками страниц и впервые из всех обучавшихся у этого преподавателя студентов за последние десять лет, получил пятерку за практические занятия. Вот таким я парнем был:-). К стати именно этот преподаватель поставил мне тройку на вступительных экзаменах за письменную математику. Как он потом говорил, что проверка письменных экзаменационных работ это рутина и настоящая потогонная система. Экзамены простые блестнуть интеллектом там не где, да там его и не оценивают. Сравнил ответы, проверил черновики, за нерешенную задачу полагается три, как и за два нерешенных примера, за один нерешенный пример - четыре. Каждому преподавателю надо проверить сотни работ за ограниченное время.
На моё счастье в это время на другую специальность в этом институте образовался недобор и мне предложили пойти туда учиться.
Альтернативой было пойти служить в армию, по призыву, но для меня это было настоящей катастрофой. Как меня пугали родители и знакомые за время службы забудешь все, чему научился в школе, и даже если и поступишь туда куда хочешь, то не сможешь там учиться. А тут оставался хоть какой-то шанс перейти на выбранную специальность на старших курсах - в общем я согласился. Первые три курса до специализации - на всех специальностях одинаковые, по крайней мере так утверждали мои соседи и знакомые. Но в моем случае все оказалось совсем не так.
Специальность на которую я тогда поступил была новой для высшей школы нашей страны, чуть ли не впервые объявившейся на её просторах именно в нашем ВУЗе. Программа была не сложившейся, чтение спецпредметов начиналось уже с первых курсов. Тогда для получения высшего образования студент был просто обязан затратить на учебу определенное количество часов, не зависимо от специальности. Спец дисциплин на кафедре было мало и они были в основном какие-то не очень серьезные в общем и целом на высшее образование не тянули. Да и нужное количество часов по ним вычитать не удавалось. Поэтому приняли соломоново решение расширить курс математики и базовых обще инженерных предметов (строительной и теоретической механики, теории машин и механизмов, сопромата и т.д.) благо такой опыт на обще институтских кафедрах уже был и такие курсы уже не один год читались для других кафедр. Рассудили мудро, что лишним это не будет. Эта специальность называлась "Промышленный транспорт". И вышло так, что помимо других предметов, в первом семестре мне пришлось изучать вычислительную математику и геодезию.
На вычислительной математике мы учились программировать на ЭВМ "Проминь", а геодезия на практике довольно нудная наука, связанная на практике со множеством рутинных вычислений, в которых очень важно не запутаться и не ошибиться. Кроме того в этом же семестре у нас по геодезии был курсовик, в котором мы должны были потренироваться делать подобные расчеты. Из этого и родилась идея соединить эти две области знаний. Мне согласился составить компанию мой одногруппник и работа закипела. Нам повезло, что в это время в нашем институте уже была машина "МИР", а буквально в год нашего поступления в ВУЗ наш институт получил новую ЭВМ "БЭСМ-4М" и все штатные сотрудники ВЦ работали на этих двух машинах, а ЭВМ "Проминь-2" оказалась в нашем полном распоряжении, правда только тогда, когда она не использовалась в учебном процессе. Мы жили рядом друг с другом и поэтому уезжали домой вместе на последнем троллейбусе. Я писал программу, а он изучал геодезию и был на подхвате благо там такой работы было много: заносить данные в память с клавиатуры, набирать программу штекерами в программном поле, 256 команд, по три штекера на команду. Отладка программ на ЭВМ "Проминь-2" была простой. ЭВМ сразу показывала команду на которой произошел сбой, вся порграмма состояло всего из 256 команд и вся была перед глазами (набранная в командном поле), память тоже была маленькая, поэтому проверить все было очень просто. Дело пошло на удивление быстро и дня за три мы с этой задачей справились. Все работало. Мы набили программу на металлические карты и добавили описание программы и инструкцию по работе с ней в методичку к курсовому по геодезии. За курсовой нам поставили по пятерке, а геодезия стала первым предметом в нашем ВУЗе курсовой по которому выполняли с применением ЭВМ. Мы ходили героями!
Летом у нас была практика по Геодезии. Практику нам зачли автоматом. Лешик, так звали моего напарника, помогал делать расчеты на ЭВМ всему курсу, а заодно вечерникам и заочникам.
А я твердо решил, следующий наш курсовой делать тоже на ЭВМ. Назывался он по моему "Расчет подвижного состава" или "Движение состава по заданному маршруту" возможно и по другому сейчас уже не помню. О сложности этого курсового на специальности ходили легенды, он требовал применения методов числового диференцирования и лично мне внушал уважение к уровню развития царских железных дорог, где такие расчеты были в порядке вещей.
Суть была в том, что надо было смоделировать движение состава из N вагонов разного веса, по заранее определенному маршруту большой протяженности и определенного профиля, построить график изменения скорости движения на всех участках маршрута, рассчитать тормозной путь состава при экстренном торможении на заданном участке, и вообще рассчитать кучу параметров движения на всех участках маршрута, вроде допустимой скорости на участке, времени в пути и тому подобного. В общем там было много нюансов, потому, что допустимую скорость надо было соблюдать, при её превышении можно было на каком-то из очередных участков устроить аварию и сойти с рельс, а если ехать на данном участке со скоростью ниже допустимой можно было не вытянуть состав на одном из очередных участков с затяжным подъемом и сорвать график движения. Все параметры оптимального движения определялись путем подбора и многократного повторения расчета.
Проблема была в том, что эта задача на ЭВМ "Проминь-2" уже не помещалась, но это меня не смущало. Я решил изучить язык "Алгол-60" и решить эту задачу на ЭВМ "БЭСМ-4М"! Лешик, опять меня в моем начинании поддержал. Курсовик нам предстояло делать в третьем семестре. Работать решили по старой схеме: он изучает теорию, а также поддерживает актуальность колоды перфокарт. А я пишу программу.
Но что-то пошло не так, мы дневали и ночевали на ВЦ, а программа ни как не хотела работать. Прошел третий семестр, заканчивался четвертый, над нами висел не сданный курсовой и когда мы его сделаем было совершенно не понятно. В этих условиях Лешику пришла мысль сходить на прием к декану. Тот очень удивился, почему применение ЭВМ, которое должно ускорять выполняемую работу, в нашем конкретном случае привело к такому странному результату. Пришлось объяснить, он нас внимательно выслушал и спросил, что в результате нашей бурной деятельности у нас реально есть на руках. В нашем активе была довольно большая колода перфокарт и киллометры накопившихся распечаток нашей не работающей программы.
Глянув на наши результаты, он спросил сколько листов обычно занимает этот курсовик при ручных расчетах. Лешик ответил, что обычно 40 и примерно 3 метра - график. Он сказал сброшюруйте по 60, сделайте обложку, как у курсовика и я подпишу. Преподавателю передайте, что пусть принимает у вас курсовую, а эта пояснительная записка ни чем не хуже любой другой и при наличии соответствующих знаний заслуживает самой высокой оценки.
Естественно мы получили пятерки потому, что знали и понимали эти расчеты лучше самого преподавателя. Но преподаватель взял с нас слово, что мы доведем начатую работу до конца.
Лешик сказал мне, что он устал, ему все надоело и он завтра же уезжает отдыхать на море! Он уехал, а программа на следующий день заработала!
Тут надо сказать, что весь не многочисленный состав программистов ВЦ, особенно его женская часть, за нас очень переживал, но помочь нам ни чем не мог, так как программа была очень большой и объяснение того, как она должна работать требовало не только специальной теоретической подготовки, но и просто много времени, а у всех была своя работа. В общем в итоге я был очень счастлив и все сочувствующие тоже!
Наш преподаватель был счастливее даже меня, он без конца менял задания, а я приносил ему готовые расчеты. Он все перепроверял в ручную, программа работала без ошибок! В том числе печатала и график движения, что его особенно умиляло.
Мы вместе внесли изменения в его методичку и он самостоятельно выполнил по ней расчет.
Я на этом не успокоился и в пятом семестре достаточно быстро написал для очередного курсовика программу на Фортране. Но это уже не доставило мне такого удовольствия да и интерес пропал, во первых потому, что Фортран в плане программирования не сильно отличается от Алгола, а во вторых потому, что курсовики с интересными расчетами на кафедре уже закончились.
На моё счастье институт получил новую ЭВМ "ЕС-1022" первое время на ней никто из кадровых сотрудников работать не мог. И мы изучали ее совместно с начальником ВЦ, который был всего лишь лет на 7-8 старше меня. Я подтянул английский и научился свободно читать оригинальную документацию по ДОС. Настольными книгами у меня стали Джермейн и техническая документация по ДОС. Я досконально изучил принципы работы ЕС ЭВМ, выучил язык Ассемблера для этой машины, научился генерировать операционную систему.
Летом вернулись из Индии мои родители и я после третьего курса, предпринял попытку перевестись в МФТИ. Летом на каникулах, я приехал в Долгопрудный, объяснил чего я хочу и даже прошел собеседование. Осталось только принести справку о состоянии здоровья из институтского медпункта, но её то как раз мне и не дали. У меня близорукость минус 6 и врач была уверена, что учиться у них очень тяжело и я окончательно испорчу себе зрение.
В общем меня опять не взяли, как я теперь считаю, мне в очередной раз крупно повезло. Потому, что еще не известно чему бы, и как, они меня научили и в какую дыру бы распределили, а так я вернулся в свой институт, где я уже чего-то достиг! К этому времени я параллельно с учебой работал лаборантом на ВЦ, выучил язык PL-1 и занимался тем, что консультировал всех желающих по ЕС ЭВМ и искал ошибки в их программах на всех языках для ЕС ЭВМ.
Так я провел два года, параллельно завершая учебу в ВУЗе. Считаю, что накопил хороший опыт, узнал: как другие люди пишут программы и какие при этом допускают ошибки.
Основной вывод из этого опыта: как бы хорошо ты не написал программу ее всегда можно переписать лучше!
Самое время сказать несколько слов о чтении. Читать я любил всегда, читал много и быстро. У меня была хорошая память. В период подготовки к экзаменам я читал и понимал не меньше 400 страниц технического текста в сутки. В детстве по мимо чтения, я любил, перед сном фантазировать на тему своих приключений в мире литературных героев, фантазии продолжались месяцами и все события я в них помнил и постоянно обогащал и трансформировал под сюжеты вновь прочитанных книг.
Теперь о работе с технической документацией по ОС, дело в том, что такая документация предмет коллективного творчества, что-то похожее на Библию, кто-то из авторов досконально знает детали частного, другие видят проблему в целом! Между этими двумя крайностями масса лакун и недосказаностей. Поэтому эту техническую литературу нельзя прочесть и иузучить один раз. С ней, как и с Библией, надо постоянно работать, перечитывая и переосмысливая некоторые избранные места, при возникновении той или иной проблемы.
Тут в мою судьбу опять вмешался Случай, в нашем городе в одном отраслевом НИИ при НПО Министерства промышленности связи, захотели первыми в стране решить довольно приоритетную задачу - полностью автоматизировать весь цикл производства печатных плат. Министерство их поддержало, и целевым способом выделило средства и штаты. Институт создал соответствующий отдел и вот-вот должен был получить ЕС-1033. Теперь они искали программистов исполнителей для своего проекта. Наш ВУЗ был для этого предприятия профильным и базовым, поэтому они обратились именно к нам - начальник ВЦ по рекомендовал меня. Я согласился. Коллектив был не большой, но уже сложившийся. Начальник в прошлом радио-инженер с какими то выдающимися заслугами в области конструирования радиостанций для СА. Основной костяк - 4 человека пришел с предриятия, которое занималось производством микрокристаллов все они там были связанны с САПРом и при переходе все получили повышения, как правило на ступеньку. Очевидно на прошлом месте их ценили, как специалистов - других людей в наш отдел просто не брали. Один из них в новом отделе стал начальником сектора трое других ведущими инженерами. Один из ведущих - занимался разработкой перспективных алгоритмов, другой руководил разработкой программного обеспечения, чем занимался третий уже не помню (вполне возможно, что должен был эксплуатировать еще не созданный программный комплекс). Основным идеологом разработки был старший инженер наверное лучший молодой специалист в этой области в нашем НИИ. На тот момент в отделе уже была ЭВМ "СМ-4" и на ней трудилось по моему два старших инженера. Она входила в технологический цикл будущей системы автоматизации и управляла координатографом, который использовался для изготовления фотошаблонов проектируемых печатных плат. Кроме того в группе разработки ПО было две барышни-инженера, один парень старший инженер и один парень техник (возможно старший техник). Еще была секретарша начальника отдела и пара девушек операторов набивавших перфокарты. Вот пожалуй весь коллектив в который мне повезло влиться! Коллектив был очень молодым средний возраст где-то лет 25. Вся разработка программного обеспечения велась на ассемблере ЕС ЭВМ.
В отдел меня взяли инженером на оклад 140 рублей с учетом того, что там еще практически регулярно платили квартальную премию в 30% от оклада, для молодого специалиста это было совсем неплохо. Поручили мне разрабатывать три несложных программы по моему ввода-вывода. В коллективе царил фанатизм в плане программирования на ассемблере ( сказать по правде по другому решить задачу, за которую мы взялись, было просто нельзя. По сложности она находилась на пределе возможностей доступной нам в то время ВТ). Все стремились к получению новых знаний и гордились работой по разработке программного обеспечения САПР, высоко ценили лидирующее положение колектива на острие технического прогресса в отрасли. Отдел проплатил на этот год два места на курсах повышения квалификации по программированию при МЭСИ, курсы были четырехмесячные, их в прошлом году уже прошла одна из наших барышень и осталась очень довольна. Все хотели на них попасть, я в том числе (так, как всегда помнил, что так и не получил профильного образования). Было очевидно, что туда пошлют самых лучших из нас. Но стать самым лучшим в таком коллективе было очень не просто.
В инициативном порядке я выучил Ассемблер "СМ-4" и даже написал на нем, небольшую программу для нового комплекса. Под влиянием ведущего инженера, руководившего разработкой программного обеспечения, творчески прочел книгу Ф.Брукса "Мифический человеко - месяц". И очень стремился завершить все порученные мне программы, стараясь освободиться к началу курсов повышения квалификации.
Но тут опять вмешался Случай, дело в том, что в состав нашего НПО входил еще и завод, а наш специализированный отдел в структуре нашего института назывался ВЦ. На заводе тоже был ВЦ. Как-то случилось так, что зарплату в нашем НПО до сих пор считали в ручную (возможно это делала машиносчетная станция у которой возникли какие-то проблемы) и это каким-то образом коснулось директора НПО. В общем Вердикт был таков поручить разработку программы автоматизации расчета зарплаты каждому из ВЦ, срок два месяца. Победителю обещали кучу коврижек, проигравшему заслуженное наказание. Если сказать, что в нашем отделе этой работой не хотел заниматься никто - это значит сильно приуменьшить возникшие сложности!
Начальник отдела вышел из возникшей ситуации довольно традиционного, он нанял лучшено специалиста, который был в пределах его горизонта видимости. Пришла она к нам, на должность начальника сектора АСУ, которой специально для нее и создали. До этого была ведущим инженером по эксплуатации программного комплекса расчета зарплаты на том предприятии откуда пришла и вся "наша великолепная четверка". Было ей лет 30, начинала она с того, что 5 лет назад участвовала в разработке программного комплекса, который она в последствии и эксплуатировала, но работал он на Минск-32. А в нашем НПО такой машины не было. Центральной машиной для разрабатываемого нами комплекса планировалось сделать "ЕС-1033", но ее мы пока не получили. Разработку мы вели на арендуемых машинах серии ЕС.
В общем главного козла отпущения уже нашли, но проблема не рассосалась:-).
Тогда возглавить разработку ПО комплекса программ "Расчет зарплаты" - поручили мне. Думаю, что основным аргументом в пользу моего назначения было, то что все порученные мне на первом этапе программы я уже практически сделал, а глубоко в основной проект еще не погрузился и специальных знаний не приобрел. От временного моего перехода на другую тему основной проект ни как не страдал, а желаемый результат мог получиться, потому, что я уже доказал, что люблю и умею программировать.
Мне дали в помошники парнишку техника. Он работал в отделе уже больше года, был сообразительным и очень гордился тем, что пишет программы (пускай пока и простые), а не набивает, как его товарищи по выпуску из техникума перфокарты.
Нам с помошником в случае успеха обещали следущие должности и премию в два оклада. Мы с ним к "пряникам" от себя добавили поездку на курсы повышения квалификации и ни чем не ограниченный доступ к компьютеру на период разработки.
Начальник сектора хорошо знала, чего она хочет получить в конечном итоге и как это должно работать. Я с ней спорить не стал, со всем согласился, внес только несколько деловых предложений по улучшению процесса ввода и контроля исходных данных с прицелом на дальнейшее использования для подготовки данных дисплейной станции, получение, которой планировалось в составе нашей ЕС-1033. Мои предложения она утвердила. Я разбил комплекс на программные модули и разделил работу между собой и помошником. В общем дело пошло, справились мы где-то недель за пять. До начала эксплуатации успели подготовить базы и справочники данных. А также протестировали работоспособность нашего комплекса на расчете зарплаты прошлого месяца. Мы просчитали реальную зарплату, устранили все замечания образовавшиеся к нашим программам в основном проекте, помоему даже успели поприсутствовать при расчете зарплаты, следующего месяца. Все работало корректно, удобно и к тому же в десятки раз быстрее по сравнению с программой на МИНСК-32. Начальник сектора была в восторге. А мы отправились учится в Москву на четыре месяца. Учиться мне было легко - курсы назывались "Программирование для ЕС ЭВМ". Основную часть программы составляло изучение Ассемблера. Учили также PL-1, Фортран, Кобол, РПГ и язык управления заданиями ОС ЕС. Большую часть программы я уже знал и использовал на практике. Исключения составляли только Кобол и РПГ, которых я до этого не изучал. При разработке Коплекса программ расчета зарплаты, чисто теоретически, мог пригодится язык РПГ, но я сильно сомневаюсь, что в этом случае конечный результат был бы лучше того, что мы сделали. В Москве на этих курсах я познакомился со своей будущей женой. Курсы я закончил с оценкой пять по всем предметам.
Пока я учился в Москве, начальник сектора АСУ время даром не теряла. Программа работала хорошо, она привела со своей прежней работы девушку на должность старшего техника и та вполне справлялась с её эксплуатацией. А сама занялась поиском новой работы, которая бы создала условия для развития её сектора. Я все время после окончания работы над комплексом программы "Расчет зарплаты" числился в её секторе старшим инженером с окладом в 150 рублей, так как в нашем секторе все подобные вакансии уже были заняты.
Представьте себе за время моей учебы на курсах повышения квалификации она такую работу нашла.
На наше с ней счастье в то время в Ленинграде ведущее институт нашего министерства ВНИИТ, подрядился делать АСУ уровня министерства, тогда уже был какой-то хозрасчет и разработка тянула на сумму около десяти миллионов рублей, половину из этой суммы они выделили подрядчикам и заплатили им аванс. Разработка велась на ассемблере, потому, что по объему расчетов - находилась на пределе возможностей ВТ того времени. В ленинградском институте под эту тему был создан комплекс из трех отделов. Который оснастили двумя ЕС-1033 с двумя дисплейными станциями. В самый не подходящий момент человек, который руководил этой разработкой с самого начала (между прочим кандидат технических наук и начальник одного из отделов) решил неожиданно уволиться. Институт оказался в сложном положении.
Поэтому, сразу же по возвращению с курсов, я вместе с начальником сектора АСУ отправился в Ленинград. Задача пугала своими масштабами. Представлялось логичным привлечь в это дело своего проверенного соратника. Но этого было мало людей было надо в несколько раз больше. Но, город меня просто очаровал и влюбил в себя на всегда. Мы сошлись на том, что я получу до начала работ очередную должность, мой соратник любое доступное для него увеличение оклада (надеюсь вы помните, что он работал инженером с дипломом техника), вся моя группа человек в 7 получит министерскую надбавку в 50% к окладу (это гарантировал начальник комплекса ленинградского института), проблему с проживанием бралась решить начальник нашего сектора АСУ.
Ленинградский институт подписывает с нашим институтом договор на доводку и отладку программной системы стоимостью в половину не израсходованного остатка средств (что-то порядка 2 млн. 600 тыс рублей) и перечислит аванс. Сумма по тем временам была большой и в нашем институте нравилась буквально всему руководству снизу доверху. К тому же участие в этой работе выводило наше предприятие в лидеры по теме АСУ в отрасли.
Так, что вроде все как-то устроилось, но людей надо было откуда-то срочно брать. Из двух якобы программистких отделов ленинградского комплекса не подошел ни кто! Максимум на что они были способны это рассказать, что именно задумывалось их бывшим начальником и предоставить проектную документацию, которая была очень далека от реального положения дел.