Глава 32. О техническом собеседовании

Столько мифов, столько мифов. Мне всегда было интересно, почему спичи о том как пройти техническое собеседование — в основном рассказывают рекрутеры и разного типа HRы. Я еще понимаю, когда рекрутеры рассказывают как пройти прескрининг с именно рекрутером, но ведь технические интервью — это ж прям интимный процесс между соискателем и технической стороны работодателя. А при всем уважении к рекрутерам, в технологиях они имеют скорее базовое представление, чем понимание что нужно знать.

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

На моей памяти — ни один кандидат полностью не подходил под вакансию. Да и никто и не ждет, что вакансия будет 100% презентацией необходимого человека. Она скорее направление, в котором будет идти диалог (и то, перспектива туманная). Все вакансии, они как бы выражают ту боль, и те страдания, через которые проходила организация. Ну, и чем больше технологий требуется, тем больший ад твориться в репозиториях организации. Но это так, лирическое отступление. Вряд ли существует человек, который проходил те муки творчества, которые происходили в IT отделе любой организации. Потому ожидают, что человека скорее всего надо будет подучить. Подучить кончено же, у всех происходит по-разному: кто через буткампы, кто болью и страданиями.

Чем больше организация, тем более туманные требования для кандидата. Ну а че гонять человека по .NET, если .NET заберет 20 процентов времени, а все остальное — микс технологий + практически требования творческой само инициативы. Ну, круто же, если у вас будет в организации человек, который глянет на ваш .NET домик, и скажет:

— Епрстмикросоверисы, паттерны, деплоймент, давайте Go присобачим.

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

Но, всегда можно к нему подготовиться лучше. Когда я работал на Эпам, приезжал Виктор Дворкин (серый кардинал всея Эпам). Невероятно умный мужик, которого слушать было одно удовольствие. Так вот, он когда-то сказал классную фразу: «Везет только подготовленным спортсменам». Итак, %username%, давай я тебе расскажу как готовиться к собеседованию старый волк, технические знания которого далеки от совершенства.

1. Узнай кто будет тебя собеседовать. Если рекрутер этого не сообщил — спроси. Тем самым даже от рекрутера, ты получишь дополнительные балы, пушо волнуешься, и вообще готовишься.

2. Найди информацию про тех кто тебя собеседует. Ты удивишься, какой офигенный цифровой фингерпринт человек оставляет после себя в интернете. Твиттер, фейсбук, блог. Блог — это вообще чудесно. Технический блог — ты нашел подкову от мамонта.

Поверь, если ты знаешь, чем увлекается человек, который будет тебя собеседовать, ты уже практически прошел интервью:) Это как начать встречаться с девушкой, и она сразу тебе выдает базовый набор инструкций, которые с ней идут, аля:

1. Люблю цветы с большим бутоном, не желтые. Гвоздики терпеть не могу.
2. Шоколад только черный, содержание какао-зерен не ниже 85 процентов.
3. Эрогенная зона — ключицы.
4. Следующая ожидаемая дата дня беспричинного гнева — 21 октября.

И все, ты знаешь как спокойно жить, что дарить, с какой стороны подходить. Так и с интервьювером — знай его интересы.

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

В конечном счете, у вас на интервью не более 45 минут, со смолтоком и представлением твоего опыта. Твоя цель — оставить о себе хорошее впечатление. Если у вас с интервювером общие интересы — плюсик ты заработал.

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

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

Ну и финальное — к любому собеседованию надо готовиться. Просто готовиться можно или брутфорсом, или с оптимизациями. В целом, хорошо конечно знать много, но, поверь уж %username%, какой бы ты умный не был, тебя всегда можно загнать на собеседовании, если захотеть. Просто потому что, мнения есть разные, подходы тоже. Возможно ты читал не те же блоги, которые читал твой интервьювером.

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

#Сказочнофриланс 1

