Камиль Калимуллин (buxler) wrote,
Камиль Калимуллин
buxler

Categories:

Как я стал программистом

Оригинал взят у alexio_marziano в Как я стал программистом
Долго решал сегодня как отметить День Программиста - искупаться в фонтане или написать пост про то, как я стал программистом: с чего всё начиналось и чем закончилось как продолжается. О сделанном мною выборе, думаю, вы уже догадались.




Хотел было начать историю с времён старших классов, когда среди прочих предметов появилась "Информатика", но тут вдруг вспомнил, что всё это началось гораздо раньше. По идее, этот рассказ даже можно отнести к очередной главе "Детей перестройки". :)  Итак, конец 80х, мне 7-8 лет....

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



Цифры на дисплее завораживали и влекли, калькулятор отзывчиво откликался на нажатия пластмассовых кнопок. В те времена одним из моих любимых журналов был вот этот:



В нём всегда была очередная порция захватывающей фантастики и рассказ о полёте Лунолёта "Кон-Тики", сопровождающийся программами для калькулятора БЗ-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.




Интересно, какие программисты выйдут из них? Куда вообще пойдёт это ремесло?

Одно только знаю - пока человечество в развитии движется вперёд, программист нужен будет везде и всегда.

С Днём Программиста! :)



Tags: ИТ, программирование
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments