Добавить в корзинуПозвонить
Найти в Дзене
Рассказы

Рассказ "Программист"

Одноклассники называли его Вассерманом. В свои 15 лет он знал, казалось, всё обо всём. И внешность у него была типичная - очки, серьезное лицо, мятая, неопрятная одежда и причёска в стиле "Я упала с самосвала, тормозила головой". В школе он, конечно же, был отличником, но при этом белой вороной без друзей. Он не был силён физически, но если кто-то задирался к нему - он всегда давал отпор своим острым как осиное жало языком. Благодаря сдержанности, полному контролю над своими эмоциями и расчетливости ему всегда удавалось избежать драк, выйти сухим из конфликтных ситуаций, которые создавали другие, и за всю свою жизнь он не нажил себе ни одного врага. Он никогда никого не оскорбил, не обидел и не пытался самоутвердиться за чужой счёт. Можно подумать, что он был добрым, но нет, он был просто честным. Он не давал никому у себя списывать, не помогал решать контрольные, ни разу не одолжил даже запасную ручку, когда у него просили. Всё, чем он владел, он использовал единолично, и слово "делит

Одноклассники называли его Вассерманом. В свои 15 лет он знал, казалось, всё обо всём. И внешность у него была типичная - очки, серьезное лицо, мятая, неопрятная одежда и причёска в стиле "Я упала с самосвала, тормозила головой". В школе он, конечно же, был отличником, но при этом белой вороной без друзей. Он не был силён физически, но если кто-то задирался к нему - он всегда давал отпор своим острым как осиное жало языком. Благодаря сдержанности, полному контролю над своими эмоциями и расчетливости ему всегда удавалось избежать драк, выйти сухим из конфликтных ситуаций, которые создавали другие, и за всю свою жизнь он не нажил себе ни одного врага. Он никогда никого не оскорбил, не обидел и не пытался самоутвердиться за чужой счёт. Можно подумать, что он был добрым, но нет, он был просто честным. Он не давал никому у себя списывать, не помогал решать контрольные, ни разу не одолжил даже запасную ручку, когда у него просили. Всё, чем он владел, он использовал единолично, и слово "делиться" для него не существовало.
Любимыми предметами были точные науки - физика, химия, математика и информатика. Биология давалась чуть сложнее, но тоже нравилась, а с музыкой, рисованием и физкультурой он не дружил, но получал свои пятёрки за счет старания и тщательного выполнения всех домашних заданий.
Если приглядеться к его распорядку дня, можно подумать, что он робот. Подъём строго в 7, завтрак, школа, продлёнка, домашние задания, чтение книг, ужин, сон. И так каждый день, кроме выходных. А в выходные он запоем читал, и оторвать его от книг, чтобы он хотя бы поел, родители могли с большим трудом. То, что он читал, никак нельзя было назвать детской литературой. Справочники с обилием таблиц и формул, научные журналы со сложной терминологией, книги с описанием технологий производства различных деталей, веществ и сплавов.
Сквозь очки просвечивал взгляд-рентген. Когда он смотрел в зеркало, он видел стекло - силикат натрия в аморфном состоянии - пропускающее свет, на которое нанесён слой серебра толщиной 90 нанометров посредством химической реакции восстановления из раствора нитрата серебра, которая так и называется «серебряное зеркало». Лучи света, отражаясь от зеркальной поверхности, создают мнимое изображение, воспринимаемое мозгом так, что оно как будто бы находится за плоскостью зеркала, хотя это оптическая иллюзия. Но это ещё полбеды – его разум так же смотрел и на всё живое. Глядя на цветущую сирень, он видел двудольное растение семейства маслиновых, которое вступило в фазу размножения, распустив цветки с пестиками и тычинками. Цветки выделяют эфирные масла с определенной формулой, создающие определённый аромат, для привлечения насекомых и реализации процесса опыления.
Всё, что попадало в его поле зрения, анализировалось - раскладывалось разумом по полочкам, изучалось, выстраивались логические взаимосвязи составных частей, принципы действия и механизм функционирования. Поэтому он и полюбил компьютеры с их простой, чёткой логикой, безотказно выполняющих любые его команды и выдающие всегда правильный результат на его запросы. Родители подарили ему компьютер три года назад. Он очень быстро научился печатать и редактировать тексты, копировать и перемещать файлы между папками, менять фон рабочего стола, устанавливать и удалять программы с дисков. Ему захотелось чего-то большего – раскрыть потенциал компьютера полностью и заставить его делать всё, что он захочет. Чтобы компьютер правильно реагировал, нужно давать ему команды на понятном компьютеру языке. В школе изучали язык программирования Бейсик. Уроки информатики стали для него истинным удовольствием.
На самом первом уроке, не успел ещё учитель и слова сказать, он написал свою первую программу на Бейсике:

