Хроники одного программиста
Родители мои были инженерами, поэтому рос я в окружении разных технических приблуд и приспособлений: кульманов, готовален, подшипников, авторских свидетельств и рацпредложений. Одной из любимых моих игрушек в то время был ... калькулятор. Нет, конечно я очень любил строить разные планеры, бумеранги, поджигать чего-нибудь, смотреть "Ну, погоди", кататься на велосипеде и играть в солдатиков. Но страсть к кнопкам у меня появилась уже тогда. Я просил маму дать мне поиграть программируемый калькулятор вроде такого:
Цифры на дисплее завораживали и влекли, калькулятор отзывчиво откликался на нажатия пластмассовых кнопок. В те времена одним из моих любимых журналов был вот этот:
В нём всегда была очередная порция захватывающей фантастики и рассказ о полёте Лунолёта "Кон-Тики", сопровождающийся программами для калькулятора БЗ-34.
Не подумайте, что я был гением - нифига в этих программах я не смыслил, но всё же пытался нажимать нужные последовательности клавиш, чтобы получить какой-то результат. Который даже не мог осмыслить :) Помню, там были какие-то расчеты массы горючего, необходимого Кон-Тики для полёта на Луну и обратно. Одним словом, это была игра.
Следующим эпизодом в моей компьютерной истории стало повальное проникновение бытовых компьютеров в наши дома. У многих моих друзей дома появились вот такие девайсы:
На школьных переменах только тем и занимались, что обсуждали очередные нюансы прохождения F1 или Карате:
У меня, к сожалению, такого компьютера не было, поэтому с грустью и тоской оставалось слушать эти рассказы. Иногда я ходил к друзьям и мы там рубились в "Спектрум". А позже мой брат собрал подобие "Спектрума" из какого-то конструктора, коих тогда было уже немало. Но у меня по прежнему компа не было, хотя желание им обладать росло.
А где-то в 93м, у одного товарища со двора дома вообще появился настоящий комп. Папа был начальником в одном НИИ и благополучно "выписал" домой себе 286й с цветным монитором:
Летом мы просто оккупировали его квартиру, как только родители уходили за порог! Мне так понравился этот комп, что я попросил маму записать меня на посещение компьютерного зала у нее на работе, благо там была такая программа. Конечно же, там разрешали только играть в игры - но на тот момент мне было и этого достаточно.
В 94м в школе появилась информатика, которая стала одним из моих любимых предметов. Компьютерный класс был оборудован древними УКНЦ:
Правда, все они были терминально подключены к учительскому и загрузка ОС производилась по сети, что занимало по времени около часа. Поэтому нам сделали сдвоенный урок - 45 минут мы сидели и лицезрели надпись на дисплее "Загрузка из сети...",
а второй урок писали на Basic или рубились в аналог игры "LoadRunner" - "LAND":
или "Вертолёты":
или "Рыбалка":
Иногда еще рисовали в каком-то графическом редакторе.
Язык BASIC мне не очень нравился его непонятными "DIM", поэтому когда нам рассказали про PASCAL, я твёрдо решил, что хочу на нём писать программы :)
У одного товарища выменял на вкладыши книгу "Программирование на HiSoft Pascal для ZX-Spectrum" не помню какого автора, но похоже, что это был перевод этой:
И я увлёкся. Теперь на каждом уроке информатики я просил учительницу загрузить мне Pascal, вбивал листинги из книги и наслаждался результатом: программа строила графики, заполняла словами экран, пищала и т.д. Потом стал что-то изменять и добавлять своё. Некоторые программы учительница даже позволяла сохранять мне на дискету в её дисководе по сети :) Это было большой честью для меня :)
Мой товарищ тоже увлекался программированием - он учился в 59й школе Ульяновска и с компьютерами у них было получше - стояли 286е с цветными экранами и у каждого был свой дисковод (но тоже не было жесткого диска). Мы часто разговаривали на тему компьютеров, программирования и алгоритмов. А потом и я стал ходить в кружок информатики в этой школе. Вёл его замечательный человек, учитель информатики Анатолий Юдин. В его кружок ходило так много народу, что не всем хватало место и за компьютерами сидело по 2-3 человека. Именно его уроки окончательно утвердили во мне желание связать свою жизнь и карьеру с компьютерами и программами.
Чтобы стать программистом, необходимо было сильно поднажать на математику, с коей я дружил всегда на твёрдую "четвёрку". Уровень математических знаний, который давался в моей школе, был довольно низок, поэтому нужно было либо переводится в другую школу, либо заниматься дополнительно. С переводом в физмат-класс 40й школы Ульяновска ничего не вышло - завалил все 3 попытки сдать экзамен :) Зато сильно помогли 4 года обучения в заочной физмат школе при МФТИ. Кому знакома эта аббревиатура - ЗФТШ при МФТИ? :) Кто несколько лет ходил на почту с толстыми конвертами и с замиранием сердца распечатывал полученные? :) Кто взрывал мозг учителей физики и математики нерешаемыми заданиями? :) Одним словом, респект и уважуха МФТИ! Скольким ребятам они помогли поступить в лучшие ВУЗы страны.
В нашем городе "на программиста" учили тогда только два вуза: УлГТУ и филиал МГУ - УлГУ. В УлГТУ ("Политех") на нужный факультет ФИСТ было просто нереально мне набрать необходимые баллы (80-100) - тогда там уже ввели тестирование. Поэтому параллельно с УлГТУ были поданы документы в УлГУ на механико-математический факультет. Собственно, он и был наиболее желаемой моей целью - там уже учились некоторые мои старшие товарищи и собирались идти младшие. На тестировании в политехе я набрал около 60 баллов и проходил только на машфак :) Естественно, он тут же был отброшен. Последний мост - экзамены мех-мата. Математика письменно, устно и сочинение. Первый экзамен - самый трудный. За год до этого я не пропускал ни одной улгушной олимпиады, где особо не выделялся успехами. Провалил и предварительный платный экзамен. И вот Бог дал мне последний шанс, которым я воспользовался и еле-еле набрал необходимые минимальные баллы :) Тогда я уже и не думал, что могу не стать программистом - все чёрные мысли были об армии :) В общем, мехмат распахнул предо мной свои двери. И понеслось....
Следующими людьми, которые должны были впихнуть в меня любовь к программированию, стали преподаватели С.А.Шиняев, Шамиль Талгатович Ишмухаметов и Б.Ф. Мельников :) А очередным учебником - "Основы Турбо-Паскаля" Фаронова:
Компьютерный класс был оборудован 386-ми, с жёсткими дисками и дисководами 3,5'':
Началась эра дискет. Сколько их покупалось на скромную стипендию - ужас. Они быстро портились, так как компилировали свои программки мы только с них.
Лабораторные работы, задания... Я даже не успевал всё делать, сложность нарастала. Прерывания DOS, игра "Шахматы", 3D-объекты, собственные файловые системы и оболочки - это мехмат, детка... К концу 2го курса я понял, что много упустил и часть работ просто не смог сделать самостоятельно - что-то пришлось заказывать за деньги старшим ребятам :) Думаю, не я один так поступал. Когда "горит" зачёт, то мораль и совесть отходит на последний план :)
У меня по прежнему дома не было компа, поэтому я "пробил" разрешение ходить к маме на работу и часами сидел там за первыми Pentium I 75 Мгц, производства Siemens-Nixdorf,
решая задания в математическом пакете Maple:
Кстати, там же, на маминой работе, я впервые познакомился с Windows'95 :) Но она мне показалась какой-то громоздкой и неуютной, по сравнению с любимым Volkov Commander:
И вот, пасмурным октябрём 1998 года, мама на скопленные деньги купила мне компьютер!
Это был Сименсовский десктоп с процессором i486 DX2 33 Мгц, ОЗУ 8 Мб, SVGA-картой и HDD WD 500 Мб! И самое главное - монитор 15'' со встроенным защитным экраном (но с небольшим заводским браком на трубке)!
Там была уже установлена ОС Windows 95, но по умолчанию грузился любимый и знакомый DOS 7.0. Набрав команду "win.com" можно было загрузить винду, поиграться с ней и выйти :)
Основное своё время я проводил в DOS, просматривая разные картинки в утилите "sea.exe", которая работала в графическом режиме. У меня до сих пор сохранились эти картинки в разрешении 200 на 300, 480 на 640, 50 на 100... Какими большими они тогда казались :) Тогда были очень популярны изображения художника Бориса Валеджо - кто их помнит? :)
Еще я слушал трекерную музыку формата "mod" или "xm". В универе по дискетам ходил трек "Металлики" - Unforgiven.mod. А кто помнит "FastTracker"? :)
Кстати, довольно известный ныне CJ Omen (мой универский друг Лёха Будылёв) начинал своё творчество с неё и я был первым слушателем его композиций :)
Еще я осваивал мощный пакетный язык DOS:
немного ASM:
и даже написал пару bat-вирусов, которые успешно апробировал на универских компах... :)
Собрал огромную коллекцию вирусов для DOS и Windows (около 800 штук) и базу их описаний. Изучение вирусов стало любимым моим занятием. Апогеем его стало написание подобие антивируса (скорее, детектора) к одному очень злому вирусу Deflorator, заразившему многие универские компы. Кстати, написан и внедрен он был тоже студентом моего ВУЗа :)
В 99-00 массовую популярность приобрела музыка в формате mp3. Именно её прослушивание и стало главной причиной моего "переезда" из DOS в Windows. Но мой процессор в 33 Мгц "не тянул" её и приходилось в настройках winamp сильно урезать качество воспроизведения. Это стало причиной первого моего апгрейда:
Кто не заметил разницы - этот "камень" был уже в 2 раза шустрее моего прежнего :) MP3 шли на ура! Однако встала потребность установки кулера - прежний был на столько слаб, что мог работать и без него.
Довелось поработать и *nix - довольно долго "жил" в установленной на отдельном разделе HDD FreeBSD 4.0:
Тогда мне казалось это очень крутым и я тоже пересобирал ядро по любому поводу :) Поверьте, это проходит :)
После 3 курса, на летних каникулах, с тем же товарищем, с кем с детства мечтали стать программистами, решили освоить новый для нас язык - C++. Самоучитель Г. Шилдта стал следующим моим учебником:
Наше самообучение мы превратили в некое соревнование - кто быстрее сможет реализовывать алгоритмы на этом языке. Его старший брат (тоже мехматянин) давал нам разные задания и мы их делали.
Этот язык мне очень понравился своей краткостью синтаксиса и новыми возможностями, которых не было в Pascal (можно объявлять переменные, где хочешь :) ).
К концу лета я освоил его на столько, что совсем забросил Pascal и все лабы и курсовые делал уже на C++. Как и разные утилиты для своих нужд. К тому времени мой WD 500 Мб стал сыпаться и я написал утилиту, которая каждый раз при завершении работы сохраняла на дискету FAT-таблицу, которая постоянно слетала. Еще я писал антивирусы, грабилки ресурсов из игр, текстовые парсеры и т.д. :) Верхом творчества был дипломный проект по распознаванию графических образов, который я реализовал на Borland Builder C++:
и Microsoft Visual C++:
К слову сказать, чуть раньше по учебному процессу мне довелось познакомиться и с другой средой разработки Borland - Delphi:
Знакомство это предопределило мою дальнейшую судьбу - я до сих пор пишу свои программы на Delphi и просто без ума от этой мощной среды, которая до сих пор не заставила ощутить какую-то ущербность в разработке desktop-продуктов.
Delphi для Linux - Kylix. К сожалению, умерший продукт. Сколько строчек кода было написано в нём...
Конечно, сейчас уже совсем другие времена и наши дети "стартуют" далеко не с MK-51 или ZX-Spectrum.
Интересно, какие программисты выйдут из них? Куда вообще пойдёт это ремесло?
Одно только знаю - пока человечество в развитии движется вперёд, программист нужен будет везде и всегда.
Источник:
63 комментария
9 лет назад
Удалить комментарий?
Удалить Отмена9 лет назад
do 1 i=1,5 1 (цикл делать до метки "1", менять i от 1 до 5 с шагом 1)
k=i+1 (типа какое то тело программы)
if k eq 3 go to 2 (если к = 3, тогда идти на метку 2)
1 continue (пустой оператор, перед ним стоит метка "1", после этого оператора отошлет обратно к оператору du и i сменится на i=i+1, либо, по достижению i=5, программа будет считать дальше...
2 j=i+1 (метка 2 затем любые дальнейшие действия с полученным результатом)
Как вы видите - гоняю цикл пока не получу искомый результат, в данном случае интересует ответ при каком i k будет будет равно 3, и желаемый i оказывается равен 2м... За каким хреном гонять цикл дальше? Как изящно реализовать эту же задачу в других языках?
Удалить комментарий?
Удалить Отмена9 лет назад
Удалить комментарий?
Удалить Отмена9 лет назад
Удалить комментарий?
Удалить Отмена9 лет назад
Удалить комментарий?
Удалить Отмена9 лет назад
Удалить комментарий?
Удалить Отмена