Каламбуру “хочу в айти” определенно более десяти лет. Девять лет назад ко мне на собеседование пришла девушка, которая эту фразу произнесла раз десять. При этом опыта у нее не было совсем. Мы ее взяли, но через три дня стало понятно, что человек нашему коллективу не подходит. Но Ольга (назовем ее так) все равно была провидцем и чувствовала, в какую сторону дует ветер.

Первое о чем забывают многие молодые (и не только) люди, которые хотят в отрасль – айти это не только про программирование. А вот Ольга откуда-то знала уже тогда.

Кроме самих разработчиков отрасль наполнена аналитиками, дизайнерами, архитекторами, тестировщиками, внедренцами, специалистами поддержки и многообразием менеджеров. И это далеко не все классы и виды. А разработчиков в средневзвешенной айтишной команде либо половина, либо даже меньше.

Чем программист отличается от разработчика? Я придерживаюсь следующей терминологии: если ты работаешь в НИИ или в проекте из одного-двух человек, то ты – программист. Если же кроме тебя в команде много других кодописцев, а результат является сложной распределенной системой или сервисом, то ты уже точно разработчик.

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

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

Назвать меня сторонником высшего образования точно нельзя. Но базовые курсы математической логики, алгоритмов, графов, теории игр и так далее – очень и очень пригождаются в дальнейшем. Вторая распространенная ошибка – пытаться стать разработчиком без наличия соответствующих базовых знаний. Если уж решили все поменять в своей жизни, то гораздо правильнее начать с этого фундамента. И это не обязательно несколько лет второго высшего, но и точно не просмотр одного видео “Весь джаваскрипт за 6 минут”.

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

А вот в айти такое встречается на ежедневной основе. Каждую минуту в мире где-то один джуниор-разработчик двадцати лет от роду говорит своему руководству: “Пора меня повысить до полноценного специалиста”. Каждые пятнадцать минут разработчик двадцати двух лет сообщает начальнику, что он уже полноправный senior.

Третье, на чем стоит остановить свое внимание – следующая особенность. Разработчики, молодые люди, не хотят как их родители всю жизнь простоять у одного и того же станка или прилавка. И нынешний мир предоставляет им такую возможность. Не получится на текущем месте работы – получится на следующем. Однако же, далеко не каждый senior teamlead software architect может решить те задачи, которые решать предполагается по званию. Особенно если это звание было получено через год-два после получения предыдущего, да и вообще весь карьерный путь занял три-пять лет.

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

Live fast, die young. Живи быстро, умри молодым. Если немного притянуть за уши этот лозунг к современной реальности ИТ-мира, то получается что-то типа: “Расти быстро, выгори молодым”. “Выгорание” – термин, который используется повсеместно. Это четвертый момент. На эту тему написаны сотни статей и тысячи постов. Или сотни тысяч. Если вкратце, то проблема выгорания является глобальной проблемой именно в айти. В том числе из-за третьей особенности.

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

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

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

С выгоранием всегда рядом стоят сжатые сроки. В айти сроки всегда сжаты до состояния как минимум жидкости, а то и твердого тела. Это пятая особенность.

В глазах тех, кто, допустим, строит порт (для кораблей) – есть понимание сколько времени нужно менять береговую линию. Сколько времени нужно на то, чтобы тут раскопать, а тут насыпать. Сколько времени будет строиться доки, рейды, молы, буна, шлюзы, причалы и все остальное. Сколько времени нужно, чтобы организовать таможенную и пограничную службы. Сколько времени нужно, чтобы организовать движение внутри порта. И много чего еще. Эти люди, которые строят порт, понимают, что на это нужно минимум пара лет.

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

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

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

А вот сама реализация [египетских] пирамид и ИТ-проекта отличается очень и очень сильно. Начнем с того, что пирамида, построенная на 99%, это уже готовый к использованию объект. Даже когда работы завершены на 80%, там уже можно достойно и с почестями кого-либо похоронить. Информационная система, готовая на 99,999%, может даже не показать пользователю стартовый экран. Или показать, но не авторизовывать никого. Или совершенно не выполнять свои основные функции.

Но выгорание реально, поэтому и у чувства долга есть разумные пределы. Важно не доводить его до клинической депрессии.

Для выгораний и частых смен работы есть и объективные причины, например шестая. Все то же нежелание стоять за одним станком всю жизнь. Находясь в одной команде разработчик занимается условно одними и теми же задачами все время. Один и тот же проект/продукт, одни и те же технологии. Изо дня в день. В это же самое время мир вокруг изобретает что-то новое, но большую часть из этого “нового” использовать нельзя. Потому что старый код, старые технологии это просто будут не поддерживать. А переделывать все с нуля на чем-то новом (рефакторить) это очень и очень большие трудозатраты. На которые начальство и заказчики если и согласятся, то раз в пятилетку. А что-то новое и классное из технологий появится уже через полгода. Так и приходится жить.

Что ж мы все о страданиях. Седьмой особенностью, вытекающей из нескольких предыдущих, является то, что в ИТ кандидаты диктуют свои условия рекрутерам и потенциальным нанимателям. Кроме большого (по сравнению с остальными отраслями) оклада, который должен постоянно расти, бонусов, премий, ДМСов со стоматологиями, бесплатными завтраками, обедами и ужинами, тренажерными залами, пинг-понгами, стоячими и лежачими рабочими местами в офисе, четырехдневной рабочей недели, кучи обучающих программ, кроме всего этого нужно что-то еще. Ведь это предлагают все. Поэтому нанимателям приходится постоянно изменять свои процессы, создавая сначала теплицу, потому оранжерею, потом лабораторию по поддержанию наикомфортнейших условий. А разработчик еще подумает, соизволить ли переходить или нет.

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

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

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

Но постепенно их вытесняют те, кому программирование это восьмичасовое стояние у станка за приличные деньги. А приличие денег каждый для себя определяет сам. Этим разработчикам не важны архитектурные особенности, тонкости реализации. Поимка “плавающих ошибок” (которые то есть, то нет) не доставляет им удовольствия. Им вообще лишь бы поменьше кода писать, а побольше времени проводить в творческой обстановке.

Ни один кассир, закончив рабочий день, не приходит домой, чтобы покассировать. ЛОР не будет добровольно осматривать соседей в свои нерабочие часы. Разве что под угрозами. Не знакомый лично вам таксист не подвезет вас “для души”. Разве что для “задуши” в лес – опасайтесь таких предложений. А разработчик, отсидев 8, 10, 12 часов перед монитором с черной темой IDE, приходит домой и… И занимается в целом тем же самым. Но для души. Почти все оупенсорсные проекты не приносят и копеечки своим создателям или контрибьюторам, вносящим свою лепту после создания. 

На эти и многие сопутствующие темы я написал целую книгу – “Пузыри”.

“Тебя излупят плетками и ты залюбишь меня как миленькая.”

Так не работает ни в отношении людей, ни в отношении программирования.

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

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

Но тут уж вы сами за себя.

Иван Бевуч 

Автор запустил на краудфандинговой площадке сбор средств на издание книги «Пузыри» о сфере IT. Поддержать проект и купить книгу по предзаказу можно по ссылке https://planeta.ru/campaigns/bubbles