print "Привет мир";

Компьютер послушно вывел эту строчку на экран. «Работает! Всё получилось с первого раза», – восхитился он.
С этого момента будем называть его Программист.
Бейсик был простым языком программирования, и изучить его не составило труда. Строка за строкой пишешь последовательность команд – и компьютер их поочерёдно выполняет. Ввести А, ввести Б, сложить А+Б, вывести на экран результат. Это совсем легко. Изучил он и команды посложнее – условный оператор и циклы.

Если А больше Б, тогда напечатать А. Иначе напечатать Б.

Пока А меньше 10,
напечатать А.
увеличить А на единицу
продолжить цикл.

Были в Бейсике и графические команды. Нарисовать точку, нарисовать линию, окружность, эллипс. На уроке проходили «звёздное небо», когда программа рисует точки в случайных местах на экране. Очень скоро Программист уже сделал экранную заставку с вращающимися песочными часами – для Бейсика это высший пилотаж. Круче только игры и трёхмерная графика, которую компьютеры того времени ещё не тянули.

Параллельно он купил книжку по Ассемблеру, и познакомился с командами на самом низком уровне, приближенном к машинным командам – двоичные коды, системные регистры, память, стек, прерывания. Ассемблер – язык для профессионалов, узких специалистов, тех, кто разбирается детально в принципах работы компьютерного железа. Люди, далёкие от этого, не смогут на нём написать ничего.
Одна из первых его программ на ассемблере – программа stop.com, занимающая всего 1 байт, но намертво вешающая MS-DOS, Windows 3.1 и Windows 95. В ней всего одна команда на ассемблере –

cli

которая сбрасывает флаг прерываний, и система перестаёт реагировать на нажатия клавиш и движения мыши. Попросту зависает.
Игры с зависаниями Программисту понравились.
Однажды на уроке информатики он удивил весь класс, рассказав, как легко в две строчки повесить Бейсик

1 CLS
2 GOTO 1

