PHP/Symfony dev в in the middle of nowhere
  • Ребят, а где все программисты, а?

    Пользуясь случаем, хочу передать привет маме, а также с высоты своего, до смешного ничтожного опыта, немного приоткрыть завесу того, что же происходит в нашем IT. Сразу напомню, что я почти 23-летний недомиддл — формошлёп на PHP, так что всех болеющих за чистоту стройных рядов айти-комьюнити, считающих что «ПХП — не программирование», впечатлительных животных и беременных детей прошу не читать нижеизложенное. Попробую дать пару советов нашим доблестным рекрутерам/техлидам/успешным менеджерам, следуя которым, вы без особых издержек облегчите себе жизнь, не ударите в грязь милым личиком и найдёте себе nice little fellow, который и код будет фигачить, и цветы на восьмое марта дарить. Приготовьте себе кружечку чая/кофе/смузи/виски, опус может выйти длинным и точно будет оочень скучным, а слог у меня корявый, за что нижайше прошу прощения.

    tl;dr: всем и так ясно, что какой спрос — такое и предложение, мы все люди и жаловаться на некомпетентность коллег-рекрутеров/программистов/сантехников/депутатов — только воздух сотрясать да нервы портить, лучше книжку почитайте да музыку послушайте.

    Итак, ничтоже сумняшеся, перехожу к делу. Т.к. я ещё не совсем испеченный кекс в этом мире, мой опыт прохождения собеседований никого не впечатлит — около десяти пройденных (бывало что и в 5 этапов), примерно в половине случаев — оффер, 3 из которых я принял, ну и тонны случаев, когда до дела так и не дошло, ну куда ж без них. О парочке самых интересных из них и расскажу.

    Самыми веселыми были два из них, оба имели место когда я ещё был совсем зелёным, в обоих случаях я «прошел», оба оффера я, естественно, принял. Был только один этап, с человеком который и принимал конечное решение, просили показать кусок кода который раньше писал, потестили инглиш, задавали очень абстрактные вопросы. Ничего интересного, останавливаться не будем. Веселье начинается дальше.

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

    Самым длинным был собес в одну динамично развивающуюся молодую компанию, примерно год назад. 5 этапов, технические были вперемешку с менеджерским составом, с вопросами «кем вы видите себя через пять лет» и «какие у вас планы по саморазвитию». Естественно, сказать что я в ближайшие пять лет собираюсь радоваться жизни, с умным лицом писать глупый код и тратить как минимум 30% своего времени, пребывая в состоянии алкогололического опьянения, я не мог, приходилось выдумывать на ходу тонны чуши, причём каждый раз разной. В результате после нескольких пройденных технических этапов меня погоняли по университетским задачкам с хитрыми сортировками, мультибайтными кодировками да бинарными деревьями. Единственной мыслью было «вы мне и так уже сказали что у вас куча говнокода хер-пойми на чём, никто не в курсе что с ним делать и приходится с этим жить, чего выкобениваться-то?». Эту часть я не прошел — сказалось отсутствие базовых знаний и то, что я в универе фигней страдал вместо учебы.

    Самое-самое тестовое задание было в одной маленькой, но очень гордой украинской конторке. Задание было рассчитано на 2 дня, не шибко уж сложное. Чисто из интереса написал всё как надо, по PSR-ам, компонентно, отдельно роутинг с yaml-конфигами, отдельно слой абстракции для БД, контроллеры и вьюшки. Получилось аккуратненько и симпатичненько, вот только спать очень хотелось. Собес прошел, получил оффер, дали взглянуть на свой код — на этом мы с ними и распрощались, до сих пор кошмары снятся. Больше я тестовые задания дольше чем на 0,5 часа не беру и никому не советую.

    Ещё был интересный случай в одном стартапе. Опять гоняли по кодировкам да сортировкам, увидел код — обнять и плакать, «как вы по ночам спите».

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

    1. Начните уже читать долбаные профили и CV. Примерно 30% рекрутеров шибко уж смахивают на ботов, когда скидывают мне вакансии на Magento/Wordpress/Drupal/etc, хотя у меня в профиле гельветикой по белому написано, что ни к каким CMS у меня притрагиваться желания нет. Некоторые начинают судорожно перелистывать твое CV, услышав какую-то деталь из твоего опыта или пожеланий и пытаясь скрыть свою полную неосведомлённость об этом факте.
    2. Будьте немножко теплее, газ нынче дорогой, осенний сплин бушует вовсю, программистам сейчас холодно и одиноко, и видеть в почте письма, в которых человек даже не удосужился представиться или написать «если интересно — отпишите», а просто скинул список требований, или начинает сообщение с фразы «РАЗРАБОТЧИК!» — с таких же успехом можно в текст ложить только «ЭТО СПАМ, НЕ ЧИТАЙ».
    3. Не гоняйте по алгоритмическим задачкам, если только вам не нужен человек, умеющий их решать. Не выпендривайтесь — пропустите человека, который может очень много привнести в вашу уютную конторку в современном офисе на задворках заброшенной психбольницы в пригороде. Спросите его о проектах, над которыми он работал, спросите его о каких-то интересных случаях, вот здесь очень важно — спросите его о факапах, с которыми он сталкивался, разузнайте как он с ними справлялся — это очень много говорит о психологическом состоянии человека, умении признавать ошибки, работать над собой, работать в стрессовой ситуации, если же скажет что никогда не факапит — либо верите и сразу тихонько суёте ему конвертик с пачкой баксов, завернутых в договор, либо понимаете что он просто самоуверенный сноб, пытающийся вас надуть.
    4. Выстройте нормальную атмосферу в своей команде. Людям очень важно, чтобы их хорошую работу замечали, за красивый код хвалили, и они чувствовали что то, на что они тратят 8-12 часов в сутки, кому-то да надо.
    5. Все события и герои вымышлены. Любые совпадения с реальными личностями случайны.
    • P.S. Ваше тестовое случайно не с Basecamp-ом связано?