Каминг-аут

Рыскал в поисках обсуждений «Элиты», нарыскал пару упоминаний от людей, которых знал лично и с которыми пересекался по работе, и чёт вот за живое взяло, потому что сам я на тогда происходившее смотрю иначе, как оказалось.
Есть ментальная ловушка, в которую часто попадают. Если Петя выйдет на площадь и начнёт кричать «все Пети дураки!», обязательно найдутся граждане, решившие напомнить Пете, что он сам Петя и ещё больший дурак. Кто желает, может ещё раз внимательно перечитать то эссе. В нём ни слова, ни символа о том, что я не такой. Более того, именно я и могу с полным правом писать о том, что программисты никудышние раздолбаи, ибо из всех ПОЧТИ 20 ЛЕТ (надо это ещё раз подчеркнуть, вдруг кто не заметил) не продолбал… 5 лет, пожалуй. А почти 15 лет продолбал.

Первые 2 года работы шпарил как проклятый. Первая нормальная официальная работа, да не эникейщиком, но программистом! Джуниор с горящими глазами. Обмазался книгами, журналами, весь лимит «интернета» (100MB в месяц) тратил на поиски информации. Очень плодотворное время, угар всего нового и сложного — C под MacOS.
Потом 8 лет не пойми чего. Задачи под C/C++ у нас закончились, контора в основном работала на Java, ну и я туда же. Уже не раз говорил, что народ в основном собрался на диво толковый, потому по мере сил старались делать всё правильно. Только вот оглядываюсь и вижу, что я эти годы спустил в унитаз.
Ровно та же фигня, которую тут в каждом втором тексте шваброй гоняю — набор знаний под задачи, а не под профессию. Вокруг меня были крутые специалисты, но я на работе молотил тикеты, трындел на кухне, дома пил пиво и занимался какой-то фигнёй, которую уже и не вспомню. Но не развитием.
Т.е. много делал, многому учился, работал не от звонка до звонка, но по 10..12 часов, только вот шёл туда, куда посылали. Ну а что? Всё было неплохо. Работа есть, зарплата есть, на жизнь хватало. Только вот… Ща разделитель поставлю и отдельно объясню.

Когда вы плывёте по течению, незаметно для себя теряете много очень полезного и важного. Это трудно объяснить так, чтобы стало прям ясно и понятно, потому сейчас над каждым словом хоть и десять раз подумаю, но не факт, что удачно выберу.
Во-первых, вы теряете инициативу. Всегда догоняющий, всегда принимающий. Скажем, индустрия переходит на Hibernate. Процесс виден по новостям, по журналам, по первым ласточкам в проектах вокруг. Но Hibernate вы учите тогда, когда попадаете в проект с ним, хоть давно было ясно, что рано или поздно, но это произойдёт. В сравнении с тем, кто подготовился заранее, вы проигрываете.
Во-вторых, вы не генерируете своё, не подаёте AND не реализуете идеи. Не вы обосновали переход на Spring. Не вы внедрили nginx. Не вы разработали общую библиотеку утилит. Оптимизация сборки. Maven вместо Ant. Ant вместо make. Linux вместо Windows. Всё не вы. Вы только исполнитель. Это отупляет.
В-третьих, вам становится пофиг. Год за годом вы автомат по изготовлению CRUD’ов. Локально, быть может, не пофиг. Вы вполне можете сражаться (в том числе уже и с собою) за то, чтобы делать что-то правильно, но с каждым годом это будет сложнее. Эта гниль пофигизма начнёт приводить к нездоровому отношению к фейлам. Ну да, не протестировал. Ну да, уронил сервер. Ну да, тикет не сделан. И что? Ща чай допью и сделаю. Или не сделаю.
В какой-то момент (ближе к тридцатнику) вы смотрите в закат и думаете. Ок, мне скоро 30 лет, я становлюсь игроманом и алкоголиком, мои сверстники опережают меня во всём на два корпуса, я занимаюсь программированием 10 лет, где, блин, результат? Знаете Виталия Харисова? Человек, который сидел за столом справа от меня. Я клепал CRUD’ы, а Виталя однажды встал, вышел и сделал Яндекс.Симферополь на голом месте. Обычно про такое только читаешь, а мне повезло быть свидетелем. Вот чувак. Ты у него тыришь бутерброды (реально вкусные были). У чувака две ноги, две руки и одна голова. Вот тот же чувак. Но внутри 7-этажного здания с толпой разработчиков. Всё, конечно, не так быстро произошло, но.
И вот ты опять сидишь и думаешь. У меня тоже две руки, две ноги и одна голова. Я тоже чувак. Но что со мною не так? Потрясающий по силе мотивирующий пинок. Правда, выводы я сделал лишь частично правильные.