Первая команда очищает экран, а вторая бесконечно повторяет первую.
Зная, почему программы зависают, Программист учился отлаживать свои программы так, чтобы таких досадных зависаний избежать. Бейсик – не серьёзный, а скорее учебный язык программирования, и конечно его возможности не могли удовлетворить Программиста. Прошло немного времени, и он нашёл возможности для развития.
В Windows 98 появились языки программирования высокого уровня - объектно-ориентированные. Один из них С++ Builder. Он очень сильно отличается от Бейсика, и работает по совершенно другим принципам. Программист с головой погрузился в его изучение методом «научного тыка» – книжек и руководств тогда ещё не было, и он на пробу создавал разные Объекты - формы, кнопки, флажки, поля ввода, надписи и текстовые списки, – и пробовал менять их Свойства. Чтобы понять основы, он применил аналогию с яблоком. Допустим, есть Объект - яблоко, и у него есть Свойства – цвет, вес, положение в пространстве, размер, форма, вкус, запах. Некоторые эти свойства можно менять, некоторые нет. На яблоко можно воздействовать разными Методами. Его можно бросить, съесть, раздавить, выжать из него сок, взять в руки или продать. Также есть События, связанные с яблоком. Например, когда яблоко созрело, когда до него дотронулись, когда его надкусили. Событие наступило – значит надо что-то делать. Писать обработчик события, последовательность команд. При наступлении разных событий команды тоже будут разные. А какие именно – это решает сам Программист. Это создаёт большой простор для творчества и широчайшие возможности.
Он изучал язык и экспериментировал вовсю с изменением внешнего вида элементов формы – менял размеры, цвет, фон, шрифт текста. Освоил математические расчеты, переменные, работу с текстом и со списками – поиск сочетания букв в предложении, сохранение текста в файл и чтение из файла. И тут же применил свои знания на практике – написал программу для родителей, которая позволяла вести учёт долгов не в тетрадках, а на компьютере. В его программе можно было моментально посмотреть, какой у человека долг, списать часть долга или всю сумму, ввести нового должника и посмотреть отчёт об общей задолженности и показать самые старые долги. Программа такого уровня требовала создание базы данных, где хранились все эти сведения. Программист ещё не был знаком с основами систем управления базами данных, и поэтому придумал собственный способ хранения данных в простом текстовом файле и простенькие запросы, с помощью которых он эти данные читал. Интуитивно, методом проб и ошибок, он осваивал нечто новое.
Завершив работу над программой, он уже понимал, как работает база данных. Есть запрос, по которому данные в определенном виде берутся из базы, есть обработка результатов запроса, когда из всех выбранных данных получаешь те, что тебе нужны. Есть процесс записи данных в базу, который происходит в результате транзакции – алгоритма, который управляет процессом изменения данных в базе. И всё это не просто так, это достаточно сложный механизм со множеством нюансов.
В то время только-только появилась программа 1С-Бухгалтерия. В ней можно было программировать и гибко настраивать структуру базы данных. Программист сразу загорелся ей и скачал с пиратского сайта платформу 1С. Изучив основы, подсадил на неё и родителей. Они были люди честные, и купили лицензионный ключ.
В 1С был интересный и продвинутый язык запросов, возможность подключать внешние системы управления базами данных. Но чтобы разобраться во всех тонкостях, надо было учиться. А ему 15, он ещё школьник. Тогда он уговорил родителей провести интернет на работу, и часами пропадал на форумах, где общались программисты и выкладывали фрагменты своего кода, помогая друг другу решать разные задачи. Он попал в свою среду. Это было целое море, целый океан информации, который он жадно впитывал и пропускал через себя.
Там он узнал о серверах, о том, как их настраивать. Познакомился с операционной системой Linux и её командами. Узнал, что такое web-сервер, как его развернуть и обслуживать. Но больше всего его интересовали СУБД. Большие базы данных крупных компаний. Высоконагруженные сервера. Очередь запросов, оптимизация скорости выполнения команд, клиент-серверное взаимодействие. Задавая вопросы программистам этих компаний на форуме, он выяснил, что настоящих экспертов по обслуживанию таких сложных систем очень мало, они буквально на вес золота, и платят им очень большие деньги. Но его мало интересовала зарплата. Ему нужны были мощные компы, сложные задачи, вызовы в программировании и интеллектуальное развитие.
Думая о том, где бы он хотел в будущем работать, он выбирал между двумя компаниями – Майкрософт, которая тогда активно осваивала российский рынок, и набирающий обороты Яндекс. Требования к квалификации специалистов и в той, и в другой компании были просто космические. Но в любом случае Программисту оставалось ещё два года обучения в школе, прежде чем он смог бы официально устроиться на работу.
Эти два года Программист впахивал в поте лица. Кое-как посещая уроки в школе и спешно делая домашки, он с горем пополам получил золотую медаль. Учителя постарались, за уши его вытянули, понимая его ситуацию. А всё основное время он проводил за книгами, работая за компьютером и в интернете на форумах, расширяя свои познания во всех областях высоких технологий. Он постоянно писал и дорабатывал свои программы. Создал программу для хранения электронных документов в зашифрованном виде, программу для быстрого отбора сертификатов на товары и отправки их на печать, базу данных для хранения фотографий и сканов с быстрым поиском, скрипты на Линукс, пошаговые инструкции настройки серверов, тестовые базы 1С и ещё много чего полезного. Для удобства он создал свой сайт в интернете и выложил там ссылки на все свои работы. А их набралось порядочно, около сотни. На сайт время от времени заходили другие программисты, интересовавшиеся этими темами. Но не часто. Его сайт не набрал большой популярности, и остался по сути незамеченным.
Когда он закончил школу, он уже был спокоен. Всё, что он хотел изучить в плане теории, он знал досконально. Не хватало только практики, реальных задач и реальной работы. Правда, он до сих пор сомневался, куда идти – в Майкрософт, на международный уровень, или в Яндекс – развивать российские сервисы. Для интереса он подбросил монетку: орёл – Россия и Яндекс, решка – мелкомягкие и «захват мира». С силой подбросил монетку, она несколько секунд крутилась в воздухе, со звоном ударилась о стол, поскакала по нему, вращаясь, и упала на пол. Программист не стал ползать по полу и искать её, внутренний выбор был уже сделан, и решение принято. «Глупо доверять свою судьбу глупой монетке», – считал он. Но гораздо позже, когда мама убиралась в его комнате и подметала под столом, она нашла эту монетку. Орёл. Конечно же орёл. Иначе и быть не могло.
На собеседование он не поехал. Всё, что он сделал – послал по электронной почте технической поддержке Яндекса ссылку на свой сайт и короткую фразу «Хочу к вам». И больше ничего.
Долго ждать не пришлось. Через несколько дней ему пришло письмо, что есть вакансия в команде тестирования и доработки поисковой системы. Офис был в Москве. Нужно было ехать, и работать, по сути, день и ночь, жить проектом, думать только о проекте, и ни о чём другом. Трудиться бок о бок с лучшими техническими специалистами в стране. Полный фокус на одном главном деле.
Это был предел его мечтаний. Он тут же сел на такси и поехал на вокзал. Родителям написал короткую смс, что теперь работает в Москве в Яндексе. Из вещей взял только очки, паспорт и тёплую куртку. Была осень. Вечером электричка прибыла на Киевский вокзал. Программист набрал полной грудью воздух новой жизни. «В этом воздухе меньше кислорода и больше углекислого газа, бензина и частиц пыли», – подумал он. Но это не суть важно, когда впереди – Дело №1, двигать технический прогресс вперёд. Привет, Москва!