"Мы все учились понемногу
Чему-нибудь и как-нибудь"
Ты помнишь как все начиналось?
Случилось чудо, в 11 классе средней школы ввели урок Информатика и вычислительная техника. Учитель нам рассказывала о алгоритмических языках программирования, но практические занятия были на калькуляторах Электроника МК-61. Уникальная техника, сложить 2+2 на нем было не так просто, для этого использовался стек, из-за этого неподготовленный пользователь просто не мог сделать столь простую операцию.
Калькулятор был программируемый и имел 108 ячеек памяти для программы. Постоянного запоминающего устройства не было, поэтому при отключении питания, программа стиралась и при включении ее приходилось заново набирать.
О графическом дисплее можно было только мечтать, но несмотря на это были игры, которые публиковались в журнале «Наука и техника» в виде машинных кодов. Чтоб не травмировать читателей, не буду приводить примеры игр, которые и тогда не казались увлекательными, а только являлись академическими изысканиями советских инженеров.
Данный калькулятор мне купили для домашнего использования многие программы я знал наизусть, сам их составлял, но несмотря на это по программированию в одиннадцатом классе у меня случилась двойка хотя поставили мне тройку.
Так началась моя карьера программиста
В старших классах мечтал быть автомехаником, лишь исключительно для того чтобы иметь свой личный автомобиль. В начале девяностых годов автомобиль был большой роскошью, и здраво рассудив, я понял, что, если я буду крутиться около автомобилей, то так или иначе автомобиль у меня будет, и я буду счастливым обладателем вожделенного транспорта.
При поступлении в институт сельского хозяйства, на факультет механики, еще до поступления я поссорился с деканом факультета, что отрицательно сказалось на моем поступлении, двойка по физике на вступительных экзаменах и крушение планов о грязных руках, масле и запахе бензина.
Что Бог не делает всё к лучшему
Год до следующего поступления надо было провести с пользой, поступил на вечерний факультет политехнического университета, так это заведение тогда начало называться, но учится на вечернем нельзя было просто так. Нужно было либо работать, либо учиться на дневном обучении. Работать мне показалось еще рано, поэтому я пошёл учиться профессионально-техническое училище, на специальность Оператор ЭВМ. Там я увидел огромное количество компьютеров, которые стоили каждый как три автомобиля.
И это было великолепно
Чистые помещения, интеллигентные люди, большой выбор операционных систем. В классах АСУ было сосредоточено большое разнообразие компьютеров. БК, ZX Spectrum, ДВК, Термиалы большой ЭВМ крупнейшего завода. Но я безошибочно подошел к ЕС 1840. IBM совместимый компьютер, созданный на базе аналога процессора Intel 8086 с 640 килобайт ОЗУ, выпускавшиеся в силиконовой долине СССР, в белорусском городе Минск.
Смешно сегодня смотреть на этот хлам, но дома такой компьютер был доступен только очень богатым людям и то если партия и правительство разрешат столь ценный аппарат использовать в личных целях.
Хотя код процессора не был оригинален и был скопирован у наших американских потенциальных «друзей», операционная система была своя. М86, видимо цифры обозначали год начала разработки. Операционная система была великолепно документирована и имела псевдографический интерфейс многих программ, например, форматирование дискет было даже эстетично, не то что у американцев команда format.
К сожалению, в этой простой системе не было игр, без которых жизнь скучна. Также в этой операционной системе не приживались никакие вирусы, просто вирусописатели не знали о существовании этой операционной системы, да и я многого не потерял бы, не зная о существовании этого шедевра советской инженерной мысли.
Первый язык программирования нам начали преподавать BASIC. На мой взгляд это вредительство. Прономерованные строки, постоянное использование безусловного перехода, безобъектное программирование, без процедур, без модулей. Все это должно было наводить на мысль, что делается попытка как можно больше людей отвадить от программирования. Программа в 400 срок становилась абсолютно нечитаемой. Ни о каких серьезных разработках не было и речи. Кроме того, нельзя было откомпилировать программу, работа программы была в режиме интерпретатора. Сначала запускалась оболочка BASIC из которой запускалась программа. Чем-то мне это напоминает 1С Предприятие, может быть благодаря тому опыту я и смирился со структурой нашей любимой программы.
Экспериментируя в этой операционной системе, с системой разработки GW BASIC, мне удалось написать музыкальный синтезатор. Конечно это не было коммерческим проектом и успехом это назвать нельзя. Документация к среде разработки была на русском языке, к дискетам прилагались толстые книги.
Хочется отдельно сказать про дискеты, которые по-английски назывались FLOPPY дисками, они действительно были гнущиеся и хранить их приходилось в определенных конвертах стоили они невероятных денег, в карман не умещались. В переполненном общественном транспорте нужно было проявлять крайнюю осторожность, чтоб довести их в целости и сохранности. Размер дисков был 5’25 дюйма. Хранилось на них небольшое количество информации при двойной плотности 320 килобайт данных. Что в 2018 году звучит просто парадоксально.
Бросив советскую операционную систему, я проникся американский MS DOS версии 2.0, которая значительно отставала от Советской разработки. На смену ей быстро пришла версия 3.0, с большим количеством доработок. Появились дошедшие до современного мира директории, в отличии от советской разработки М86, которая так и застыла на месте.
Тогда мне стало понятно, что программный продукт - это не законченная вещь, а процесс и пока он продолжается, продукт живет, перестал развивать, ушел с рынка. Есть японская поговорка: «Учение – это борьба с быстрым течением, перестал грести и тут же унесло назад». Если переиначить, заменив слово Учение на Разработка, то получится хороший афоризм о программах.
Документации к американским продуктам почти не было, локализацию на русский никто не делал. Пришлось активнее учить английский язык.
Главное преимущество MS DOS, было наличие игр. Предавшись многим из них было убито огромное количество времени.
Наконец попалась приличная среда разработки Borland Pascal версии 5.5. Великолепный язык по тем временам, но совершенно невостребованный сегодняшний день. Был у меня вариант выбрать язык C, но ошибочно был выбран Pascal.
Есть такое языковое понятие Родной язык – это язык на котором думаешь и как правило это первый язык, усвоенный с детства. Потом можно учить другие языки, но думать получается только на первом. Так и с языками программирования. Первый глубоко изученный язык оставит неизгладимый отпечаток на всю карьеру. Потом, при изучении новых языков все время будет происходить сравнение. В современном мире получили распространение C-подобные языки программирования и тем, кто мыслит на Pascal приходится дополнительно напрягаться.
В один прекрасный день в нашем вычислительном центре были установлены компьютеры с жестким диском. Размеры этих дисков, страшно признаться, 5 мегабайт.
Приятно было то, что они работали гораздо быстрей дискет. Моя любимая игра загружалась не 20 минут, а 3 минуты.
Моя увлеченность компьютерами к этому времени стала столь велика, что я приходил в вычислительный центр первым и уходил последним. Самый насыщенный год моей жизни. Интересовала любая литература о компьютерах, как на русском, так и на английском языках.
ЕС 1840 не были супернадежными компьютерами. Выходили они из строя часто, чинились долго. Ремонтировать их приходил настоящий электронщик, который редко заменял платы или блоки целиком, а перепаивал микросхемы.
Отдельно необходимо упомянуть про мониторы, которые мы использовали при нашем обучении. Мониторы были CGA разрешением 320 на 200 точек, с шестнадцатью градациями серого. Надо признать, что несомненно это было большим ограничением для графических приложений.
Статическое электричество излучаемая этим мониторами было просто невероятно, волосы вставали дыбом, что привело к преждевременному облысению. Небольшая жертва IT технологиям.
Были у нас на курсе и практические задачи
Один из выдающихся студентов, разрабатывал на CLIPPER программу учета сотрудников и начисления им зарплаты. Я в дальнейшем заметил, что это была одна из первых задач для вычислительных центров на предприятиях.
У меня была общественная нагрузка, назначать дежурных для уборки в классах после занятий. Очень непростая работа, связанная с конфликтами, чтоб уменьшить их количество, я решил разработать программу, которая автоматически назначает дежурных и вроде на меня обижаться не стоит, все придумывает компьютер.
Во время этой разработки я в полной мере осознал, что такое недокументированные функции, дополнительные возможности. Программа получилась гораздо сложнее, чем в техническом задании. Студенты постоянно говорили, что я сегодня не могу, не посещали занятия и еще миллион причин, чтоб не согласится с предложениями программы. Кроме того, пришлось написать дополнительный отчет о количестве дежурств, так как сыпались обвинения в несправедливости назначений.
Вероятно, из педагогических целей, последующим курсам рассказывали об успехах в программировании нашей группы. Наш курс наполовину состоял из неудачников, не поступивших в ВУЗы, но собиравшихся попробовать снова. Все, кто хотел поступили.
По окончании обучения, получив диплом специальности Оператор ЭВМ, я пошёл учиться политехнический университет нашего города, с первого курса которого я был отчислен за неуспеваемость. В расстроенных чувствах я забрел профессионально-техническое училище и случайно там встретил студента более позднего курса обучения, наслышанного про мои успехи, которые предались потомкам. Встреча протекала на очень радостной ноте, я был так эффектно отрекомендован работодателю, что на следующий день уже вышел на работу.
Устроится на первое место работы молодым людям не просто. Везде и всегда нужен опыт работы. Поэтому на первое место работы берут либо по блату, либо за еду.
Меня пригласили на работу программистом в одну из крупнейших больниц города, в молодой отдел АСУ, для разработки информационной системы огромного комплекса по лечению больных при медицинском университете. На данной должности мне удалось проявить себя хорошим специалистом, не только в области программирования, но и сборке, настройке и ремонту компьютеров, прокладки проводов и понимания сетевых технологий передачи данных.
Техническое оснащение отдела АСУ этого заведения было гораздо более продвинутым, и мы использовали компьютеры NIXDORF, с процессором Intel 80286, одним мегабайтом оперативной памяти жесткими дисками 10 Мб, с мониторами EGA 640х480х256.
В первый день работы, когда мне все показывали, мой провожатый ткнул в неприглядную коробку, со словами:
- Это у нас сервер.
- А почему он выключен -, поинтересовался я.
- А толку от него. Файлы мы и без него на дискетах перенесем, или по сети передадим.
- По сети? -, у меня перехватило дыхание.
- Да, мы тут ее по всей территории тянем -, невозмутимо ответил мой провожатый.
С того момента мир вокруг меня поменялся, стало понятно, что сеть компьютеров намного интереснее персонального компьютера. Передача данных велась по коаксиальному кабелю, с использованием самодельных ArcNET адаптеров, со скоростью 2,5 Мбит/с, на расстояние более 1 километра, без активного сетевого оборудования.
Дискеты использовались 3’5 дюйма, которые были намного удобнее, потому что умещались в карман, сделаны были из твердого пластика, имели шторку на окошке доступа, имели большую емкость.
Цветные мониторы - это замечательная вещь, но при таком качестве изображения на лучевой трубке у меня после 8 часового рабочего дня был сильный туман в глазах, зрение садилась с катастрофической быстротой.
Программировали мы на Borland Pascal 6.0 с использованием Turbo Vision. Несмотря на то что операционная система была MS DOS, которая могла адресоваться только к 640 килобайтам памяти, половину которой уже занимала среда разработки, расширенный режим процессора 80286 позволял использовать и дополнительную память сверх 640 килобайт, что увеличивало скорость компиляции емких программ с Turbo Vision.
Был момент, когда к нам пришел новый сотрудник, выпускник Политехнического Университета, звезд с неба не хватал, а устраивался по блату. Дипломированный специалист тут же решил отвадить нас от новых технологий и навязать нам свое видение. Показал нам программу своей дипломной работы, в которой формировалась вложенная в несколько уровней меню. Прочитал нам целую лекцию о стеках и прочих технологиях и похвастался что это меню написал всего за полгода. Осталось у него несколько нерешенных проблем, особенно с утеканием памяти, на которые мы ему с удовольствием указали. Не успел молодой инженер закончить свои размышления и внушения, как я ему уже показывал подобное меню, созданное с использованием Turbo Vision, буквально за 10 минут. При этом работает быстро, надежно, память полностью высвобождает и программисту необходимо думать именно о бизнес задачах, а не о скелете программы.
Мы были очень удивлены, что этот специалист признал, что ему с нами не по пути и не стал у нас работать, а ведь блатной и мог возглавить отдел.
Вывод: начало карьеры программиста очень сложное занятие. Нужно зацепится хоть где-нибудь, но по специальности. Проработав менеджером по продажам любое время, бессмысленно рассчитывать на дальнейшее трудоустройство программистом. Работодатель ищет опытных людей, которые уже наделали ошибок и научились их избегать.
Технологии меняются с такой скоростью, что перерыв в карьере в два года ведет к потере квалификации. В статье описаны события за этот срок. Технологии за это время поменялись полностью и переучиваться пришлось так, как будто никогда компьютерной техники и не видел.
Непрерывно нужно стремиться к новым знаниям, искать новые технологии. Не всегда попадаются удачные поставщики и партнеры в океане IT изобретений, но это не страшно, через два года будет новый шанс поймать золотую рыбку среди селедок.