Ок. Я обещал писать про фриланс, и неделю я вынашивал идею как же все это описать. Чисто с академической точки зрения — я достаточно говняный лектор и учитель. Но. Как мне кажется я умею рассказывать истории. Потому, топики будут с историями, и уроками которые я для себя вынес. Как обычно, весь этот поток информации — это именно мои мысли, и мои размышления, ни коим образом не являются единственной истиной. У очень многих совершенно другой опыт + прошу заметить, что фриланс никогда не был единственным источником моих доходов. Ну и да: конечно же все истории вымышленные и созданы ради лайков.
======================================
Итак, где-где, а в Тайланде стоит писать о фрилансе. Тем более, что город и острова вокруг просто заполнены любителями по-серфить утром, поработать днем, покутить вечером. Ну и дзен поискать, куда уж без него.
Для меня фриланс начался после увольнения с первой компании, в которой я работал, с мыслью — я открою свою компанию, с блекджеком, и котом. Ну а че — я ж все знаю. Естественно, в своих мечтах я уже купался в деньгах, и нанимал десятки людей в день. Первое что я сделал, это пошел сделал долларовую карточку в Приватбанке. Cut a long story short — на эту карту не пришло не единого доллара.
Почему? Боги, я решил зарегестрироваться на Odesk ( теперешний Upwork ), freelance, elance, rentacoder … Это было самым легким. Я заполнил тысячи форм, прошел десятки тестов, и всюду подтверждал что я реальный человек. Что ж, пришла пора бидиться. Вот уж где реальность дает поджопник — прорваться через пучек индусов по 2 доллара в час было просто невозможно.
Потом я получил офер от компании SoftServe, и как-то отлегло:) Тем более для студента, сразу начать получать не хилую зарплату. Тогда это совершенно удовлетворило мое желание душа из денег:)
Собственно, к фрилансу я вернулся слушая своих коллег, которые рассказывали как можно заработать дополнительную копеечку, потому как денег всегда мало. Тогда я в серьез задумался насчет фриланса, но честно говоря, просто ради фриланса. Как площадку для себя я выбрал rentacoder ( потом ее переименуют в vworker, а потом ее купит freelance.com ), потому как она предполагала fixedprice проекты, без установки таймера ( на odesk такое было редкостью ), и там не было столько индусов как на freelance. Сейчас я не буду останавливаться на том, что такое рейтинг и как его добывать. Это материал другой кул стори. В целом, на нем я и остановился, и как и каждый фрилансер, немного побалывался odesk.
Сам фриланс у меня был волнообразный: я то набирал вагон проектов, то не брал ничего, и работал только на основной работе.
Самый длительный мой заказ, что удивительно пришел с LinkedIn, где меня наняла на удаленный проект киевская компания, и на ней фриланс проект я брал ради опыта в одной из технологий.
В конце-концов я перешел на площадку toptal, где в определенные моменты беру проекты.
За это время на фрилансе, я успел подучить несколько технологий, заработать определенное количество денег, сколотить команду, распустить команду, разочароваться, меня кинули несколько раз, построить крутые проекты, и перелопатить тонну говна. Прийти и уйти во фриланс несколько раз.
Потому, как вывод, хотел бы сказать, что каждый кто задумается о фрилансе, должен ответить для себя на кой черт он ему сдался:
1. Если вы хотите открыть компанию. Серьезно, очень много компаний начались с поиска проектов на odesk/upwork, freelance, ватевер другая биржа. ( алгоритм открытия компании мы обсудим). Например upwork предлагает вам зарегестрироваться как компании, показывать какие у вас сотрудники, и давать возможность зеленым жунам называться lead technology expert. Убирая моральную составляющую — можно сказать, что это работает. Конечно, это стартовая точка вашей компании, но в целом — очень даже отличный выбор.
2. Заработать дополнительную копейку. На фрилансе можно зарабаывать. Можно даже очень не хило. К примеру, на фрилансе у меня рейт больше чем в компании, в которой я на данный момент работаю. В целом, фриланс в даном случае для меня — возможность заработать на шальные расходы — типа захотел ололо ноутбук — купил. Ну или удобная подушка из денег, из которой можно выцеплять на spotify/netflix/wordpress. Капает, и ты себе этого особо не видишь.
3. Новая технология. Любую технологию можно выучить только практикуясь. Для меня это основная причина того, что я занимаюсь фрилансом. Не всегда на основной работе я занимаюсь тем, чем бы в идеале я бы хотел заниматься. Фриланс позволяет мне найти такую работу, за которую еще будут платить, как приятный бонус.
4. Уйти на 100% в фриланс. Вариант. Работаешь где хочешь, когда хочешь, с кем хочешь. Тут есть как тысяча плюсов, так и уйма минусов. Это мы тоже обсудим дальше. В любом случае, я знаю очень много людей, которые этим промышляют. Честно признаться, профессиональная деформация присутствует.
Каждый должен ответить себе — или ему нужен фриланс. Я для себя причины нашел, чего и вам желаю.

