Вот не хотел я втягиваться в обсуждение столь больной для меня темы, как подбор кадров в IT (речь идёт именно о начальных позициях), но зашкаливающая волна критики в адрес моей предыдущей публикации, где уже была затронута именно эта тема, не могла оставить меня равнодушным. Честно говоря, первую часть я вообще решил написать чисто по фану. Но кто-то сразу захотел подробностей, а в основном посыпались гневные упрёки в духе: «Да кто ты такой, чтобы работодателю ставить условия!» «Лёгких денег захотел? Иди подучись!» «Таким, как ты, вообще не место в IT-индустрии.» Кстати, с последним обвинением я даже отчасти готов согласиться. Возможно, я действительно плохо подхожу конкретно для промышленной разработки. Но, с другой стороны, а много ли было у меня шансов проявить себя именно в этом? Ведь я описал лишь один пример неудавшегося трудоустройства, а были и другие. Главным образом я не согласен конкретно с тем, что претендуя на конкретную должность, ты должен уже досконально разбираться во всём, чем там занимаются. Твой личный опыт при этом находится на каком-то двадцатом месте в качестве возможных критериев отбора. Да, пусть он не совсем по профилю, но ведь что-то ты уже умеешь? Ты в некотором роде обучаем – в широком смысле слова, а не на уровне зубрения названий каких-то конкретных техник разработки, фреймворков и их составляющих, с которыми ты лично, возможно, просто ранее не сталкивался, но совсем не прочь разобраться – в том случае, если тебе действительно предложат работу. Да даже целый новый язык вполне можно освоить, если на то есть серьёзные причины. А не так, чтобы: "Посижу-ка я дома, освою Питон по роликам на ютубе, авось меня возьмут". У претендента на должность (напомню, базовую) может быть совершенно иной бэкграунд – и это отнюдь не означает того, что он обязан теперь до конца своей жизни продолжать заниматься тем же самым. Я вот, например, раньше вообще работал в вузовской библиотеке – не поверите, но там тоже есть задачи, которые нужно автоматизировать. Впрочем, это и не входило в мои прямые обязанности, но я всё равно всегда находил для себя подобные интересные мне проекты. Даже на соответствующие конференции пару раз удавалось съездить – причём по приглашению от самих организаторов. Правда, сама разработка в данной сфере носит достаточно специфический характер (можно даже прямо сказать – консервативный), да и самих реальных разработчиков на подобных конференциях можно буквально пересчитать по пальцам. Кстати, сами они практически все, что называется, self-made – то есть их собственный опыт мало вписывается в традиционную парадигму работы по найму. К примеру, человек начинал библиотекарем, потом что-то там интересное придумал своё, окунулся с головой в разработку – и в результате теперь продаёт это дело другим. Что же касается моего конкретного (не столь успешного) опыта, то отчасти он уже освещался в моей самой первой статье на этом ресурсе. Это, к слову, ещё и для тех, кто требовал от меня: «Покажи свой ГитХаб» – вот там как раз уже были кое-какие ссылочки. Естественно, это далеко не всё, над чем мне приходилось ранее работать – да и конкретный проект, которому была главным образом посвящена конкретно та публикация, всё-таки был форком чужого проекта, который я лишь частично попытался улучшить и адаптировать к имевшимся потребностям по работе (так что по нему одному сложно о чём-то судить). И затеивал я эту переделку именно в целях заменить ей прежний вариант моей самописной утилиты, служащей тем же сугубо практическим целям (которая в определённый момент стала для меня тем самым «легаси», от которого не мешает избавиться). А вовсе не для того, чтобы похвастаться перед потенциальными работодателями: «Вот, посмотрите – у меня тоже есть свой пет-проект!». Недавно, работая уже над совершенно другим проектом, я попытался вновь задействовать именно тот вариант библиотеки, что описывался в упоминавшейся статье и её продолжении. При этом, тестируя на работоспособность вновь создаваемые мной шаблоны, вновь натолкнулся на костыли в виде всё того же легаси – ещё от прежних разработчиков. И я принял для себя давно напрашивавшееся решение: не нужно мне это чужое Java-наследие в моих будущих проектах – возьму-ка я и перепишу сам с нуля это дело под .NET именно так, как считаю нужным. Возможно, в скором времени будет и об этом публикация – ну, это если карма позволит, конечно. Весь последний абзац – это возможный ответ на другой подобный выпад: «Да какая у тебя самого может быть практика?! Проработал-то от силы без году неделю!» Ладно, хватит обо мне – цель-то была совсем не в этом. Я скорее хотел лишь высветить конкретные проблемы, которые могут возникнуть у похожих на меня по складу характера людей ещё на стадии предварительного отбора на вакансию профессионального разработчика. Да, я вполне допускаю, что конкретно мне может быть и не место в данной индустрии. Но ведь вполне могут найтись и другие похожие претенденты, которым, скажем, просто не понравится то, как с ними обошлись – и они уйдут разочарованными в своём выборе новой специальности. Мне думается, что большинству подобных людей так или иначе уже пришлось хоть где-нибудь поработать и раньше (возможно, не один год), проявить себя с хорошей стороны – а потом решить сменить вектор в пользу профессиональной разработки (ну, или ещё чего-нибудь подобного, к чему изначально лежала душа, но вот работать ранее приходилось как придётся и явно не по заявленному в вакансии профилю). Несколько раз подряд нарвавшись на одни и те же грабли, они могут попросту потерять дальнейший интерес. Как этого избежать? Наврать в резюме про несуществующий опыт в какой-нибудь другой организации? Подозреваю, что многие выпускники одно- и двухмесячных курсов именно так и делают, и кто-то из них даже преуспевает в этом деле. Но вот что, если человек хочет добиться успеха именно за счёт своей искренности, апеллируя в том числе и к своим прежним наработкам? (Нет, совсем не в надежде, что они вдруг сами по себе придутся по вкусу потенциальному работодателю – скорее из желания показать: "Вот, смотрите: я вполне способен к аналитической и исследовательской деятельности. Сам свои проекты поддерживал, другим коллегам тоже по мере сил помогал делать их работу". А что же мы видим в действительности? Извините, в качестве типичного сценария прохождения собеседования я сейчас вновь обращусь к своему личному опыту – обобщая, так сказать, ранее сказанное и подводя своеобразные итоги. Но лучше будет сделать это с позиции некоего воображаемого незадачливого кандидата (имеющего примерно схожие взгляды на жизнь со мной и уже сложивший собственный бэкграунд). Вот представьте себе: вас пригласили на очередное собеседование сразу же после ознакомления с вашим резюме. Резюме само по себе, судя по всему, работодателю зашло – и вот вы уже мчитесь к нему, преисполненный надежд в связи с открывающимися грядущими перспективами (на всякий случай уточню: не денежными – обычно таким людям просто нравится работа сама по себе, если это интересно, а оплата при этом лишь служит приятным бонусом. И вот вы начинаете с горящими глазами рассказывать про свой личный опыт – более подробно, чем это описывалось у вас в резюме. Даже захватили с собой ноутбук, чтобы продемонстрировать кое-что из собственных наработок прямо на месте. Работодатель всё это, конечно, выслушивает из вежливости – но в какой-то момент  (ну, или с самого начала – это уж как повезёт), естественно, перехватывает инициативу в свои руки и начинает откровенный допрос. К примеру, в какой-то момент он может задать вопрос про внутреннее устройство сборщика мусора, где ты помнишь лишь самые основы (но при этом уточняешь, что тебе уже приходилось штудировать достаточно объёмную книгу по .NET, где несколько страниц было уделено в том числе и конкретно этому вопросу. Вот только в памяти это у тебя не отложилось, уж простите – да и притом вы прекрасно осознаёте тот факт, что в реальной практике эти сведения не так уж часто и требуются. Даже прямо заявляете об этом работодателю. На что собеседующий лишь отвечает прямо и твёрдо : "Да, используется мало – но знать положено!"). Может последовать и несколько других вопросов, призванных ещё больше поумерить ваш пыл. Ну, и в качестве контрольного «выстрела в голову»: напишите-ка мне прямо сейчас на бумажке решение задачи, связанной с обходом (то ли в глубину, то ли в ширину) вот такого вот дерева. Так уж и быть, подскажу тебе, юный падаван: здесь надо использовать такой-то алгоритм из теории графов. Гуглить нельзя. На что вы отвечаете примерно следующее: мне, конечно, случалось изучать работу с графами (причём когда-то даже ещё в школе на спецкурсе по информатике), но поскольку в своей предыдущей практике мне редко приходилось применять нечто подобное – извините, без помощи поисковика в данном конкретном вопросе мне никак не обойтись. Вот так и выходит, что тебя наобум могут внезапно спросить о чём угодно, и на этом самом вопросе моментально и срезать. Вы-то сами больше привыкли к тому, что если и попросят что-нибудь написать прямо на месте, то это будет скорее какая-нибудь банальная сортировка пузырьком. (Даже сами возмущались такой банальности – но ведь на бумажке сложно сходу написать что-нибудь сложнее.) А ещё вам очень по душе разные вопросы на логику, но именно в применении конкретно к программированию. Причём не требующие помнить какие-то там специализированные алгоритмы, знания угодных работодателю технологий, фреймворков и частных случаев использования всего перечисленного. Да зачастую даже не требующих что-либо конкретно писать – а просто из серии: как бы вы сами стали решать подобную задачу? Вот тут-то вы и могли бы продемонстрировать свою собственную смекалку и имеющиеся навыки в применении к будущей вакансии. Ну, а уж если сами не смогли показать здесь достаточный класс – понятно, кого винить за провал. Вот только почему-то подобных вопросов из теперешнего работодателя днём с огнём не вытянешь. Всё больше спрашивают о том, для чего нужен тот или иной фреймворк, или там очередной шаблон проектирования. Доходит дело даже до требований перечисления названий конкретных методов тех или иных библиотек или объектов. Ну, про основные принципы ООП вы-то должны помнить – это уже классика. А вот про всяческие там надстройки и конкретные технологии, пользующиеся спросом именно на данном рабочем месте, вы честно заявляете, что краем уха что-то об этом уже слышали, но вот только самому ещё использовать не приходилось. Снова конкретно мой случай. "Расскажите про технологии, которыми вы пользуетесь".  – Вот, у меня в последнем проекте была использована такая-то разработка, позволяющая выполнять код JVM прямо из-под dotNET – по-моему, достаточно крутая штука. – Нет, это вовсе не те технологии, про которые я хочу услышать. Расскажите мне лучше про Entity Framework". (В последней фразе конкретное наименование было взято наугад – но от меня явно хотели услышать о том, что скорее у всех на слуху, чем о том, с чем конкретно сталкивался когда-либо я сам.) Тут может последовать закономерное возражение от читателей : «Ну, вы-то сами должны были знать, на какую конкретную вакансию вы метите? Какие там требования по используемым технологиям, и пр. Что вам мешало заранее сесть и подготовиться?» А вот ни фига! Зачастую спрашивают вовсе не о том, о чём было заявлено в вакансии. Кроме того, если вот прямо на месте сесть и начать пытаться с нуля освоить нужный конкретному работодателю фреймворк – без предшествующего опыта написания кода всё это будет сродни банальной зубрёжке. А зачем зубрить, когда в случае чего у вас всегда есть под рукой Интернет? (На тот случай, если вам вдруг в своих собственных проектах на каком-то этапе неожиданно потребуется та или иная технология или библиотека, с которой вы ранее дела не имели.) Это уже получив конкретное предложение от работодателя, вы совершенно честно готовы засесть за изучение специализированных, ранее не используемых вами технологий – на данном этапе уже сами для себя мысленно проецируя изложенные знания на свои текущие задачи по работе. Но вам это не светит, поскольку вас уже срезали либо на незнании данного конкретного аспекта будущей работы, либо ещё на чём-то другом – так уж работодателю захотелось. Доходит до того, что декларируемые требования по вакансии вообще имеют мало общего с тем, о чём реально на деле спрашивают. Типичный случай: в описании заявлены лишь общие слова: "требуется знание какого-либо из языков высокого уровня, умение логически мыслить, понимание базовых технологий разработки, принципов ООП". “Окей, мне это подходит” – думаете вы. И тут вас внезапно начинают экзаменовать конкретно по поводу знания Java. С какой это, спрашивается, радости – ведь в самой вакансии об этом не было заявлено ни слова? Стало быть, даже подготовиться заранее у вас возможности не было. Да, вы в принципе способны понимать код на Java, ранее в процессе обучения тоже случалось выполнять на нём какие-то проекты – но теперь-то вы переключились на какой-то более удобный для себя язык! Безусловно, кое-что вам удаётся вспомнить уже на месте, но… вашу кандидатуру отклоняют конкретно за недостаточное знание Java. Хочется спросить следующее: если уж вы способны пилить софт, так неужели вся современная индустрия неспособна к выработке несколько более адекватных критериев для выбора кандидатов для дальнейшего прохождения – по крайней мере, на начальные позиции? Ведь потенциальные варианты-то есть – хоть те же самые задачки на сообразительность, о которых я ранее упоминал. Ну, и наконец ещё об одной причине всяческих потенциальных фэйлов – а именно о той самой «звёздности». Если кто не в курсе, то фраза, вынесенная у меня в заголовок, была когда-то произнесена на одной из телепередач небезызвестным сатириком Михаилом Задорновым в адрес тоже небезызвестного диакона Андрея Кураева. Просто к слову пришлось. Вообще говоря, вам редко кто-нибудь честно возьмёт и объяснит, почему в действительности вашу конкретную кандидатуру отклонили, так что здесь я снова вступаю в сферу гипотез. Да, есть определённый сорт людей, которые изначально ощущают себя некоей «поп-звездой» (ну, или рок – смотря кому что ближе). Весьма вероятно, что я и сам к ним в той или иной степени отношусь. Кто-то из таких личностей и впрямь когда-нибудь добивается реального успеха (неважно, в какой именно отрасли) – вот только, увы, таких примеров – единицы, и их успех – это скорее прямое действие  так называемого «закона выжившего», чем непосредственное подтверждение эффективности какой-либо высосанной из пальца «формулы успеха» (одним из частных случаев которой, например, является святая вера в «великую американскую мечту» – непосредственно затрагивающая, естественно, жителей именно данного континента и конкретно его титульного государства). Я заметил для себя ещё одну любопытную тенденцию: зачастую те, кому кажется, что он уже достиг некоторого успеха в своей профессиональной карьере, начинают советовать своим менее удачливым знакомым всяческие подобные «формулы успеха» – часто со ссылками на какие-нибудь конкретные аудио- или видеозаписи тренингов личностного и профессионального роста, всевозможные Интернет-ролики на данную тему или же аудиокниги. Хотя в действительности нет никаких оснований полагать, что, даже твёрдо следуя неким выбранным для себя принципам и стратегиям поведения, вы добьётесь того же, что и те, кто уже испробовал этот метод на себе (или сам изобрёл его). Да, это и есть тот самый пресловутый «закон выжившего». Замечу ещё, что истинные поп- и рок-звёзды (безотносительно к конкретному направлению их деятельности) вряд ли будут заниматься составлением подобных методик достижения успеха, и уж точно не испытывали какую-либо из них на своём собственном опыте. Их успех – это целиком и полностью их заслуга (разбавленная некоторой долей везения), а не какого-нибудь там модного коуча (известного в первую очередь как раз-таки своими мотивационными проповедями, а не конкретным вкладом в науку, технику, культуру или искусство). Скорее всего сам этот успех либо вообще был случаен, либо с детства у этого человека была какая-то своя установка на будущий звёздный статус – вот и всё, и никаких тебе тренингов. Вы тоже вполне себе в праве ощущать себя звездой, даже если в действительности ею не являетесь. Вот только если в таких областях, как шоу-бизнес и индустрия развлечений, в целом это может быть мощным стимулом на пути к достижению поставленной цели, то, например, в сфере информационных технологий реальный эффект, увы, может оказаться прямо противоположным. Всё дело в том, что работодатели откровенно не приветствуют всевозможных «рок-звёзд», потенциальных стартаперов, фрилансеров и вообще интровертов. Конечно, возможны и исключения – но тем не менее знать об этом не помешает. Секрет простой: люди с подобным складом ума сами ощущают себя скорее как потенциальные работодатели, чем как наёмные сотрудники. А кому нужна конкуренция в своём деле? Нет – за подавляющим большинством «настоящих» поп- и рок-звёзд (в привычном смысле слова) тоже, скорее всего, стоит нехилая толпа из всевозможных продюсеров и менеджеров, вот только работают они именно на него (неё), а никак не наоборот. Чувствуете разницу? Здесь же потенциальной «звезде» IT так или иначе всё равно придётся «трудиться на дядю». Ну, это если вы не прирождённый Стив Джобс, конечно (кстати, даже тот же Гейтс в известной степени был скорее примером «сына маминой подруги», чем провозглашаемым народной молвой уникумом, всецело и своими руками воплотившим в жизнь «великую американскую мечту»).   Как именно потенциальная «звезда» может завалить, казалось бы, простое собеседование? Конкретные примеры я уже приводил (напомню на всякий случай вновь, что речь тут шла преимущественно о джуниорских позициях, как бы изначально не требующих наличия особого опыта). Естественно, что сам подобный рекрутёр считает именно свой опыт и свои знания некой священной истиной в последней инстанции. А вот догадывается ли он, к примеру, о том, что некие базовые идеи, лежащие в основе столь горячо им любимого dotNET, когда-то (ещё в начале 70-х годов прошлого столетия) были реализованы в технологии так называемого P-кода самим Никлаусом Виртом? (Тем самым автором языка Паскаль – отсюда и первая буква в названии технологии.) Скорее всего, ему всё это так же безразлично, как и какой-либо предшествующий опыт кандидата-«звезды» (о котором тот сам горячо и искренне пытается всем поведать). Кстати, вот вопрос: можно ли считать «звездой» самого Вирта? Если судить по степени влияния на последующие поколения – безусловно, да. Ну, а если по личным амбициям и в денежном эквиваленте – тогда вряд ли. У него совсем другое призвание: он – Учитель. А вот если судить по амбициям, скажем, Андерса Хейльсберга – то уж он скорее попадает под определение «звезды программирования». Позаимствовав изобретённый Виртом язык, он быстро создаёт свой собственный диалект и соответствующую среду разработки, покорившую мир под названием Turbo Pascal, дополняя это дело свежими фишками в духе тогдашнего времени – вроде ООП-расширений. Ну, а дальше понеслось: воплощение и развитие всех уже имевшихся (своих и чужих) наработок в ещё более амбициозный продукт под названием Borland Delphi, затем – переход в Microsoft, главенствующий вклад в разработку языка C# и всей архитектуры .NET в целом (причём не только за счёт своих собственных прежних идей, но и ориентируясь на виртовские идеи, идеи создателей языка Java – и много чего ещё заимствуя в процессе). Ну, и последнее на сегодняшний момент детище Хейльсберга – это TypeScript. Разве это всё не тянет на титул «рок-звезды» в своей собственной нише? Безусловно. Что же до самого Вирта, то он, конечно, тоже отнюдь не стоял на месте, и вплоть до пенсии продолжал дополнять и разбавлять ранее изобретённые им языки и подходы к программированию более-менее актуальными на тот момент техниками. Вот только получили ли его новые языковые экзерсизы столь же заметный отклик в среде профессиональных разработчиков, как тот же C# или Java? Нет, и именно поэтому он никогда и не претендовал на роль некой «звезды», а всю жизнь оставался скромным академическим учёным. Впрочем, ему самому никогда и не надо было устраиваться в промышленную разработку. Более того, критика самих принципов, на которых вся эта индустрия и держится (вроде «Долой раздутые программы!»), часто становилась конкретным предметом его публикаций. Возвращаясь же к нынешним интервьюерам (многие из которых, по сути, лишь те же вчерашние «джуниоры») – многим из них по большей части вообще глубоко параллельно, кто там и чего когда-то до них придумал (включая, конечно, и сидящего перед ними кандидата): они в принципе не готовы или не способны оценивать знания испытуемых шире рамок неких методичек (реальных или виртуальных), где уже заранее расписаны все возможные вопросы и единственно правильные ответы на них (ну, или им на то даются соответствующие указания сверху). Сам-то он себя, возможно, тоже числит некой «звездой» – по крайней мере, именно таким он хочет казаться в глазах несчастного собеседуемого. Вы меня извините, но в моих глазах он скорее просто такой себе «дедушка» – в чисто армейском понимании слова (призванный испытывать на прочность всех новобранцев). «Ну, ты-то сам не Хейльсберг, не Вирт, не Торвальдс – да ты вообще никто!» Именно такова может быть закономерная реакция со стороны тех, кого я сейчас критикую, в мой адрес. Хорошо, ну а сами-то вы приложили хоть малейшее усилие к тому, чтобы я стал кем-то ещё (причём именно в той отрасли, где теоретически мог бы быть конкретно вам полезен)? Кстати, в этом контексте приходит на память ещё один периодически повторяющийся вопрос от работодателей: Сколько конкретно человек уже пользуются вашими разработками? Да какая разница – пусть хоть я один и пользуюсь: что с того? Вы меня, что, на управление проектами сейчас собеседуете, или на что? А может, лучше соврать, что типа «человек сто уж точно пользуется», и с наглой ухмылкой попробовать пролезть дальше?.. Я уже встречал подобных людей, которые ради заветной должности готовы заявить вам в лицо всё что угодно. Лично я считаю это неправильным. Уж лучше я оставался бы в своём прежнем коллективе, где чувствовал себя какой-никакой, но всё-таки своего рода «поп-звездой».