[Из песочницы] Великая ловушка программирования

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

Основной инстинкт человека


В 2007 году у меня был знакомый «Палеонтолог». В кавычках потому, что это была его кличка. Но и в реальности он был какой-то ученый и, вероятно, изучал когда-то палеонтологию. Однажды он мне рассказал, что основной инстинкт — это не продолжение рода (именно этой версии придерживаются британские учёные). Основной инстинкт — это интерес, любознательность, т.е. процесс изучения окружающего мира, многообразия его форм и законов.

Если верить Википедии, то »эволюция жизни на Земле началась с момента появления первого живого существа — около 3,7 миллиарда лет назад». Все это время микро- и не очень организмы плодились, совокуплялись, размножались и пожирали друг-друга. Организмы действительно шли по направлению, заданному их основным инстинктом — размножением.
Именно этот инстинкт дал шанс на эволюцию и на развитие жизни в целом. Природа в этом плане умна — она не оставила выбора живым существам, а наделила их однозначной «прошивкой» плодиться и размножаться.

Природе потребовалось 3 миллиарда лет, что бы создать ЖИЗНЬ и эволюционировать в… человека. Человеку потребовалось 2000 лет, что бы вылезти из пещер и каких-то лет 200–300, что бы познать законы природы и полететь в космос. Научиться «чинить» самого себя. Создать технологии, которые по своей сложности просто не уместить в рамки познания одного человека. Само человечество стало природой, творцом, Богом.

На фоне этих, без преувеличения сказать, действительно масштабных подвигов человечества, утверждение о том, что основной инстинкт человека — размножение, выглядит как-то не очень. Возможно, это применимо к животным и иным организмам. Но тот взлет, который испытал человек, заставляет действительно пересмотреть теорию «основного» инстинкта и принять теорему, утверждающую что основной инстинкт человека — это любознательность и созидание. Вспомните хотя бы детей в песочнице. Чем занимаются мальчики? Строят дома из песка, играют в «высокотехнологичные» игрушки — машины, танки. Мальчики любят конструкторы. Сейчас это буржуйский Lego, кто родился в «союзе», тот наверняка помнит железные советские конструкторы, позволяющие делать массу отличных вещей. Когда мальчики вырастают из детского возраста, то на смену конструкторам приходят иные увлечения — развитие в одной из областей жизнедеятельности. Молодые люди выбирают свой путь в жизни.

Девочки же отличаются от мальчиков. У девочек основной инстинкт — репродуктивная функция. Поэтому девочки в песочнице играют в куклы. Современные женщины хоть и приглушают свои основные инстинкты карьерой и прочими глупостями, но все же являются непоколебимыми носителями своей основной функции — деторождения от сильных самцов. Поэтому даже сейчас, когда человечество бороздит просторы космоса, женщина для мужчин так и остается «загадкой», а понять и «справиться» с женщиной может не каждый мужчина — достаточно почитать профильные форумы, где вполне успешные мужчины рассказывают о том, как их женщины, под воздействиями своих животных инстинктов, крошат в щепки семьи и «сливают» годы совместной жизни.

Т.е. мужчины в большей степени ориентированы на изучение и созидание. У женщин — иная функция в целом, кардинальное отличие на уровне «прошивки».

Попадание в ловушку


Знаете, чем бы занималась добрая половина из вас, родившись в средневековье? Вы бы исследовали мир. Через военные походы, наблюдая за звездами, участвуя в покорении неизведанных вершин или еще как-то. Однако, цивилизация все уже сделала за вас — вершины покорены. В радиусе сотен километров нет ничего, что хоть как-то могло заинтересовать вас, как исследователя. Конечно, можно пойти в поход, но для большинства жителей индустриальных районов планеты это задача не простая. Да и в любом походе вы наткнетесь на мусор от жизнедеятельности человека — нас стало слишком много, мы все изучили и везде пролезли. Все стало прозрачно и откровенно скучно. Об этом неплохо сказал персонаж «Писатель» в советском фильме «Сталкер» 1979 года:

… Нет никакого Бермудского треугольника. Есть треугольник, а бэ цэ, который равен треугольнику а-прим бэ-прим цэ-прим. Вы чувствуете, какая унылая скука заключена в этом утверждении? Вот в средние века было интересно. В каждом доме жил домовой, в каждой церкви — Бог… Люди были молоды! А теперь каждый четвертый — старик. Скучно, мой ангел, ой как скучно.

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