К тому моменту череда кризисов привела к тому, что контора разваливалась. Нам снова задерживали зарплату, половина народа либо разбежалась, либо попала под сокращение, потому начал думать о переходе и я.
Тут-то и первое прямое следствие жизни по течению — с точки зрения внешнего рынка вы… ну, не нолик, но и не так уж хороши. Раз вы делали только то, что прилетало по работе… Раз вы учили только то, что надо было по работе… Вы не умеете и не знаете за рамками работы. Иначе говоря, вы не программист, но «программист ПупкинСофтваре». Таким макаром я классифицировал себя как профессионального CRUD’оклепателя с крайне фиговым знанием всего остального. Вот прям крайне фиговым. Довольно забавный типа специалиста: жру листья красиво и мощно, но только с одного вида эвкалиптов. Повторюсь, бьёт этим по башке тогда, когда эвкалипт падает. До этого момента вы считаете, что всё норм, и яростно огрызаетесь в спорах с теми, кто пытается вас сдвинуть с места.
Короче, я тогда немножко расстроился. Опять, да. Такое красивое резюме, но толку ноль. Разве что лететь в Москву в идентичные ПупкинСофтвари, да там и сдохнуть.

Но тут ангелом возникает снова Харисов (ну, Симферополь маленький город, там за любой угол заверни, или с соседкой поздороваешься, или с Виталей) и предлагает вариант ваять бекенд для фронтендеров на JavaScript. Я на почве прежнего бревнизма покочевряжился, но вовремя одумался. Так начался новый период — период Яндекса.
После вентилятора 2017 года почему-то сложилось мнение, что я не люблю Яндекс, считаю там всех плохими людьми и т.п. Обычная фигня, когда люди читают не то, что написано. Повторю для одарённых альтернативными нейронами: Яндекс меня очень многому научил, в Яндексе я встретил немало крутых людей и крутых специалистов, Яндекс хорошее место работы, если вы согласны с его обычаями и правилами, но такое согласие на любой работе требуется.
Там я сначала завёлся (и в непродолбанный срок включаю год разработки CSSO), но потом снова наступил на те же грабли, только с другой стороны огорода. Из прежнего «опыта» понял, что знаниями накачиваться надо постоянно и на системной основе. Тем и занимался. Но теперь возник человеческий фактор. Внезапно люди разные. Т.к. в Яндексе людей много, этой разности там тоже много. И после некоторой планки твой рост как специалиста невозможен, если у тебя нет наработанной позиции в отношениях с внешним миром.
Я тут не про soft skills. Больше про то, что у вас должен быть осознанный кодекс взаимодействия с людьми. Не аморфное нечто, прыгающее от настроения к настроению, но таки позиция, которая вчера, сегодня и завтра. Пусть даже идиотская и странная, но она должна быть. Без неё вас не включить в прогнозируемые планы, без неё вы тратите время своей жизни на людей, которых стоит обойти, без неё вы сами не можете понять, куда и чего вы хотите.
Так или иначе, но за 6 лет работы в Яндексе я писал на JavaScript, на Java, на Python. И снова обнаружил, что резюме всё красивее, а знаю намного меньше, чем стоило бы. Да и вообще здорово во многом разочаровался, снова сидел в персональном болоте и решил уйти. Три собеседования показали многое…
Знаете, вот хоть и ненавижу собеседования с обеих сторон, но подстёгивают они не хуже гранаты под зад. Все три были организованы отвратно. На всех трёх обнаруживалось, что собеседующим нужен человек не с теми skill’ами, что озвучивались сторонами до встречи. Уже на старте все понимали, что это ненужная встреча, но тянули унизительную резину до конца. Короче, феерично завалил. Но! Как минимум, получил отличное понимание того, как нельзя собеседовать. Как максимум, понял, что опять продолбал годы жизни.
Смотрю в закат (к тому моменту уже московский) и думаю. Так, мне 35 лет, у меня 17 лет опыта работы, но где результат? Я всё так же занимаюсь фигнёй. Всё так же не понимаю, зачем я ею занимаюсь. Всё так же мои знания и умения ооочень спорного уровня и я снова «специалист задачи X», а не специалист. Знаю много, но ничего. И я всё так же плыл по течению, хоть и энергичнее. Нервы ни к чёрту, желания так работать нет, по ряду областей ещё больше отставание.
С этого момента отсчитываю следующие (нынешние) 2 года не продолбанной рабочей жизни. С пару месяцев осмыслял, что снова сделал не так и почему снова оказался в тупике. В эту одну фразу уместились десятки часов кропотливого и крайне злого анализа. Перебирал в памяти эпизоды, мысли, решения. Читал истории других людей. Ещё внимательнее и прицельнее изучал истории тех, у кого вроде бы всё хорошо (что смешно, почти всегда это люди, которые не озвучивают «у меня всё хорошо», им нет в этом нужды).
Так не хотел продолбать ещё десяток лет жизни, что наконец-то начал всерьёз задавать себе вопросы и давать на них честные ответы. Что такое быть программистом? Что такое быть специалистом? Какой у меня уровень знаний? Кому я такой нужен? Чего я хочу? Что надо сделать, чтобы это получить? Что НЕЛЬЗЯ делать?
Тут надо ещё отметить, что я примитивный и прямолинейный. Всю метафизическую и ультрапсихологическую попсу считаю фигнёй, потому и ответы на вопросы старался давать прямые и простые. Ну т.е. если тебя годами во дворе старшие пацаны лупят, иди не на йогу и к психотерапевту, но в секцию драки арматурой, год там отжимайся, потом вломи ублюдкам, предварительно изучив УК. А до этого момента ты слабак и дрищ. Не идёшь отжиматься? Значит, тебя всё устраивает. Не устраивает? Иди отжиматься, а не ищи тысячу причин этого не делать.
Примерно в таком ключе и разложил себе всё по полочкам. После чего начал ежедневно ментально отжиматься по плану (блог, к слову, тоже инструмент этого плана). После чего однажды встал и вышел в другую жизнь, получив последнюю соломинку на хребет. Так сейчас и живу, об этих ответах на вопросы в блоге и пишу. Что характерно, наконец-то в полном согласии с собою. Не могу сказать, что ДОБИЛСЯ И ТЕПЕРЬ УСПЕШНЫЙ. Не-а. Просто раньше я продалбывал жизнь и работу, а сейчас не продалбываю. Если хочется красивого термина, пусть будет «осознанное программирование».