Глава 31. Об идее

Ты не знаешь когда тебя настигнет эта мысль. Ты можешь с ней проснуться. Ты можешь идти домой, и вдруг почувствовать энергию, которой достаточно для того чтоб передвинуть поезд. Ты уже видишь свое будущее в котором ни одной тучки. Да, это тот момент, в который к тебе пришла идея — «Я запилю свой продукт!». Продукт может быть чем угодно — это и мобильное приложение, и свой крутой SaaS сервис, да в конце — концов стандартная (в твоей голове она далеко не стандартная) сервисная компания, читай галера.

Ты готов. Ты все знаешь. Ты просто не представляешь что может не получится, ведь мама с детства тебе говорила что ты самый умный. Решение принято, и вот ты сейчас сядешь — и начнешь творить свой шедевр.

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

Если ты описал слишком много — сидишь и думаешь с какой стороны приступить. В голову приходят мысли типа MVP, fail fast, и другие заморские рекомендации как обосраться, но с умом. И фичи выбрасывать жалко — вроде как Папа Карло рубящий нос Буратине. Но и понимаешь, что дофига. И откладываешь этот вопрос на завтра. В любой непонятной ситуации — ложись спать. Авось решение приснится, Менделееву же приснилось.

Если мыслей много — ты не знаешь как их описать, и какую стоит писать. И начинаешь строить дерево идей, с надеждой что когда распишешь — они как то сойдутся, синергия, все дела. А вот фиг. Когда дерево твоих идей начинает разворачиваться, и приходит вот вроде бы к точке объединения — фиг. Кентавр получился — в ресторан не сводит, и срет как конь. И есть у тебя два не похожих продукта, которые вроде как должны были быть одним. А как выбрать какой? Родители ж не говорят, кого из двух близнецов они любят больше.
И что? Правильно — ложишься спать, и вот та тема с Менделеевым.

Перед сном ты все еще думаешь о том, как круто, что ты наконец решился пойти в свободное плаванье, как твой продукт поменяет мир, и пока еще очень аккуратно пробуешь лейбочку CEO возле своего имени.

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

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

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

А дальше оно чаще всего не идет. Вот то, что вы видите насчет кучи провалившихся стартапов — это стартап который смог родиться. Уже огого какой прогресс. Я искренне уверен, что стартапы запускать только инженеры просто не должны. Инженер — он больше заинтересован в решении проблемы, в доказательстве теории, в борьбе с тем, что не работает. Главное — решить задачу. Не продать задачу. Не сделать ее красивой. А именно решить. Потому как родился инженером — паяй. Продают пускай другие. Ищут других инженеров тоже другие. Ну и вообще, заниматься надо тем — что нравится.

Так и живем, с кучей файликов где описаны идеи, иногда бизнес планы, и огромным количеством сделанных прототипов. Найдите свою команду.

P.S: да-да, потихоньку продолжаем:)

Глава 1. Про програмістів

Я завжди вважав, що краще за все починати книгу з тих речей які ти краще за все знаєшь і розумієш. Але що перше бачить звичайна людина коли чує «IT»? Зазвичай, перш за все ми бачимо таких орлів в окулярах, які просіжують свою п’яту точку цілими днями перед компьютером, дивлячись в монітор виглядуючи в блимаючих символах картинки, як Танк з «Матриця». А як сів писати, то зрозумів, що описати постать программіста надзвичайно складно.

Ось, для людини, яка, наприклад, не працює сантехніком дуже легко описати усіх сантехніків світу: іноді пиячить, доброзичливий, знає дуже багато історій, не дуже охайний, і зовсім нікого і нічого не боїться. Тай це, певно, була одна з найперших професій, кіно про яку багато хто з нас знайшов в батьків на касеті.

Або ж поговоримо про водієв таксі: це люди з найкраще розвинутими аналітичними здібностями, політики від Бога, прекрасно водять машину, мають унікальну можливіть виживати в умовах повністю відсутнього комфорту і курити все що випускає дим.

