Поиск работы для C++ разработчика в Московском IT. Впечатления
С чего бы…
Да, с чего бы имея работу в одной из крупнейших отечественных IT контор, взять и вдариться в поиски лучшей жизни?
Причин у каждого может быть множество. Для меня основной причиной поиска лучшей жизни стало желание найти что-то более интересное и с меньшим количеством рутины. Казалось бы странная причина. Имеешь работу, которая по многим показателям устраивает многих (зачастую, кто ее не имеет), но есть желание найти лучшее. Лучшее, как известно, враг хорошего. Многие могут сказать: «Закушались вы батенька! Скучно видите ли ему!», но на вкус и цвет фломастеры разные.
Пока я как-то в мыслях все созревал на статью о поиске работы и всем, с чем пришлось мне столкнуться, буквально вчера наталкнулся на отличную статью Кадры решают всё или о биче современных компаний. Полностью согласен с мыслями, высказываемыми ее автором. Она и стала последним толчком к излиянию мыслей в печатную форму.
Скажу сразу, что в статье не будут приведены названия компаний, с которыми мне пришлось пообщаться, не будут указаны размеры зарплат, которые хотелось получать и какие были предложены. Почему? У каждого есть свое мнение — как у меня о компании, так и у компании обо мне, а точнее даже не у компании, а у той части ее работников, которые проводили интервью. Эти мнения субъективны и развешивать ярлыки на кого-то по этим мнениям не самая хорошая идея. О размерах зарплат так же не стоит говорить, как минимум в силу одной хорошей поговорки: «Никогда не говори с кем ты спишь и сколько получаешь», ибо подобные разговоры зачастую вызывают множество негатива и ничем не подкрепленного хвастовства. Так же я не буду взрывать бочонок экскрементов на паре килограммов тротила, чтоб до всех долетело, описывая все что меня не устраивало в деталях на прежнем месте работы, этого не будет. Я его зарою глубоко.
Исходные данные
Чуть более недели назад я отработал свой последний рабочий день на уже предыдущем месте работы. Предыдущее место работы — одна из крупнейших отечественных IT компании. В компании не плохая зп, весьма хороший социальный пакет, который далеко не каждая компания готова предоставить, офис, коллеги, график работы и т.д. — все хорошо. Но есть одна или даже две ложки такого качественного дегтя — это характер работы (задачи, которыми мне приходилось заниматься) и, по моему мнению, бездарнейшая система управления IT персоналом — матричная. Вполне может быть матрица и очень хороша, но только не в управлении разработчиками и прочими сотрудниками интеллектуального труда.
Являюсь я человеком, работающим на C++ и, к тому же, его большим поклонником. Это и хорошо и плохо. Плохо тем, что большая привеженность к языку программирования наносит некоторую ограниченность на использование такого работника, да и сам работник осознает такую его негибкость. Есть и положительный момент: весьма не плохое знание данного языка с некоторым количеством его скользкостей, трюков и идеологий его использования.
Не смотря на то, что язык программирования C++ является одним из самых распространенных, он не является основным языком разработки чего-то нового на данный момент и большая часть работы, выполняемой на данном языке — это поддержка уже существующих систем и исправление ошибок. Когда поддержка и исправление ошибок доходит до 100% рабочего времени не зависимо от языка программирование — это сильно демотивирует разработчика, т.к. все мы люди креативные и хотим чего-то создавать, а не только попинывать вон то, что-то дурно пахнущее. Но это пожалуй не самое еще неприятное. Вот когда и программировать начинаешь мало, а больше начинает входить в ежедневку разбор логов сборки — почему очередная сборка не собралась, раскладывание ресурсов по «полкам» для сборки — все пора менять работу!
Место, время, участники
Место — Москва. Время — июль — декабрь 2012. Участники — крупные IT конторы, ну и конечно же я.
Несколько лет назад была замечательная статья на RSDN’е — Поиск работы в московском IT, в которой автор описал поход по нескольким IT конторам Москвы. Хорошо описал с названиями контор и их плюсами и минусами при прохождении интервью в оных. В одной из упомянутых в этой статье контор и мне довелось поработать примерно в те же времена. Полностью согласен с описанием относительно конторы, в которой работал. В отношении собеседования и приема на работу все так и было, как описано в статье. Но это было «тогда».
Первый раз в жизни мне не пришлось искать работу быстро, чтоб не остаться без денег. Поэтому поиск работы был длительным. Нет, я не уволился накопив некоторую сумму денег, чтоб искать было проще. Я искал, так сказать, не отходя от производства, тихо и не спеша, рассматривая только места потенциально подходящие для меня. Основными целями было найти работу в крупной компании с хорошей зп и некоторым не нулевым количеством интересных задач. Сложное сочетание для поиска: в крупных конторах найти интересное практически нереально, так, с улицы (все интересное уже занято и причин уходить людям с этих позиций нет, как правило), в мелких большие риски финансовые. В прошлом сильно обжегся на одной конторе как раз со стороны финансов: они в ней внезапно закончились и, как следствие, у нас, у работников. Поэтому основным критерием и стал только проход по крупным конторам. Да, согласен, в большинстве и мелких контор все хорошо и задачи там на несколько порядков интереснее, и много чего положительного, чего нет в больших, но осадок остался очень неприятный. Он и задавил желание поиска в малом. Больно наступать на грабли дважды, особенно на детские…
Участниками стали крупные IT конторы, расположенные в Москве. Это и интернет гиганты, и банки, и производящие настольное ПО как для бизнеса, так и для обычных пользователей. А названия контор? Про это уже сказано в начале :)
Резюме, «чары», КА
В написании резюме все просто: без долгих раздумий и бурных рассуждениях на форумах типа «попинайте резюме». Тут только один момент: указание желаемой зп. В резюме постарался дать максимум информации о себе в минимальном объеме, чтоб и описать все что могу / хочу и не перегружать hr-специалистов избыточным чтивом. Привел и какие-то ссылки, и примеры кода и указал желаемый уровент зп (совершил смертельный грех — убрал возможность лукавства и взаимного заигрывания). Предложения каких-то вакансий приходили с некоторой частотой, не скажу что с большой, так как указанный уровень зп был фильтром при поиске специалистов не в мою пользу. Ну вот как-то за период поиска работы у меня в почтовике накопилось более нескольких сот писем с предложенеиями что-то посмотреть и некоторой перепиской. Даже сформировалось некоторое свое мнение о характере предложений и предлагающих. Но вот, немного забегая вперед, когда я получил уже предложение о работе и был некоторый период до выхода, я решил немного пошире посмотреть на рынок и диверсифицировать предложения для себя: внес долю лукавства — убрал из резюме желаемую зп, и как все поменялось… От сложившегося впечатления не осталось и следа.
О hr-специалистах, так ласково в народе именуемых «чарами», в интернете написано не мало. Пожалуй одна из последних, хорошо запомнившихся мне ветка RSDN форума — Квинтэссенция хрюка.
Да, прохождение чар-интервью — это самая своеобразная сторона при поиске работы, не самая интересная, но со своими тонкостями. В защиту чаров могу сказать, что большая часть их вполне вменяема и они делают свою работу очень не плохо при наличии всех ограничений — это и давление начальства найти кандидата с определенными характеристиками и, все-таки как не крути, не профильным образованием для детального рассмотрения кандидата с технической точки зрения. Бывают конечно и полные неадекваты и лентяи. К примеру: звонить и читая резюме, как в первый раз его видя, переспрашивать то, что там написано черным и даже по русски. Да, именно в таком виде как там написано: «Вы учились в XXX учебном заведении?». Блин, а там, что написано YYY заведение? И множество подобных ситуаций.
Вот когда техническое руководство заставляет чара проводить некоторое базовое техническое собеседование кандидата — это печально. Конечно, в первую очередь у многих может возникнуть желание поглумиться над чаром, чувствуя свое превосходство в данном вопросе, но к этому стоит относиться с большим пониманием, так как это больше перекладывание дел более высокого руководства на работника совсем иной специализации. Есть и обратная сторона медали — чарам иногда надо и оправдывать свое желание более высоких позиций для себя и уровней зп, и тут начинается чар-креатив: придумывание всяких псевдонаучных методик отбора кандидатов. Тут тушите свет… Контора может быть и вполне вменяема, но у нее пока не хватило времени разобраться с этим отделом, чтоб он особо не фантазировал. А его все же кандидату как-то надо пройти.
КА — кадровые агентства. Тут я более чем согласен с автором статьи, приведенной в начале — это по большей части «потусторонняя сила» со всем, что описал автор статьи. Хотя не стоит так однозначно ставить на них крест, бывают и они находят интересные места.
Есть все составляющие: резюме, чары, КА. Можно сделать некоторые выводы.
По началу у меня сложилось впечатление, что компании совсем обленились и готовы заплатить КА немалые деньги за привод кандидата и самим ничего не делать при его поиске, так как большая часть предложений была именно от КА и считанные единицы от прямых работодателей. Однако окунувшись в лукавство: убрав свой ценник с резюме, хлынул поток именно от прямых работодателей. Тут все и прояснилось: КА пытаются максимизировать прибыль свою и стараются «впарить» работодателю кандидата с наибольшим ценником; меньше работы и больше выручка. Ну что ж, законное желание и, пожалуй, не только для КА, а для любого в большинстве своем бизнеса, но не всего. От прямых работодателей приходили куда более скромные предложения и на позиции зачастую «кирпичика», которые переодически меняют в толстой кладке корпоративных стен.
Предложений на позиции «кирпичиков» вагон и маленькая тележка и если искать работу в этом сегменте, то найти ее в Москве весьма не сложно. Найти что-то отличное от кирпича это составляет куда большую проблему, так как руки всегда нужны, а вот теоретиков не особо много надо на эти руки. К тому же каждый теоретик очередной конторы может столько нагенерировать работы для этих самых рук, что бюджет может и не потянуть. К сожалению, сложилось впечатление, что в большинстве сейчас идет поиск не просто рук, а рук на, простите, «говёные копи», т.е. на раскопку и поддержку того, что уже написано, переписано и перекроено.
Интервью
Пожалуй это самый интересный процесс. Главное — не забывать, что собеседование — это двухсторонний процесс, а не модель «преподаватель и студент на экзамене». Если Вы этого не забывает и стараетесь чтобы эта модель не всплыла на интервью, все проходит весьма интересно для обеих сторон.
Есть замечательная книга Кена Бланшара «Лидерство к вершинам успеха». В ней есть мысль состоящая в том, что человек очень редко что-то делает новое, а зачастую копирует (применительно к управлению персоналом). А точнее, свергнувшие диктатора, и пришедшие к власти, начинают диктаторскую политику. Почему? Просто модель скопирована и новой не появилось, не придумали, не хватило фантазии. К чему это? К собеседованиям! Какая модель у большинства есть? Правильно, «студент и преподаватель на экзамене». Откуда скопирована? С недавно покинутой студенческой скамьи. Не во всех конторах она практикуется на техническом интервью, но имеет место быть.
Зачастую более жесткое техническое интервью — признак желания платить меньше и более ничего. Не умеешь односвязный список влегкую на бумажке развернуть на указателях, все, крест на твоих финансовых амбициях. Если Вы не плохо ворочаете списки на бумаге, то тут удар по самолюбию — написать все так же на бумажке быструю сортировку. Сортировку написали, а как на счет (опять же на бумажке), XOR Linked list? Ага, попался, а XOR Linked list не написал, как так?! По убеждению местного Lead’а у них этим занимаются даже уборщицы в перерывах между чистками уборных. Сарказм, но не безосновательный. Если такое на интервью не удается убрать, то даже при получении предложения о работе в такой конторе работать Вам не станете удовольствием.
Что придаст уверенности на интервью кроме хороших знаний? Вы проводили сами технические интервью? Если да, то тут наступает понятие того, что не сильно важно кто и что знает из собеседников, главное по какую сторону стола он сидит и какие цели он преследует.
И если Вы сами не раз проводили интервью и знаете «среднюю температуру по больнице», то Вы куда более уверено будете себя чувствовать в роли проходящего интервью. Как ни странно, но спустя некоторое время для меня стала большая часть интервью очень положительной с массой положительных эмоций, может быть подход у многих сменился, может быть у меня к интервью сильно сменился подход, может быть еще что, не могу дать объективной оценки причины.
Так, делая некоторый обзор того чего спрашивали на интервью примерно в такие и такие года, то можно как у дерева выделить годовые кольца: когда-то спрашивали в основном на знание языка программирования (в моем случае это по C++), потом народ был укушен паттерн-дизайном, теперь алгоритмикой.
Классическая схема большинства контор на позиции разработчиков / старших разработчиков / системных архитекторов — это некий тест и беседа. Тест — тут так же, кто на что горазд. У некоторых весьма небольшой чтобы выяснить более менее какую-то вменяемость кандидата. У других куча вопросов с кучей «бумажного программирования» (написанием какого-то кода на бумажке в век-то высоких технологий :) ). Так в одной из контор мне был выдан тест в три с лишним десятка вопросов. Самое интересное, что в таком тесте кроме всяких особенностей WM_PAINT и прочих весьма специфичных вещей, на которые есть MSDN, а не память разработчика, были вопросы типа «Напишите класс smart указателя» и 10 см места на это на бумаге для ответа или «Напишите класс односвязного списка со всеми методами и реализацией» и так же пол листка бумаги на ответ. Со списком все более-менее понятно — бери и пиши и бумаги проси еще (по словам одного интервьюера: «На бумаге более душевно получается.»), а вот про smart тут явно не понимание самого интервьюера чего он хотел в этих тестах спросить. Какой smart, с какой стратегией поведения. Вы смотрели на std::auto_ptr, boost::shared_ptr и прочие, чего Вы хотите товарищ интервьюер? Ага, интервьюер искренне предлагает для std::set / std::map Вам воспользоваться std::remove_if для преформирования итераторов и container.erase для удаления элементов из контейнера, так как это все обобщенно и хорошо, оно же и с вектором и списком работает (все искренне и без поддевок). Искренне удивляется, что не выйдет каменного цветочка, но при этом выест Вам мозг на тему, например, внутреннего устройства std::hash_map. В чем причина? Он сталкивался со своим набором проблем, а Вы со своим и каждый из вас знает как его решать, а вот пересечений может быть и не быть в вашей практике. Бывают вопросы по типу «спросил, сам не понял что спросил, но ждал ответ». Был интереснейший инцидент у меня. Интервьюер спросил нечто. Я что знал ответил, чем и покрыл немалую часть применения этого самого. Он согласился, что все нормально, но вот еще есть некоторые особенности, о которых я у него и поинтересовался. Тут было интересно: он быстро сник сказав, что что-то где-то читал у кого-то уже не помнит и спешно перешел далее. Самое неожиданное для самоуверенного интервьюера — это когда кандидат весьма уверенно начинает его «ловить». Как ни странно, если Вы даже доставили некий дискомфорт своими уловками у интервьюера, это еще не факт, что вы не получите предложения о работе. Так же к тестам на знание языка зачастую добавляются еще тесты на многопоточность и алгоритмику. На многопоточность вопросы из конторы в контору почти одинаковые. На алгоритмику нет, и тут больше всего радуют интересностью вопросов и их немалым количеством наши интернет гиганты. Тут вам и задачки на вероятности и всякие ухищрения со списками и прочими динамическими структурами данных, и теории множеств и графов и т.д. и т.п. И что самое интересное, чем ниже рассматриваемая позиция, тем больше всяких изворотов в вопросах.
Парадокс, но с ростом позиции, на которую вы претендуете и пришли побеседовать, дружелюбность увеличивается и количество вопросов снижается, а их сложность так же не растет, а может и падает. Это конечно не всегда, но не в малом количестве случаев.
Самое хорошее собеседование — это для меня, да возможно и для большинства, беседа по «теме». Т.е. когда потенциальный работодатель предлагает некоторую задачку для вашего решения, с которой они столкнулись и как-то ее решили или решают, а Вам дается возможность ее полностью решить с какими-то упрощающими условиями. Например спроектировать некоторый сервис с некоторой бизнес логикой, выбрать для него платформу, инструменты, библиотеки, вплоть до структур данных, которые будут там использоваться, сделать какие-то оценки по нагрузке и т.д. Почти все собеседование проходит в решении этой задачи в диалоге, что очень интересно и положительно. Так же такие собеседования начинаются, как правило, с небольшого рассказа о себе по обе стороны, чем занимался и занимаются и т.д., а потом к самому интересному. К сожалению, таких собеседований немного, совсем немного. К тому же надо отметить, что интервьюеры на такие собеседования очень основательно готовятся и не читают Ваше же резюме с удивлением на собеседовании как будто в первый раз его сейчас и видят, так же они по большей части уже ознакомились со всеми Вашими материалами: и присланными примерами кода, и ссылками на какие-то иные материалы и т.д. В таком случае виден интерес работодателя к кандидату, а не просто похалявить от работы и сходить кого-то «пособеседовать».
Получение предложения о работе
Официальные предложения о работе со всем описанием и денег и позиций и т.д. присылают не многие. Как правило есть предварительный звонок с описанием этого и если кандидат согласен, то тогда присылается официальное предложение о работе. Можно после такого звонка и поторговаться перед получением конечного предложения. Есть моменты, что если ты сказал «да», то нужно подъехать и все подписать, чтоб не сбег пока тебя ждать будут. Это конечно не напрягает, просто особенность, диктуемая рынком Москвы. В Москве рынок IT — это зачастую, как во многих источниках отмечено, рынок работника, а не работодателя. Только вот надо отметить, что есть маленькое но, не каждого работника, а как раз основной массы, так как на интересные позиции тут уже рынок работодателя.
Заключение
Есть неуемное желание у многих заказчиков — получить результат быстро, качественно и недорого. Но при этом надо выбрать два пункта из трех. Изначально я себе так же поставил цель, которая так же содержала три пункта: большая компания, хорошая оплата труда, интересные задачи. Не так давно я принял одно из предложений, которое наиболее подходило под эти критерии. Пожалуй самым загадочным для меня пунктом является — интересность задач. Тут трудно что-то предсказать, далеко не всегда характер работы в реальности совпадает с обсуждаемым на интервью. Наверно такое несовпадение и стало причиной смены работы для меня.
Пока что могу сделать выводы, что работа для разработчика в Москве может быть или стабильной и денежной или интересной и рискованной.
Поиск новой работы он отчасти бодрит, так как заставляет встряхнуться и очнуться от той трясины, того болота рутины, в котором ты тонешь. Некоторые имеют точку зрения, что раз в пол года надо ходить на собеседования ради спортивного интереса и поддержания себя в форме. Как-то не совсем понимаю такое отношение. У меня получается, что если и пошел по собеседованиям, то это однозначно приведет к смене работы. А в альтернативу для того чтобы не терять навыков, можно чем-то для себя заняться, разбирая что-то новое и интересное, и вполне может быть не имея на текущем месте работы практики сделать эти интересы своей основной работой на новом месте работы.
В любом случае технические интервью очень интересный момент, так как дают возможность оценить себя на рынке труда, многое узнать, открыть для себя что-то новое с технической точки зрения решая очередную задачку очередной конторы с ее спецификой.
Но все же у похода по интервью есть и обратная сторона медали — все таки они несут некоторую нагрузку, нужно быть в весьма неплохой форме, чтобы не выглядеть полным идиотом в глазах интервьюера. По моему мнению для поиска привлекательных мест работы нужно обладать как минимум одним из трех качеств или в идеале несколькими: иметь хорошо подвешенный язык, быть очень узким специалистом в какой-то области, иметь широкую эрудицию в области IT. Первое качество ведет больше к управленческим позициям, но только если оно еще и подкреплено неким неплохим техническим багажом. Второе может дать очень не слабые зарплатные ожидания если удастся найти место, где эти узкоспецифичные знания будут нужны. Третье качество: широкая IT эрудиция и неплохой технический багаж в какой-то из областей дает максимальный результат покрытия рынка при поиске работы.
Так же в заключении хотелось бы обратиться к работодателям с пожеланием: выбирайте инструмент в соответствии с поставленными задачами. Шуруп забитый молотком держит лучше, чем гвоздь, вкрученный отверткой. Это я про бытующее мнение о том, что лучше при наличии денег у компании купить более квалифицированного специалиста и посадить его за рутинные и слабоинтеллектуальные задачи и он их с радостью и качественно будет выполнять. Нет, такого не будет, как правило. Вы получите дорогого, демотивированного сотрудника, формально исполняющего свою работу.
Мотивация персонала, работа с персоналом по его развитию и т.д. это одна из основных проблем, которая на данный момент видна в некоторых крупных компаниях Москвы. Компания может обладать огромным потенциалом кадров технических и малоэффективным, но очень толстым слоем менеджеров, который сильно будет ее тянуть не в самом привлекательном направлении.
Спасибо за внимание! Всем интересной и хорошо оплачиваемой работы!
Автор: NYM