Таким макаром… Это блог не того, кто совершенно точно знает, как правильно. Наоборот: я точно знаю, как неправильно. Вот эти полтора десятка лет туфты сделали из меня алкоголика, который за версту чует другого алкоголика даже с закрытыми глазами. У вас просто не получится, например, сказать мне «ты неудачник и ничего не добился, и вообще дурак» так, чтобы уязвить меня сильнее, чем я сам себя лупил и луплю. Потому даже не старайтесь. Разве что сделаете это как-то совсем идиотски, чем попадёте в мою коллекцию «а вот так выглядит программист вульгарис на вольном выпасе» (голосом Дроздова).
Но в этом опыте неудач и ценность же. В своей безграничной милоте я хочу, чтобы по моим граблям прошло меньше людей. Всё равно пройдут. Но хотя бы меньше. Один из ста задумается, да и откроет учебник. Другой из другой сотни узнает в описании себя и начнёт проект. Третий из третьей сотни вдруг поймёт, что надо встать и выйти в другую дверь, а не топить себя. Своим примером они могут зацепить соседа. И вот так медленно, партизански, но у кого-то что-то станет лучше. Я мессия, да. Красивый, умный, хороший и добрый. Доставайте свои тухлые яйца, анонимусы.

Когда вам с трибуны вещают, что алкоголизм зло, что алкоголики идиоты, что с алкоголизмом надо завязывать, задумайтесь. Может, за трибуной завязавший и осознавший алкоголик, пытающийся выпинать других с этого пути, а? Вроде не такая уж и сложная концепция.
Да, писать стараюсь жёстко и злобно. Так, чтобы пробрало. Другое вас не пробирает, как не пробирало и меня. Если человек пишет говнокод, надо говорить ему именно это, сопроводив аргументацией, а не неделями танцевать вокруг дипломатический вальс, обмазывая нежностью и размышляя, как бы не обидеть. Пока вы не обижаете, у человека пройдёт жизнь в уверенности, что он всё делает правильно.
PS. Тайминг по годам округлил, чтобы не было мельтешащей детализации вроде «не 7 лет, но 6 лет и 8 месяцев». Если кто из коллег разных работ получит нестыковку в год, знайте, она там есть, это нормально. На повествование не влияет.
PPS. Умоляю, избавляйтесь от одноклеточности. Утомляет читать комментарии уровня «ааа, так автор питонист!» (человек увидел название функции из Python в одном эссе и сделал выводы) или «ааа, так у него всё плохо, раз он о плохом пишет» (божественный уровень связи) или «ааа, пичот лол кек чебурек» (этих люблю, отличная иллюстрация того, о чём пишу). Я, конечно, почти все комментарии тут одобряю, «ибо сим всякого дурость явлена будет» (Пётр I по другому поводу), но становится всё скучнее и скучнее. Вы, ежели считаете, что программист представляет собою птицу умную и гордую, представляйте же собою, а. А то чёт смешно даже, когда оппонировать эссе «Программисты кидают какахами» приходят программисты и кидают какахами. Делайте это изящнее, кароч, всем задорнее будет.