Але, швидше за все і серед сантехніків, і серед таксистів є велика кількість людей, які захоплюються мистецтвом, архітектурою чи плетінням макраме. А ще вони можуть бути дуже адекватними, не пити, прибирати в своїй машині і не розмірковувати про політику (ладно, тут перегнув, зізнаюся).

Найпростіше сказати — програмісти, вони як таксисти, або сантехніки. Ось тільки в комп’ютері цілий день колупаються. Що унікального? Так зовсім нічого. Крім величезної кількості міфів навколо цієї професії. Ні, серйозно, ось тільки останнім часом, особливо у нас в країні, виникло фактів:
* IT сфера приносить 3 відсотки ВВП країни
* На тендітних плечах програмістів — до майбутнього країни!
* Тільки баги зупинять нас!

Ну ось ви чули, щоб стільки уваги звертали до представників більш скромних професій? Там, до операторів ткацького верстата, або ж керівникам дитячих хорів.

Що цікаво, IT сфера, вона ж не складається тільки з програмістів! Є ще тестувальники, дизайнери, проектні менеджера, бізнес аналітики, архітектори, і ще безліч професій, про які самі програмісти не завжди здогадуються. Обличчям ж IT вибрали чомусь нас — програмістів. Варто зауважити, що самі програмісти не дуже полюбляють, коли їх називають програмістами, їм все ж ближче звання — інженер. І не дай Бог вам назвати програміста — кодером. Цим ви покажете, що зовсім не поважаєте його роботу, знання, і навіть його руки злегка кривуваті.

Якось так вже вийшло, що тисячі програмістів нашої країни раптово перетворилися з «Чого ти цілий день там в комп’ютері сидиш, йди вже з хлопцями погуляй!» В предмет заздрості до професії у тих ж самих хлопців. Будь-яке планування, прийняття рішення або ж просто розмова про ціни в магазині дуже часто закінчується зітханням із словами: «А, ти ж айтішник, у тебе то все простіше!».

І насправді, сидять такі програмісти, оповиті міфами як боги скандинавські, і по-чесному живуть в своєму світі, якому рідко відомі проблеми простих смертних. Суть проста — у більшості зарплати прив’язані до курсу долара, тому, коли у нас в країні курс долара збільшився в три рази, більшість подумало: «О, круто! Тепер в три рази більше гривень ». І ніхто особливо зростання цін не помітив. Скорішь, навіть не так — помітили, поплакалися, але для кишені це не стало випробуванням, як для представників професій, зарплата яких до долара прив’язана хіба що купівлею доларів якщо щось залишилось.

Жінки чомусь вважають, що програмісти загалом чоловіки. Хоч це і не так, тому, як і зараз, і навіть 50 — 70 років тому жінок-програмістів вистачало, і програмували вони не гірше ніж чоловіки. З часом навіть була написана стаття про одруження на програмістах. При чому, від жінки з IT. Так ось, там програмісти оцінюються з точки зору зовнішності і наскільки гарні вони в ліжку, в розріхі технологій якими вони заробляють на життя. З тією швидкістю, з якою в нашій сфері з’являються технології, боюся, що блогерша може стертися, намагаючись тримати свою базу даних в оновленому стані.

Але навіть з такою славою, ми знаходимося далеко не на першому місці в топі жіночих фантазій. Дружина юриста, артиста, фінансиста або депутата звучить набагато ефектніше, ніж дружина програміста. Тому в рейтингу найзавидніших наречених ми посідаємо шикарне місце десь між вантажником і «головне, щоб не пив». Про жінок ми поговоримо пізніше, відразу після глави про котів.

