Найти тему
PHP Боярин

Повелители будущего времени

Если вы общаетесь с программистом, и вам кажется, что он ненормальный - вам не кажется.

Мы говорим не о школьнике - любителе баловаться с python'ом. Это еще только личинка программиста. Профессиональный PHP боярин значительное время своей жизни посвящает написанию программного кода.

Что такое этот программный код? Если результат работы столяра, художника или ассенизатора можно увидеть сразу, программист всегда работает с будущим временем. При создании программы время останавливается, программа не исполняется. Потом программист завершает работу, потягивается и выходит выпить кофе, хотя ничего еще не произошло!

Работа программы начинается тогда, когда работа программиста заканчивается.

Во время исполнения программы её автор не может вмешаться и помочь, если у компьютера что-то пошло не так. А компьютер очень тупой и очень исполнительный. Он понятия не имеет, что что-то уже идет не так, и продолжает стругать из говорящего полена табуретку. Поэтому программист должен заранее предусмотреть все возможные варианты развития событий. Для того, чтобы исполнение программы вообще дошло до конца, сначала она должна сработать в голове у автора.

Представьте, что вы - агроном, и вам надо вырастить идеальной формы помидоры по заданию заказчика. Но присутствовать при этом вы не имеете права. Даже для того, чтобы высадить семечку, надо составить письменную инструкцию с как можно более точной информацией о месте высадки. Потому что на самом деле ферм сто тысяч и они расположены по всему земному шару.

В мае ударили заморозки? Вы должны были это предусмотреть и оставить инструкции. Сломалась поливочная система? Должен быть резерв. Град, саранча, засуха, фитофтороз, долгоносик? Работники ищут конверт с подробными инструкциями на этот счет.

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

А осенью к вам приходит один из фермеров и жалуется, что у него семечка даже не проросла. Он не знает почему. Вы задаете тысячу наводящих вопросов. Оказывается, нигде не написано, что помидоры не растут под водой.

Это бесконечное ожидание неприятностей отличает хорошего программиста от школьника, которому "с пустою головою легче прыгать по земле". Чем больше неприятностей программист способен представить, тем надежнее и эффективнее его программа, и, в конечном счете, тем выше его зарплата.

Поэтому мышление программиста отличается от мышления обывателя. Программист мыслит шире обычного человека, хотя и не всегда быстрее, и больше внимания уделяет деталям. Потому что детали важны.

Заказчик уже мысленно богат, а разработчик что-то бубнит о тысяче и одной проблеме. Конечно, именно он виноват в их появлении, зануда.

Мастерство приходит с большим опытом неудач. Только упорный труд может превратить поклонника моды с косичкой и в узких штанишках, уверенного, что гугл даст ответы на все вопросы, в повелителя будущего времени, готового ко всему. Наслаждающегося тем, как из первозданного электронного хаоса по кирпичику вырастает уютный дом, которым будут пользоваться люди, понятия не имеющие о том, что за его пределами бушуют бесконечные бури, сказочные драконы грызут углы, а злоумышленники напрасно пытаются "просверлить в стене отверстие и пустить скрозь него отравляющих газов".

Это один из самых приятных побочных эффектов работы программистом. Мы не надеемся на то, что неприятная ситуация не произойдет, а готовимся к ней. Программист это не "я же говорил". Это "я же предусмотрел".

Удовлетворение от хорошо работающей программы похоже на гордость родителей, правильно воспитавших своих уже взрослых и самостоятельных детей. И в обоих случаях это воспитание начинается с себя.

#программирование #программист