История одного восхождения

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск

Как всё начиналось (или история восхождения простого студента-программиста)

Монолог в двух частях с прологом и эпилогом.

Пролог

Вообще, начал я свою "карьеру" программиста ещё в детстве. В юном возрасте первым компьютером, к которому у меня был доступ, была огромная жуткая пародия на ноутбук белого цвета. Там стоял DOS и, кажется, NC или Volkov Commander. Я тогда впервые научился лазить по папкам в поисках любимой игры (Prince of Persia, Golden Axe, "танчики" - не помню названия - пошаговая игра, где выбираешь угол наклона, силу выстрела, тип вооружения и стреляешь в чужой танк, можно было покупать действительно разнообразное оружие).

Затем я видел у мамы на работе компьютеры с Windows. Они тоже использовались мною для игр (я любил, например, Розовую Пантеру =) ). Поначалу я даже не знал как и не умел запустить игру, если у неё не было ярлычка на рабочем столе. Потом я открыл для себя "панель задач и меню пуск" (идиотский перевод, согласитесь?) и меню "Программы". Поскольку все установленные мне игры я проходил несколько раз подряд, мне становилось скучно... В итоге я изучал практически все стандартные и не очень установленные программы (не сразу, конечно, это продолжалось ещё в нескольких частях времени, о которых написано ниже). Потом я открыл для себя "Мой компьютер" и научился сам ставить игры.


Часть 1

Затем у нас в доме появился первый настоящий компьютер (он и сейчас есть). То был ноут Asus с 2-мя (!) планками памяти по 256, процом Intel M на 1.2 и офисной (уже тогда) видеокартой. Вот на нём я и познал первые прелести программирования... Поначалу я просто излазил винду вдоль и поперёк. Каждое окошечко, каждая менюшечка подвергалась тщательной инспекции. А всё из-за чего? Да-да, у меня было мало игр, а те, что я прошёл, я прошёл по нескольку раз - было скучно. Потом я всем с гордостью говорил, что я уже могу быть сисадмином, т.к. умею ставить программы, настраивать ОС и создавать сети... Какой же я был зелёный! Но вот, изучив "весь Windows", мне опять стало скучно... Что я только не делал. Раз 5, наверное, насмерть убивал систему различными способами, не специально, конечно, но компьютер не могли починить даже знакомые опытные программисты. Ну, я ломал только софтверную часть, железо, я, конечно, не трогал (наверное, именно поэтому я сейчас так мало знаю о железе, но могу починить практически любую сдохшую винду и вручную найти все вирусы и даже руткиты. Я даже долгое время не знал, в отличие от сверстников, какие бывают модели видеокарт и телефонов Nokia, однако я реально знал, что такое видеокарта, и, что такое оперативная память, или, чем отличается "разрешение" от "расширения").

К чему всё это привело? Я по стандартной справке Windows XP начал изучать BAT-файлы (на самом деле, я и раньше пытался написать программу, копируя кем-то забытый на доске в школе код (как теперь я знаю - Basic) в текстовый файл, а затем запуская его, переименовав с расширением exe, но у меня почему-то ничего не получалось ;) , даже игра в "угадай число"). Я изучал всё новые и новые команды, писал всё новые и новые bat-ники. Сейчас, мне кажется, я мастер bat-ов, но мне, конечно далеко до спецов с хабра из раздела "ненормальное программирование", которые на bat пишут крестики-нолики и даже 3d-визуализацию куба.

Потом был HTML... Я впервые его увидел в книжке по информатике, что купили мне, т.к. она была в списке необходимой литературы в школе. Ту книжку кроме меня, наверное, никто не прочитал до конца, даже учителя. А я прочитал, хотя так и не знаю баз данных Access. В общем, там были примеры простейших тэгов типа img или a, но мне этого было мало. Слава Богу, уже тогда у меня был интернет на 56к с приличной скоростью - килобит 28-37 в секунду (хотя началось всё с найденного мною самоучителя по html на маминой работе, но не важно). Я читал и выполнял примеры из того самоучителя и как-то так и научился. (Хорошо помог один сайт, на котором в удобном виде расположены хорошие описания различных тегов и параметров, с примерами, но не буду рекламировать, ибо запрещено правилами форума.) По ходу дела выучил и CSS. Всё, конечно, писалось в блокноте и под IE. Я был тру-кодером. Кое-как я потом выучил и JS, даже написал несколько игрушек, но до сих пор я его знаю не в идеале.

Часть 2