Що добре в світі програмістів — так це те, що в нас ще не вмерла романтика вибору професії. Можливо, тому що сфера молода, а можливо, ми цей романтизм утримуємо і не дамо йому померти. Ми справді віримо, що люди повинні вибирати професію програміста тільки за покликом серця. Звичайно, в професії дуже багато людей, які туди потрапили, не тому що їм дуже цікаво цілий день сидіти біля монітора, длубаючись в хитросплетінні покажчиків на ту чи іншу область пам’яті або гризучи ненависний CSS. Є люди, які прийшли сюди тому що батьки сказали, чи вони захотіли трохи більше грошей, ніж вони б отримували, працюючи в іншому місці. Це їхня справа, і вони можливо полюблять цю професію, а можливо і ні. І це не робить їх поганими професіоналами, іноді прагматичний і холоднокровний підхід набагато краще, ніж божевільні ідеї IT-романтика. Але все ж, в світі IT дуже багато людей, які дійсно вважають IT справою всього свого життя, і вони дійсно не ходять на роботу. Вони ходять в місце, де тепло, безкоштовний чай і не смачна кава, і величезна кількість людей, які так само, як і вони, не прийшли на роботу. Вони так живуть, вони дійсно переживають за проект, на якому вони працюють, як за власний. Вони готові сидіти довше і приходити раніше, тільки щоб спринт закінчився вчасно, і щоб все заплановане працювало. І по дорозі додому, швидше за все, вони не думають про те, що ж з’їсти, а думають про те як ж прискорити цей шматок коду, тому що екран мерехтить. Багато разів в моєму житті мені снилося вирішення проблеми, над якою я бився тиждень. Одного разу мені навіть наснилось, як я вирішую цю проблему, тому прокинувшись з почуттям виконаного обов’язку, я перше, що зробив на роботі, закрив баг в тест трекінг системі і звичайно в результаті отримав наганяй від нашого тестувальника.

І не треба мені ось тикати, що програмісти скиглії, трактори заводять, що не патріоти, і взагалі — розкуркулювати їх пора (тру сторі виникла в одному з діалогів) — про це все ми поговоримо. А поки — спасибі, що подужали першу главу. Далі я й сам не впевнений як воно піде, але будемо бачити:)

Глава 30. О написании книги

 

Привет, читатель. Знаешь, читатель, очень круто было бы узнать, что есть люди, которые прочитали все главы. Сегодня я решил закончить первую редакцию книги, которая пока еще не имеет названия. Мне кажется «Unnamed Book 1» — прекрасное название. Потому с этим названием и поплывем.

Читать далее

Отряд Самоубийц

В пятницу посмотрел этот фильм, и вышел с него с настолько отличным настроением, что честно говоря был сильно удивлен. Обычно мне не нравятся фильмы DC. Но, конечно же, самым продаваемым в фильме был образ Харли Квинн, и конечно же трейлер под «Bohemian Rhapsody». Такое ощущение, что эта музыка вообще была написани именно под этот фильм:)

Дальше спойлеры!  Читать далее

Глава 29. О Джаваскриптизерах

(читать попивая виски и грустно куря сигарету)

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

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

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

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

Понимаете нелепость ситуации? Только что, вы приблизительно час говорили с человеком о том, как построить крутой процесс, как писать классный код, что такое хорошая архитектура. Вы сходитесь по взглядам по всем пунктам с этим человеком. Ты видишь сколько знает этот технарь, и думаешь, что наверное круто было бы поработать с ним на одном проекте. А вот когда дело дошло до реального кода — как будто биотуалет очищаешь.

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

Ну и да, почему джаваскриптизеры. В каждом языке есть конструкции, которые непонятно почему вообще существуют. Есть целые блоги посвященные глупостям, которые можно написать на этих технологиях. Но только во время интревью связанному с позициями JavaScript программиста, тебя могут интервьювать полностью такими вот идиотскими заданиями. Не на логику. Не на алгоритмы. А просто идиотским кодом. Однажды я спросил — зачем вы мне вообще такой код показываете? На что я получил ответ, который все никак не уходит у меня из головы: «Знаешь, у нас в коммьюнити есть такие особые люди. Они не любят делать все стандартным путем. Это просто. Они ищут изощрённые решения, и называют их красивыми. Так вот, в таком надо разбираться, чтоб никогда так не делать.». Понимаете? Если б мне не показали такой код, я б вообще не догадался что так возможно писать. А тут, мне показывают как можно, но чтоб нельзя.

Когда—то, известный комик, Павел Воля в одном из своих выступлений сказал: «Простите Владимир Владимирович. Мы — рукожопы.». Иногда я думаю, что нам, JavaScript программистам стоит встать, и всему IT сообществу сказать: «Ребят, у нас тут своя атмосфера. Мы — рукожопы». Просто, потому что заставляем людей разбираться в коде, который никто и никогда не хотел бы написать. А то реально стыдно.

