Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Мой друган в очередной раз объяснял кому-то в уличной курилке, как устроен C#. Я глотнул кофе, закурил и облокотился на ограду, чтобы послушать. Он рассказывал, какие интересные тонкости нашел в сборщике мусора. Говорит, в дотнете он устроен довольно просто снаружи, но очень хитро в деталях реализации.
Я не встревал — просто слушал и мотал на ус. Было 11 утра, я только что закрыл тикет, который от меня ждали завтра, и мог весь оставшийся день слоняться по офису. Витян всегда был очень прокачанным парнем. Он контрибьютил в рослин, изучал сорцы всех инструментов, которыми пользовался, и действительно глубоко шарил в дотнете. Я знал — мне до него как до луны. Но у нас все равно почему-то были одинаковые позиции и зарплаты.
Я предложил ему глянуть на тестовое, которое шутки ради делал для одной вакансии, хотя всерьез менять работу не думал. Какой же программист не захочет посмотреть на код? Мы пошли смотреть. Я открыл главный файл с кодом, проходит секунда.
— У тебя тут течет память.
Да, я прочитал про хвостовую рекурсию, но не прочитал, что в дотнете этой оптимизации нет. Он быстро накидал мне десяток тейков, я все поправил и послал тестовое работодателю. Вспомнил, что кроме задания нужно было ещё пройти тест по английскому и кинуть им скриншот с результатами. Ноль проблем, мой хороший друг отлично знает язык — попросил его пройти, только не слишком идеально.
Мне сказали, посмотрят вечером. Свободного времени было море, но разработчик всегда найдет, чем себя занять. Я предложил самому громадному коллеге поспорить, кто сожрет больше пиццы. Проигравший платит по счетам. Когда получаешь смешные деньги, которых все равно ни на что не хватает, их не особо и жалко проигрывать. Все расходы взрослого человека я перекладывал на своих родителей, а сам прожирал зарплату в офисе или с женой — наконец-то я хоть что-то зарабатываю, могу вот так запросто заказать себе три пиццы! Остаток дня я сидел, как тюлень, переключал жирными пальцами видосы — один нелепее другого.
Дома ждал сюрприз — тестовое зашло. Написали, что хороший код, назначили интервью. Я капец обосрался — какое ещё интервью на синьора, мой бог, они же меня размажут. Я джун, которого из вежливости называют мидлом. Ничего толком делать и не умею. Но думаю — вот когда дорасту, собесы тоже будут, а сейчас я хотя бы узнаю, что вообще требуется. Посмотрю, как это происходит.
Сначала они спросили про мой опыт. Я рассказал про текущую работу, здорово приукрасил стаж и свой вклад. Ну а чего такого — они же меня все равно не возьмут, а так хоть собес подольше продлится.
Первые несколько технических вопросов были легкие — отличие значимых типов от ссылочных, типы данных в сишарпе, базовое ооп, паттерны проектирования. В моей компании были внутренние экзамены, и я был обучен как обезьянка отвечать на такие вопросы. Солид принципы — я не понимал их тогда, не особо понимаю и сейчас — но смог что-то промычать в ответ, расшифровать аббревиатуру, и налить воды в стиле: «дублирование кода это плохо, наследование надо применять вдумчиво, файлики с кодом должны быть маленькими».
Я почувствовал — скрининг кончился, сейчас пойдут серьезные вещи, и мне конец.
— Филипп, можете рассказать про сборку мусора в дотнете?
О, ещё как мог. Мои новичковые мозги мало что понимают, но у меня хорошая память, и рассказ из курилки я помнил почти слово в слово. Где-то на середине я понял — интервьюер досюда уже и сам не знает, как оно работает. Отлично. Закончил рассказ, и, чувствуя инициативу, стал рассказывать про F#. На моей работе часто приходилось ждать вечных билдов, и иногда я реально самообразовывался. F# мужик тоже не знал, поэтому просто слушал. Я закончил, и мне сказали, что я подхожу.
Что? ЧТО?
— Филипп, у вас не указана ожидаемая зарплата в резюме, мы готовы предложить ТРИ ТЫСЯЧИ ДОЛЛАРОВ.
Я выпалил «согласен» быстрее, чем успел посчитать, во сколько раз это больше моей текущей зп. Закрыл скайп, посчитал. И охренел. Это что получается — теперь я удаленщик, синьор и богач? То есть, это я могу сейчас пойти, выкинуть свою четверку, взять себе мерс в кредит и разъезжать по своему полудеревнскому городу? Да. Получается, что все мои бывшие коллеги — тупицы, а я нашел путь.
Я победил, решил все свои проблемы и состоялся как человек, потому что полушутя получужими руками сделал тестовое, и запомнил монолог в курилке? Да.
Я по-быстрому свинтил со старой работы, оборудовал себе дома рабочее место, и стал привыкать к своей новой роли. Мне самому не очень-то верилось, что все так круто изменилось, и казалось, что надо срочно начинать вести себя по-другому. С этого момента все, что я говорил, начиналось со слов «Как человек, который получает $3k, я считаю...».
Я оповестил всех, кого только мог. Запомните, Фил — умный и успешный парень. Я стал раздавать всем советы, потому что теперь только я один понимал, как устроена жизнь. Я обучил своего младшего кузена, что в школе хорошо учатся только идиоты. Вот я не учился, и все у меня круто — надо быть как я.
Сначала я ясно понимал, что получил работу случайно. Но задачи не оказались рокет саенсом, и я понимал как их решать. Не хотел, но понимал. Когда получил деньги первый раз, кажется, я окончательно утратил связь с реальностью. И действительно уверовал, что я стал профессионалом экстра-класса. На той работе использовались довольно старые технологии, и я быстро решил, что такому крутому парню как я не по рангу возиться в этом дерьме. Я послал их к черту, и провернул тот же трюк с другой работой — чуть получше — уже свято веря, что я ее действительно достоин. А потом ещё с одной. И ещё.
Везде меня спокойно апрувили на синьора/ведущего, везде я мог выполнять задачи где-то на грани, когда тебе ещё не пишут, что с тобой надо серьезно поговорить, но уже собираются. И я легко это себе объяснял — задачи неинтересные, я не хочу их делать. Тупой бизнес меня торопит, потому что ему насрать на качество. Процессы сломаны, я один понимаю, как все должно работать — но говорить им не буду. Это не моя война. Поищу пока нормальную работу.
Но «нормальной» работы все не было. На каждой из своих работ, кроме самой первой, офисной, я под конец жутко выгорал особо ничего не делая. Я не знаю, что было бы, если бы я честно фигачил как мог свои восемь часов в день. Мне нравится программировать, но я иногда неделю не мог заставить себя сесть за комп. Работа была пыткой, потому что мне было мало просто нафигачить код и закрыть тикет. Я подсознательно боялся, что если сделаю что-то не так — они все поймут. Меня пару раз увольняли с работы, но ни разу из-за низкого качества кода. Потому что я реально неделю мог делать всплывающее окно. Лишь бы все было идеально на моем уровне понимания.
Я получал приличные деньги, у меня был удобный график, и работа, которую легко сделать интересной при желании, но я был глубоко несчастлив. И винил в этом болванов, которые окружали меня. Раз у меня не получается работать, выдавать хороший перфоманс, и быть счастливым — значит мир вокруг не правильный. А эти гаденыши своими улыбками только усиливают неправильность. Меня стало тошнить от любого человека из индустрии, который затирал что-то про успех, командную работу, значение продукта и все в таком духе.
Я был несчастлив, зол и надмененн. Я расхаживал как напыщенный павлин и поучал всех вокруг — делайте так, а не вот так. Используйте свою тупую голову. Глупцы, не вздумайте улыбаться, эта индустрия — гниющая помойка. Голанг ваш — говно собачье. Пхп мусор. Джависты застряли в прошлом. ООП — для идиотов. C#, который меня кормит — смешная поделка, только отбитый дебил будет использовать его для серьезного проекта.
Когда реальность вокруг тебя рассчитана на то, что ты умный, а ты на самом деле тупой — ты начинаешь притворяться умным. А что бы другой человек поверил, что ты умнее, проще всего доказать ему, что это он тупой. Чем я и занимался. Причем я подсознательно понимал, с чем это связано, но это только усиливало ощущение, что мне здесь не место. А это ощущение усиливало злобу.
Неделю назад мы с друганом бухали по скайпу, как всегда проходились по дебильной индустрии, в которой всё не так, как нужно. Зашла речь про типы и IoC контейнеры — и Паша говорит
— А я тут кстати интересный фреймворк пишу для .net core, у меня инверсия зависимостей реализована на порядок удобней, чем родная.
Паша пошарил экран, и следующие четыре часа я наблюдал, как выглядит офигенная система, которую я никогда бы не додумался построить — а если бы и додумался, то точно бы не построил; как выглядит разработчик, которым я никогда не буду. И какая, мать твою, гигантская разница между выпендрежным ивановским дурачком и настоящим синьором с 10+ опыта.
Фреймворк, на мой дилетантский взгляд, очень крутой. Я бы рассказал, в чем именно, и как сделано, но, во-первых, Пашок хочет сделать это сам, а во-вторых, я недостаточно интеллектуален для этого. Я похвалил его работу, повосхищался зацепившими меня деталями, сбросил звонок. И сел охреневать. Гаденыш в сто раз круче меня.
Он синьор, я синьор, у нас одинаковая зп. Я даже поувесистей его буду на рынке — статьи делают свое дело — но боги, сколько же всего он знает. И умеет, блин, этим пользоваться.
Это не первый раз, когда я встречаю более знающих кодеров, но я всегда говорил себе: «Эти остолопы заучивают доку, а вот я умею думать. Я изучу все что нужно, главное, что и учиться, и анализировать я умею». Размытая фраза «Умею думать» всегда была моей визитной карточкой. Этот скилл объективно не проверить, поэтому все кто меня знает делились на тех, кто верит, и тех, кто нет. Вторых я записывал в тупиц.
Но Пашок-то на деле продемонстрировал — думать он умеет лучше. И знает он больше.
Я вспомнил, как люди восхитились моей реализацией тестового на том первом собесе. Зашел в репозиторий утешить себя — а там джуновский говнокод. Очень, очень плохой. Похоже, тестовое они использовали, просто чтобы понять, а программист ли я вообще. Само собеседование я сумел выволочь, потому что от природы неплох в риторике. Я умею направить беседу, куда мне нужно. А собеседующий видимо справедливо считал, что джуны на такую вакансию просто не придут.
Но когда меня заапрувили, я почти мгновенно уверовал — тут все по делу. Я теперь синьор.
Мой друг-журналист постоянно затирает мне, якобы мы — разработчики — любую непонятную ситуацию закрываем заглушкой, которую называем объективностью. А потом сами верим, что победили так хаос и все упорядочили.
Вот мы четко обозначили, на какие грейды делить людей и по каким-критериям куда кого записывать. Отряхнули руки, взглянули и решили — проблемы больше нет. А теперь вспомните, сколько желторотой мелюзги называет себя синьорами. Они пришли на свои галеры, их там пару лет погоняли тасками для шестерок, а потом — чтобы вылечить пацанам выгорание — торжественно повысили до нового слова, чтобы не убегали на соседнюю галеру (где их этим словом давно заманивали).
Но вот мелюзга встречает в интернете ворчунов, которые не верят в его синьорство и хотят поставить на место, и думает — «это их субъективные оценки. Объективно я синьор, раз меня им назначили, дали таски и заплатили большие деньги».
Они — не то чтобы проблема. Так, маленькая заноза в заднице, повод настоящим инженерам поворчать. Они просто поверили в систему, которая дает им приятный статус, и никому не навредили. Проблема — это я. Я заставил систему поверить в себя, хотя сам знаю, что до статуса синьора, до синьорских денег и задач мне еще ползти и ползти. Но раз система поверила и так, значит никуда ползти уже не надо.
Ненавижу выводы — но они есть. Этот сраный трехступенчатый грейд должен отправиться на помойку уже вчера. Будь сейчас общепринятая система грейдов из пятнадцати — 90% чуваков в индустри не дотянули бы и до четвертой ступени. Байки, что Россия такая крутая, «ведь только здесь можно стать супер-гипер-пупер-лидом до 30 лет» — тоже на помойку.
Вот когда под словом синьор из коробки будут представлять не мелкого бородача в ярком свитере, а злого дядьку лет сорока — вот тогда и поговорим. А сейчас, мои уважаемые друзья синьоры, давайте признаемся, что настоящих синьорских тасок мы и в глаза не видели, дружно возьмемся за руки и пойдем к чёрту.
Мой подкаст