Каминг-аут: 17 комментариев

  1. Есть спорные моменты. Но в целом — согласен. Спасибо за статью. Я ее еще раз перечитаю.
    Из того, что зацепило — про догоняющего. Не чувствую уже себя на острие прогресса уже много лет.
    Но мыслей пока что делать — нет. Компания, в которой я работаю предлагает путь в Архитектора. Его и выбрал, но опять же.. это такое название от лукавого..
    Больше всего я хочу сейчас инструкции как жить :))) но понимаю, что это невозможно.

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

      • Кстати, раз вы джавист, то это еще более интересно, т.к. я тоже джавист. Кстати, на что бы вы сейчас обратили/обращаете внимание, чтобы «не отстать»? Также до кучи напишите плиз

      • Ага. Но действительно позже. Разберусь с той волной, что сейчас накрыла после «Элиты», тогда и.

    • Тоже буду ждать примеров автора, а пока могу поделиться опытом скромной веб-макаки. Я не столь опытен, как автор блога, но может кому интересно. Когда хочется не формошлепства, а чего-то эдакого, я иду на кодингейм. Самый цинк — вывести своего бота в топы в мультиплеере или контесте. Пока напишешь толкового бота, научишься многому.

  3. Спасибо, было интересно почитать про чужой опыт.
    Один довесок.
    У всех людей разная мотивация и согласно пирамиде маслоу самореализация будет выглядеть по-разному.
    Для кого-то — поступление на работу в ФБ или Амазон, для кого-то возможность больше времени проводить с семьей и на природе.

    После 20 лет в индустрии (мне 40+) понял что я прошлепываю не работу но семью. На смертном одре я не буду переживать о вращении красно-черных деревьев.

    Если не ведешь собственного бизнеса а работаешь на кого-то, то лично мое предпочтение это проводить больше времени с детьми и женой, путешествовать и смотреть мир по возможности.

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

  4. Премного благодарен, очень содержательно, прочел 2 раза, многие вещи откликаются, хотя я несколько младше, очень хотелось бы если Вы более подробно развернете следующий момент:

    «И после некоторой планки твой рост как специалиста невозможен, если у тебя нет наработанной позиции в отношениях с внешним миром.
    Я тут не про soft skills. Больше про то, что у вас должен быть осознанный кодекс взаимодействия с людьми.»

    Не совсем понимаю, что Вы подразумевали, еще раз спасибо, очень ценно.

  5. Я не очень понял с мотивацией автора.
    Объясню.
    Когда-то давно, до революции, каста программеров делилась на два класса: системные и прикладные.
    Системные писали системУ и системЫ, а прикладники, с помощью этих систем, решали проблему «последней мили» в отраслях народного хозяйства.
    А мотивация, внутренние устремления этих двух классов разные.
    Для системщика радость — это натянуть глаза на жопу на чистом си в линкусе.
    Для прикладника — автоматизировать условный отдел кадров.
    Так вот складывается очучение, что автор таки из прикладников, но канифолит себе мозг из-за того, что не пишет «на уровне ядра».

  6. Чем писать «жёстко и злобно», было бы разумно писать доброжелательно и конкретно. Потому что пока на выходе — десяток страниц пережёвывания одного и того же.

    Ну вот прочитал я эту статью. И что я должен сделать7 Сказать, что автор молодец, у него соломинка и он сам себя пинает? Ну, автор молодец, у него соломинка. Только если он молодец, зачем ему одобрение такого вот банального программиста, как я?

Добавить комментарий