Глава 28. О тайной жизни проектов

Вот бывает так, что есть в компании проекты, которыми гордятся все. Топ менеджмент хвалит, на конференциях рассказывают, постоянно в корпоративных рассылках присутствует пару слов про новости этого проекта. Да черт побери, даже уборщицы на кухне при имени этого проекта, как то вытягиваются. Что уж говорить про людей которые работают на этом проекте — это звезды местного разлива. Ты можешь не говорить свой уровень, любимую технологию, ничего — ты просто говоришь: «Я с проекта ХХХ». В принципе, ты можешь даже этого не говорить, потому как только ты зашел на кухню, все уже это знали. Ты — звезда локального масштаба, вроде деревенской гадалки. Ты когда на кухню заходишь, где то тихонько включается AC/DC, а за тобой взрывается вертолет. Этого никто не видит, но все чуствуют.

Но всякое случается, и иногда даже на таких звездных проектах случаются проблемы. И туда заходят люди со стороны. Да даже если не проблема — просто приходит новый человек в команду. Как новичок, который туда сейчас зайдет — ты искренне переживаешь. С завтрашнего дня, ты будешь на один шаг ближе к святому. Ты прикоснёшься к этой священной корове, и если повезет, даже напишешь кусочек кода, который меняет направление в котором двигается ЧЕЛОВЕЧЕСТВО. Ты даже причесываешься перед первым днем на проекте, отобрав расческу у кота.

В начале это кажется розыгрышем. Особенно первый раз когда ты споткнулся о костыль, который падая завалил другой костыль. И тебя завалило костылями с верхней полки. Как так? Они говорили последние технологии. Они же говорили гибкий подход. Они же говорили инновационное решение. И ты понимаешь, что из самых новых технологий — это книжка по этой самой новой технологии, которая придерживает окно на проветривании, потому как кондиционер сломался давно, а воздух нужен. Что гибкий подход — это всеми любимый ХХП. А инновационное решение — это горстка индусов, которые на каменных плиточках выбивают текст маленькими микроскопиками. В общем, ты опять сталкиваешься с правдой жизни, которая втаптывает тебя в землю. И понимаешь, что маркетинг сила. Что самое грустное, люди которые делают решение — понимают, что все взявшись за руки, под песенку идут к обрыву. А вот менеджмент, который за проект отчитывается иногда даже искренне верит что все хорошо, хоть и знает про проблемы. Выходить забавная ситуаций:

1. Технари знают что вот—вот и наступит ад.
2. Менеджмент знает что вот—вот и наступит ад, но продолжает получать лучи славы, и никому не говорят.
3. Топ—менеджмент не знает что внутри ад, и всем рассказывают что все просто прекрасно.

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

Но взрыв не происходит. Добавляют костылей, смотрят куда это все катится, откатывают, молятся. Этот ужасающий механизм как—то живет, пока наконец масштабы проблемы не доходят до менеджмента, а дальше на уровень выше, и все начинают понимать, что под «My Heart Will Go On» мы достигаем дна. Начинает это подозревать и клиент. И тут включаются все самые могучие манипуляторы, экстрасенсы и гипнотизеры, с целью: продать заказчику перепись проекта. И продают! И рекламируют дальше то, что мы пишем вторую версию этого супер—проекта, для супер заказчика, с супер технологиями. Команда вся в восторге: мы можем начать все заново! Теперь уж точно будем писать как в книжке: с тестами, код ревью, и даже красной лампочкой заваленного билда. Люди не с проекта думают: «Вот это команда, вот это профессионалы! Заказчик доверяет им аж второй проект уже!». В результате звезды остаются звездами, все расслабляют булки, и мы начинаем писать очередной раз то же самое. Только у индусов теперь не микроскопики, а махонькие центрифуженьки. И жизнь продолжается.

Очень часто, то что знают люди о проекте которые его не разрабатывают, и не стыкаются каждый день с проблемами этого проекта, может сильно отличаться от реальности. Как и в любой сфере жизни. Стандартная проблема Google, куда берут самых умных людей на планете, и в большинстве случаев заставляют чинить кусок CSS. Целыми днями. Зато ты чинишь CSS в Google. Пускай даже все так же копипастя код на StackOverflow. Но в Google. Или Facebook. И когда ты приедешь домой, все скажут: «О черт, этот чувак с Facebook!». И все. Никто не знает что ты делаешь, главное где ты это делаешь.