И вот, вы остаетесь один на один со своим желанием поиска чего-то нового, стремления изучать, создавать. Реальность описана выше — она скучна и банальна, она ограничена для вас многими факторами. Но существует мир, со своими законами, многогранный и очень сложный — мир информационных технологий. Этот мир многим кажется скучным, не интересным. Но он действует как наркотик для человека, который имеет тягу к познанию. Сделав одно погружение в IT, человек делает это еще раз и еще. В конечно счете он — на крючке. Человек начинает изучать целые технологии, тратит тысячи человеко-часов сидя напротив коробки монитора, фанатично работает днями и ночами. Что это может быть, как не проявление инстинкта исследования, о котором говорил «Палеонтолог»?!

Как устроена ловушка


Конструктивно ловушка очень проста: человек начинает изучать технологию. Практикуется. Добивается успеха. Инстинктивная потребность в созидании и исследовании полностью удовлетворяется:

  • Человек изучил технологию — совершил исследование
  • Человек на базе технологии создал уникальный продукт — совершил созидание


Мой первый проект в программировании состоялся в 2002 году. Тогда я, будучи совсем молодым студентом, создал веб-сайт для группы «Гражданская оборона». За месяц кропотливой работы был написан движок на PHP 4, потом несколько недель наполнения контентом и вауля — был создан уникальный продукт, который исправно работает до сих пор. Признаться, тогда, я был на седьмом небе от полученного результата — я научился технологии и произвел вполне нужный для многих веб-сайт.

Любой язык программирования, любая технология — это бездонный океан возможностей, свой мир с определенными правилами и постулатами, с подводными камнями и нюансами. Узнав о foo () остановиться невозможно, в конечном счете нам потребуется bar (). И так далее, по нарастающей — изучив технологию A, мы понимаем, что нам её не хватает и мы изучаем технологию В, C, D. Желание познать непознанное вынуждает нас погружаться все глубже и глубже в бесконечный мир разработки. Мы тратим на это сотни часов, отдавая своё бесценное время, зачастую — свободное время, которое можно было бы потратить с куда большей пользой.

Внутри ловушки


Если программирование, разработка — это ваше хобби, то это пол беды. Если программирование — это ваша работа — это уже беда.1. Конкурентоспособность
Вы всегда должны быть на «волне». Вы всегда должны быть в курсе последних изменений в версиях языка, появлении новых стандартов. Без этого вы безбожно теряете свою цену. В отличие от других специальностей, где ГОСТы и стандарты могут не меняться десятилетиями, в IT все движется очень быстро. И будет еще быстрее и «жёстче» — программирование — относительно молодая профессия, которая вышла из рамок НИИ и стала на уровень промышленного использования относительно недавно, особенно в нашей стране.

Возникает закономерный вопрос —, а способны… Нет, не так формулирую вопрос — сможете ли вы 10, 20, 40 лет изучать технологии, что бы быть «в форме»? Даже в свободное время? Жертвовать своим свободным временем, своей семьей и общением с друзьями ради удовлетворения нужд профессии, которая диктует довольно жесткие правила игры?

Когда вам 20 лет и у вас горят глаза, когда у вас получается что-то в области разработки, это здорово. Я помню весь тот кайф от освоения новых горизонтов и еще больший кайф, когда твой проект в интернете посещают 2000 человек в сутки, а при встрече говорят тебе за него «Спасибо». Я помню тот кайф, когда я понял суть объектно-ориентированного программирования и стал играючи писать качественный объектно-ориентированный код.

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

2. Самопожертвование
В одном из недавних, простите, срачей, устроенных мной, я акцентировал своё внимание на следующей ветке дискуссии:

image

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

Увлеченность своим делом доходит до абсурда, во главу угла ставится уже не продолжение рода, наличие семьи или благосостояния, а сама технология:

image


3. Мифы
Область разработки переполнена мифами более чем полностью.

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

С моей личной точки зрения зарплата программистов должна быть ещё выше — это с учетом описанных выше двух пунктов. Дело в том, что программист настолько увлечен своей профессией, что даже в свободное время он «работает» — пишет свой open source или просто читает документацию и стандарты. Ни одна другая профессия не допускает такое самопожертвование своего времени:

  • сварщик, приходя с работы, пьет дома пиво, а не варит дома металлические конструкции
  • пожарник, приходя с работы, идет на рыбалку, а не поливает жену противопожарной пеной
  • водитель, приходя с работы, смотрит телевизор, а не крутит баранку
  • программист, приходя с работы, занимается программированием


