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