Однажды я работал на огромную, мультимиллиардную компанию, офисы которой находятся на всех континентах, и товар она продает везде. И все знают имя этой компании. Полностью все. И когда ты говоришь на кого ты работаешь — люди ахают. А ты молчишь. Потому—что не гоже признаться, что у этой компании не работают пользователи с буквой «u» в имени. Вот уже несколько лет. Потому как чувак, который занимается тем компонентом, ни с кем не делиться знаниями и багу не фиксит. Может просто букву «u» ненавидит. Или из других убеждений.

Вот и думай теперь, каждый раз когда зовут в очередной инновационный проект, с гибкими методологиями и не стандартным подходом. А то даже пиво можешь микроскопом открыть. И еще не пробовал центрифугой чинить велосипед. Но не забудь — #тыжпрограммист.

Глава 27. О запретах

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

Когда—то давно, в одной компании в которой я работал в компах завелся вирус. Он отсылал странные письма, выводил на экраны письки, и занимался другими очень занимательными вещами. Вся команда администраторов как один начали активно работать в направлении уничтожении заразы. Зараза была могуча, заразила все куда добралась, и где доверчивые программисты открыли линку в ICQ. Но бой продолжался день и ночь. И вроде бы вот оно, лекарство от хвори найдено. Уже не отправляются сообщения, уже никто не жалуется на тормозящий компьютер. Только луч надежды осветил усталое лицо главного администратора, так сразу у топов на весь экран похабщина всякая. Загрустили администраторы, и решили по закрывать порты на которых крутилась ICQ. И закрыли, еще и всех предупредили.

Представте ситуацию, когда в компании, в которой работают сотни программистов, процентов 30 из которых, пришли в программирование потому как в детстве увлекались историями про всяких хакеров (аееее, это был 2008й), и каждый из которых когда—то пытался что—то да и взломать. Игрухи через ArtMoney так вообще каждый второй ломал. И им запретили пользоваться любимым, и на тот момент, почти единственным мессенджером (IRC не считается). Естественно методы обхода защиты были найдены в ближайшие 2 часа, и по почте разосланы всей компании. В результате все начали сидеть все в том же месанджере через черт знает какие каналы. На официальных месенджерах то хоть как—то к защите то относились, а на таких вот кустарных все было дырявое как решето. И хлынула всякая нечисть еще большим количеством в сети то корпоративные.

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

А закончилось все до боли просто — официальный клиент и порты разблочили, количество нечисти упало в разы, дух компании вырос. А админы. Что админы? У них количество ломящейся в корпоративные сети заразы упало до уровня начала войны со свой компанией, и в сравнении стало не кошмаром как раньше, а благодатью. Все познается в сравнении. Вирусы то потом почистили, и с проблемами разобрались. Но до сих пор ходят слухи об одном топе, который со страхом открывает компьютер, ибо похабные картинки иногда все еще возникают.

Таких историй — миллион. И если раньше мысли компании были направленны на запрет какого—то софта: блокировка Facebook, так как отнимает много времени; блокировка youtube так как съедает весь трафик; блокировка огромного количества других ресурсов, потому как Луна в Венере. Короче такой себе локальный роскомнадзор. То теперь, компании решили бороться за моральный облик своих сотрудников.

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

Тут скорее всего жалко HRов, которые всеми правдами и не правдами расписывают любую компанию, как компанию с семейной атмосферой. Где все дружные, вместе празднуют рождение детей, свадьбы, и дни рождения. Вот у нас кухня, там можно веселиться! Ну нельзя конечно, но компания все понимает. А тут запретили проносить и пить на работе. А у ребят в семье бухают, и какая уж тут семье?

Казалось бы, черт с ним, можно пойти в кафеху, и там навалиться до поросячьего визга. Но сами подумайте: выпить пива возле рабочего места, перед походом домой, или целенаправленно собираться в заведение, брать такси, ехать туда, ждать заказ… А там музыка, и не красивая официантка. И ждать долго. Да ну нафиг эти тим—билдинги и тупые празднования, лучше дома полежать.