Кстати, я не знаю ни одного коллегу-программиста, который бы имел золотые горы, о которых так часто пишут в СМИ.

Другой миф о программировании тесно связан с некими мифическими «интересными проектами», работой в Google и т.д.

Так получается, что очень многие разработчики ассоциируют себя чуть ли не с сотрудниками какого-нибудь ЦЕРНа. Не надо. Действительно уникальных людей, задающих вектор развития в глобальном масштабе — единицы, по сравнению с общей частью «клиентов», т.е. простых смертных. Задача программиста — писать код. Код вы пишите для бизнеса и под нужды бизнеса. На работу вас зовет бизнес. Бизнес занимается зарабатыванием денег. Вы в этой пищевой цепочке как и остальная часть сотрудников — «офисный планктон».

Я даже не рассматриваю в последнее время вакансии, где написаны такие слова, как «стартап», «интересный проект» и т.д. Меня раздражает это ханжество, а именно — преподносить очередной программный код как нечто уникальное, то, что изменит мир. Как правило в этих проектах довольно все стандартно.

Я работал в больших предприятиях, я знаю и вижу чем занимаются программисты — они пишут код больших корпоративных систем. В этих системах нет ничего «интересного». Это системы для взаимодействия бизнес-процессов. Интеграции со сторонними системами предприятия, получение и обработка данных, обычная рутина с зашкаливающим количеством строк кода. Мои коллеги — прекрасные профессионалы своего дела, я практически не встречал за последние 5 лет глупых людей. Но реальность такова, что все мы пишем довольно унылые вещи. Багфиксинг, разработка на существующем коде, интеграции — это все реальность. «Интересные проекты» — это миф, придуманный блоггерами и «эйчарами».

4. Люди и коллеги
Я разделяю всех программистов на «нормальных людей» и «не очень». И с уверенностью могу сказать, что в программирование попадают совсем не случайно. Недавно я прочел комментарий программиста в ютубе, где он писал следующее:

На мой взгляд, программирование это разновидность эскапизма, бегства от реальности.

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

Например, для меня всегда будет загадкой, как мужчина за 30 лет, вроде даже имеющий детей, может ездить на работу на… самокате. Я право не хочу слышать какие-то объяснения, что так удобнее/выгоднее/круче и т.д. Особенно при условии, что машину сейчас можно купить за одну зарплату программиста. С моей точки зрения мужик на самокате выглядит просто дико и отвратительно. Эдакое не наигравшееся дитё, переросток, инфантилизм в терминальной стадии. Хочется подарить ему слюнявчик и игрушечный пистолетик. Причем, подобное решение — кататься на работу на самокате будет в 99% случаев присуще именно офисному работнику с «творческой» натурой, как программист/дизайнер/верстальщик. Ни один автослесарь, сантехник или банкир не додумается ездить на работу на самокате.

Другой сотрудник, бегал на 7 этаж пешком и «заставлял» это делать всех новых сотрудников, т.к. именно он всегда пропускал их через турникеты, когда новые сотрудники ещё не имели пропусков. Т.е. на работу приходил новый человек, звонил Пете, Петя спускался и невольно заставлял нового сотрудника не пользоваться лифтом, а бежать вместе с ним на 7 этаж пешком.

Разговоры коллег в курилке меня мягко говоря огорчали. Заученные до неприличия новости про флагманские смартфоны и новости из мира Apple, но полное отсутствие интереса к другим сферами жизни, будь то политика, автомобили, оружие, бизнес или что-то еще, отличное от гаджетов. Для меня правда остается загадкой, зачем знать столько бессмысленной информации о гаджетах, ведь это по сути — бусы для папуасов.

В заключении


Я очень люблю программирование, но чем больше я погружаюсь в ту или иную технологию, тем больше приходит понимания, что »я знаю только то, что ничего не знаю». Маниакальное желание познать необъятное, удержать в голове массу информации дает о себе знать — мне все больше и больше надоедает бежать за этим ветром. Хочется остановиться.

Мне, как веб-разработчику, необходимо уметь отлично разбираться как минимум в двух-трёх языка программирования и в стандартах W3C. Я начал замечать, что разрываюсь между этими технологиями, их рост в последние годы прошел настолько интенсивно, что каждая из них уже тянет на отдельную специализацию.

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

© Habrahabr.ru