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