С другой стороны, я не понимаю как компаниям разбираться с нарушителями. Представьте себе: звезда офиса, глава проекта, человек, знающий проект до ниточки! Принес пиво, и позвал тим после работы его попить. Пойман. Что с ним делать? Выгонять? А где еще такого найти. Поругать? А вдруг уйдет? Сказать заказчику что выгнали, потому как пиво пил? Так заказчик вообще не поймет, потому как у самих в офисе холодильник доверху набит всяким бухлом. И получается странная ситуация: вроде как запретили, а как запрещать не ясно. Вроде как курение в общественных местах. Курит на свежем воздухе, а не в помещении — уже спасибо. Такой себе алкоголик с god модом.

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

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

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

Глава 26. О командировках и поездах

Когда—то у меня было очень много командировок. Их было настолько много, и с таким огромным количеством перелета, что будучи в отпуске, и проснувшись посреди дня — первое что я сделал — это собрал рубашки, сложил их, и собрал чемодан с которым я приехал. И только после этого, я окончательно проснулся, вспомнил что мне еще дней 5 отдыхать, и дальше счастливым задрых. Моим рекордов в то время были 19 перелетов по разным уголкам США в течении двух недель.

Когда я не летал в командировки, я о них очень сильно мечтал. Из командировки, как с курорта прилетали люди, которые по смешным ценам покупали всякие гаджеты, и потом, на кухне, за пивом, рассказывали о том, как живут люди в землях заморских. При чем, не в Турции, куда я мог себе позволить слетать на 10 дней, а с самой Америки! Наверное, больше всего, меня давила жаба за то, что они летали туда за деньги компании, проживали в отеле оплаченном компанией, и еще при этом получали суточные. Эти люди рассказывали как они тусили в другой стране, да че там, другой континент — это почти как другая планета, чем вызывали приступы зависти у новеньких, типа меня. С тех самых моментов мне очень хотелось попасть на проект, в котором заказчик захочет привести нас к себе познакомиться, поработать, а я улучу время на потусить, и купить фирменные джинсы Levis за 30 долларов.

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

Вообще, меня иногда смущает то, как компании относятся к транспортировке своих работников из точки А в точку Б в пределах одной страны. То-есть, есть градация позиций, которые имеют возможность летать, другие же обязаны ездить на поезде. И я даже не говорю о том, что когда человек едет на поезде овер 12 часов — это трата целого рабочего дня, оплата суточных и зарплаты за этот один день, а еще несчастный сотрудник и уставший сотрудник. При этом, если все это посчитать, то полет на самолете выходит не особо дороже чем билет на поезд. Но правила есть правила, и негоже джуну летать. Пусть скажет спасибо, что не выдали велосипед и магический пендель под жопку.

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

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

Казалось бы, есть отличное решение — купе. И компании покупают билеты, именно туда, что не может не радовать. Очень круто ехать в купе, особенно если отличные люди с тобой. Классное место для обсуждения идей, планов, и зарождения ненависти, если один из твоих соседей храпит. Я, честно говоря, сам грешен, и храплю. Но когда—то у меня была поездка, в которой у одного человека был невероятно крепкий сон, а один человек храпел как… Я даже не знаю с чем это сравнить. Наверное так храпели динозавры. Даже нет, я подозреваю, что динозавров, которые так храпят, если другие динозавры. С таким звуком, с которым человек выдавал храп, наверное, открываются двери в ад. И два не выспавшихся человека. Команда мечты. И вот лежишь ты ночью, уже закинул последние надежды заснуть, и слушаешь этот храп. И когда он останавливается, первая мысль: умер. Вторая мысль: наконец—то! Третья мысль: ну нельзя же так, ну хоть высплюсь. Но храп начинается снова, ты успокаиваешься, и продолжаешь ненавидеть человека. Вот так и едешь до утра.

Я что хочу сказать: IT компании перестаньте мучить своих сотрудников, и не беречь собственные деньги — самолеты народу. Это быстрее, комфортнее, и вам в результате дешевле. А то выходят из поездов зомби, и идут к клиенту. Не дай Бог с плацкарта, а то еще и пахнущие курицей придут.