У нас в школе (в которой я учился до 9 класса включительно) было как в книге про Гарри Поттера с учителем Защиты от тёмных искусств, только хуже: должность учителя информатики была проклята и учителя менялись каждый год, даже чаще. Каждый из них находился на различном уровне отставания знаний от меня (были, наверное, и те, что превосходили), каждый из них "учил" совершенно разному ("учил" - сильно сказано: кто из нас знал - тому было скучно, кто не знал - весь урок страдал ерундой и ничего не вынес). Кто-то учил писать WordArt, кто-то рисовать таблицы в Word-е, кто-то набивать быстро текст, и ещё много разной ерунды было. Единственное, что я вынес полезного - меня там подтолкнули к изучению Basic'а. Я имею в виду, что изучали его на абсолютно базовом уровне и кроме меня написать простейшую программу могли всего пару человек, наверное. Тут о последовательности чисел Фибоначчи и речи не идёт. Я же, как мне кажется, тогда изучил все доступные возможности QBasic'а, втч. написал пару графических приложений со сложными меню (например, построитель графиков =) , ещё помню мой великий "шифратор", который шифровал весь файл с помощью последовательного "XOR-ирования" байтов файла с ключом, введённым с клавиатуры, прикол был в том, что один и тот же код и шифровал и расшифровывал файл.) Паскаль же я изучал в лицее в 10-11 классе. Там ситуация была получше, люди уже были серьёзные, "взрослые", к учёбе относились на порядок ответственней. Да, всё равно школа, но лучше. Там реально простейшие программы могли писать многие, некоторые даже неплохо, некоторые, конечно, совсем не умели писать, да так и не научились - всякие были. Опять же, я не буду скромничать, я этого не люблю, скажу, что я Turbo Pascal выучил тогда тоже неплохо, почти все возможности и на порядок выше, чем одногруппники. (Довольно сложно было почему-то разобраться с типами данных - зачем они вообще нужны и какие бывают. Как вы помните, я начинал с BAT-файлов и JavaScript, где нестрогая типизация данных, или Basic'а, где с этим попроще, да ещё как назло попадались плохие самоучители.)

(Внимательный читатель заметит: у меня вообще всегда так - пока меня не подтолкнут к изучению нового языка, не покажут скелет программы, простейшие синтаксические конструкции, я в него въехать не могу, ну раньше так точно было).

Но тогда я ещё был не программистом, а т.н., простите, "быдло-кодером", со всеми вытекающими последствиями. И примерно тогда я стал изучать Delphi 7 самостоятельно. Поначалу ничего не получалось, даже простейшие действия, совсем. Потом перелопатил тучу примеров, пробежал глазами самоучители, искал через поисковики те или иные куски кода. И как-то освоился. С опытом я влился в концепцию Delphi: если что-то хочешь сделать - ищи нужный компонент (позднее я и сам их научился писать, но это пришло гораздо позже, практически к концу моей эры Delphi, которую я покинул, но память о ней навсегда останется в моём сердце). То было великое время: я написал огромное множество действительно полезных (порой и не очень) программ, игр, утилит. Я властвовал над чужими процессами и окнами, исполняя в них свой код, я писал быстрый FTP-сервер и программу для подбора цветов, программу для работы с численными методами и графиками, несколько забавных игр, тесты различных ГПСЧ, "мощные" криптосистемы (я уже не помню, чем я занимался тогда, но помню, что я мог с операционной системой сделать практически, что угодно). А сколько чужих примеров кода я скопировал! Не счесть. Конечно, качество программного кода было на несколько уровней ниже, чем даже сейчас.

« "Лишь бы работало, да побыстрей" - был тогда мой девиз. »
Т.е. любые "оптимизация" обязательно применялись, безусловно. А сборник примеров из разных прикладных областей DelphiWorld я выучил, наверное, наизусть.

Я был властелин кода. Так мне тогда казалось.

Эпилог

Но время прошло, и вот я на мехмате. Я узнал действительно много нового, чего сам бы не узнал, наверное, никогда. Я на порядок развился, как программист и личность. Да, как личность. А главное, я вижу, насколько моего "опыта" ещё мало. С высоты теперешнего опыта я, как никто другой, понимаю, какой же я был тогда зелёный... И я искренне благодарен мехмату и его преподавателям. Мехмат - это такое место, где собрались, как мне кажется, близкие мне по духу люди, у которых одной из главных ценностей являются знания, их накопление, распространение, а также развитие новых исследований.

Но понимаете, вот, что странно. Да, я стал чуточку лучше, а количество языков программирования, которые я знаю, возросло в несколько раз, но с новыми знаниями во мне что-то умерло. Пропала та власть, которую давал Delphi, пропал тот азарт и "охотничий дух" программирования. С одной стороны, мой код стал красивее и "правильнее", но с другой, я совершенно ничего не могу теперь написать большого и серьёзного. Со времени эпохи Delphi, я никогда потом не написал столько разных и интересных приложений и утилит. Тогда я мог написать практически ВСЁ, что мог представить. А теперь... Я даже не мыслю об этом. Не знаю.


В общем, спасибо за внимание, если кто-то это читает. Я вот, может быть, не стал бы столько букоф читать. И принял бы всю эту речь либо за нытье, либо за бессмысленную демагогию, но стирать жалко... Как видите, я не написал то, чем занимаюсь сейчас, т.к. считаю, что с высоты будущего опыта это можно будет сделать объективнее.

P.S. Это не прощальная речь, не надейтесь ;)

Ссылки