Пролог
Как найти порядочного работодателя\клиента\заказчика? Ответ совсем не лежит на поверхности. Однако десятки пройденых и проваленых собеседований заставили глубоко задуматься, как можно предотвратить встречи с токсичными фейками, бюрократами, и теми, кто собирает мертвые души ради отчётности в отделе кадров или перед начальством. Это чисто субъективные мысли, кто-то может быть со мной не согласен, однако все описанное ниже было опробовано мною ни раз.
Процесс интервью
Никогда не берите тестовое задание, решение которого требует от вас времени больше, чем один-два вечера.
Мне еще не известен ни один случай, чтобы человек, который неделю делал тестовое задание и получил хороший оффер. Работодатель часто готов потратить годы, лишь чтобы найти изумруд (скилового, опытного, и за копейки работающего разработчика), но лишь бы найти. Они собеседуют буквально сотню людей, прежде чем наймут кого-то. И такой критерий как выполненное тестовое задание, длинною в неделю, ставит вас в длинную очередь ожидания, в который вы уже заведомо проиграли. Допустим Вы выполнили блестяще тестовое задание, но оффер так и не получили. Вы потратили НЕДЕЛЮ личного времени. А Сколько потратил работодатель? Максимум 10 джоулей, нажимая пальчиком «переслать», отправляя Вам задание. Он не потерял ничего, и ему это ничего не стоит. А вот вложить силы на решение задачи которой ушла неделя, и получить отказ — это огромная просадка по эмоциональным ресурсам, времени, деньгам и самое главное — по мотивации. Простое правило: если у вас есть 20 часов свободного времени, вы можете пройти целых 10 собеседований по 2 часа, или решить 1 тестовую задачу и понятия не иметь получите оффер или нет, а в случае отказа эмоциональный откат неизбежен, потому что ресурсов было вложено много, а результата никакого. Не делайте так, следуйте зову здравого смысла!
Основательно подготавливайтесь.
На самом деле это не лежит на поверхности. Гуглите все самые популярные вопросы, которые спрашивают на собеседованиях, запоминайте то, что чаще встречается. Делайте шпоры. Записывайте всё, на чём посыпались при собеседовании и старыйтесь выучить это к следующему. Так или иначе, около 40-50% вопросов всегда повторяются.
Обговаривайте всё на берегу.
Очень часто случается такое, что человек получает оффер, ниже своих ожиданий, или при поступлении на работу узнает, что нельзя пользоваться интернетом (такой маразм есть, ага!). Все условия оплаты и работы должны быть обговорены ещё ДО начала собеседования (если будут расхождения Ваших интересов — вы просто потеряете время).
Что подскажет нам, что рекрутеры действительно заинтересованы в Вас. Приведем пару пунктов
1. Вас сразу собеседует тех. специалист
Это прекрасно, и это значит, что люди не хотят тратить время на лишнюю бюрократию, у них нет большого потока и отсева людей. Более того, чаще всего — если собеседование ведёт один технический специалист, то это идеальные шансы на успех. Если их уже двое или трое (а иногда и больше) — это плохо. Угодить сразу всем — очень сложно. К тому же, почему один человек не в состоянии оценить вашу компетенцию? Зачем для этого целая делегация. Люди часто имитируют работу, а поиск кандидата это тоже работа. Если на ваше собеседование пришло 5 человек, то что-то тут не так…
2. Вас спрашивают только то, что имеет отношение к делу
Вы .NET разработчик? ответье, что такое классы\интерфейсы\наследование. Вы Front-End разработчик? Тогда пожалуйста скажите, что такое анонимная функция и отличия const от let.Это примеры адекватных вопросов, которые напрямую имеют отношения к реальной жизни. Невообразимый бред спрашивать .net разраба о том, что такое мьютексы и семафоры?, а front-end разраба о том, что такое оператор тильда.
Что подскажет, что это проходимцы, с которыми не стоит связываться
1. «Мы ищем и джуна и мидла и тим-лида» (с)
Это означает только то, что вопросы будут 99% на тим-лида, а значит они не ищут джунов и мидлов.
2. Если до вас взяли несколько человек, но все они не прошли испытательный срок.
Вероятность того, что несколько человек подряд не прошли испыталку — принебрежимо мала. И скорее всего нам это говорит о том, что работодатель просто экспериментирует в т.ч. за счет вашего времени.
3. Они уже ищут долго, или изначально говорят что будут искать еще несколько недель.
Мой опыт показывает, что такие рекрутёры никогда не возвращаются с фидбеком даже при очень успешном прохождении интервью, и их поиск затягивается на месяцы и годы.
Любое собеседование в разработке — это лотерея.
Каждый опытный разработчик обладает знаниями, которыми не обладает другой точно такой же разработчик, в том же стеке, на том же языке, на тех же фреймворках. Прикиньте, Да? но это факт. В нашей профессии приходится узнавать настолько много всего нового, и пул задач настолько широк и непредсказуем, что очень часто некоторые знания приходится применить пару раз в жизни, или даже никогда. Однако, это все равно могут спросить на собеседовании, аргументируя словами
«Мы просто хотим понять, насколько глубоко ты разбираешься» (с)Всё это сказки. Любой разработчик со стажём может с легкостью потопить любого другого разработчика в теоретических и практических вопросах, просто потому, он имеет буфер рандомных знаний, который, в силу обстоятельств, ему пришлось узнать и применить лишь однажды, а другому нет! Важно это понимать. Ведь как-нибудь вас спросять очередную нелепую чушь с 25 страницы третьего абзаца книжки на третьей полке, и нужно быть готовым к этому.
Люди любят доминировать
Вот тут нужны подробности:
Невероятно частое явление — это желание человека доминировать. Извращенное конечно же.
Более высокий социальный статус являет собой аргумент, который дает приемущества в любом виде коммуникации. Это как бы козырная карта о том, что ты в целом хуже качества, несмотря даже на то, что в моменте доминант себя глупее ведет.
Если в информационном пространстве остаются слепые зоны об участниках коммуникации, то когда приходится исходить из предположений о качествах личности — приемущество отдается тому, у кого выше социальный статус.(больше з/п например, или должность выше), больше власти, больше сфера влияния… ну и просто дополнительные бонусы типо самоутверждения там… Оскорбления у доминанта выглядят много сильнее (правдоподобнее — типо авторитетный же челочек вон как высоко сидит, наверное что-то знает...)
Да и вообще преимущества более высокого социального статуса в одной и той же группе людей очевидны…
На ум приходит как рокфеллер учил форда кажется (возможно это были другие миллиардеры): Вкратце, он научил что конкурентную борьбу можно выиграть не только тем, что бы производить лучший продукт, а еще и тем что бы убивать малые бизнесы, у которых лучший продукт.
Я замечу еще, что походу некоторые не так глубоко понимающие вопрос путают это желание доминировать с боязнью, что конкурент займёт твое место… рядом, но местами не все стыкуется с таким видением. Как мне кажется, объяснение «желание доминировать» более гармонично все объясняет
Очень часто, люди преследуют своей целью унижение, доминирование и превосходство в беседе. Всё остальное лишь на втором плане. Это, если хотите, микро-воплощение фашизма в рамках одной беседы. Те же правила работают на собеседованиях. Показать себя круче\умнее\лучше для потенциального работодателя часто важнее, нежели что-либо другое.
Но и таких людей можно вычислить на ранних этапах, по менере речи, по типу задаваемых вопросов, и по отношению в целом.
Эпилог
Выстраивать красивую масштабируемую архитектуру — это навык. Поиск адекватного и порядочного работодателя, умение разбираться в сортах
AndyPike
Очень простые вопросы, даже обидно для Senior, it's not serious.
Джуны это должны понимать.
avost
Интересно. Судя по ответу, вы довольно часто сталкиваетесь с тестовыми заданиями на неделю или две? Это реально распространено? А в какой среде-области? Мне просто ни разу не приходилось с таким сталкиваться и я, если честно, уверен, то это какая-то байка. Нет? Вернее, пару раз от момента когда я увидел задание и до момента, когда отослал результат проходила и неделя и больше (и один такой случай закончился удачным офером), но дело там было не в объёме работы, а в том, что область была та, где я до этого вообще ни в зуб ногой (вообще, у меня это почти всегда так получается — нафига переходить на другую работу, чтобы делать там то же самое, что на предыдущей?). То есть я неделю по вечерам разбирался в новой для себя технологии, потом за часа за три сделал задание. Но чтобы прям неделю плотной работы — ну, нафиг, конечно.
Это фигня, я там дальше чаем подавился (два раза — второй раз но слове сИмафоры :) ), — "Невообразимый бред спрашивать .net разраба о том, что такое мьютексы и симафоры?" — Не, я тоже нифига не помню в чём там разница, но почему это невообразимые бред? Вопрос, как вопрос :). Кстати, с точки зрения претендента очень полезно перед собеседованиями прям взять посидеть и прокачать знания по многопоточности до довольно глубоких глубин. Пригодится или нет — бабка надвое сказала (во всяком случае, небесполезно при поиске косяков, даже если сам не пишешь конкарент код), но на собеседовании даже если дойти всего лишь до уровня модели памяти и happens-before — это производит глубокое и очень положительное впечатление на интервьюеров :).
TiberiusASP Автор
Практика показывает, что вероятность использования Mutext\Semaphore на практике стремится к нулю (в веб разработке скорее всего именно 0). Тем более когда есть более человекоудобные решения, такие как TPL\lock.
shai_hulud
Эээ, как раз в вебе конкуренции больше всего (из-за параллельности запросов), и часто требуется знать про lock-free и blocking алгоритмы доступа к ресурсам.
Второе место, где это же надо знать это gamedev back-end, но это более редкая работа, чем веб-программирование.
А SemaphoreSlim в доднете вообще самый простой способ организовать очередь к одному ресурсу. Он же является аналогом MutexSlim. Его надо знать.
TiberiusASP Автор
за 8 лет, везде где я работал, никто не использовал это ни разу. (5+ разных энтерпрайс высоконагружнных проектов). И не знаю никого, ктобы использовал.
А теперь вопрос. На кой хрен об этом спрашивать, когда есть более актуальные и важные вещи?
Как показывает практика, проецируя на математику:
На собеседовании тебя спрашивают доказательство теоремы Ферма, а когда тебя наняли ты решаешь максимум квадратные уравнения.
Давайте уже быть реалистами, нет смысла спрашивать то, что используется максимум раз в никогда
shai_hulud
Это понятно, что люди не применяют то, что не знают как правильно применять.
И человек нанимает людей со знаниями подобными своим.
Но для личного роста и команды надо нанимать разных людей, включая более опытных чем сам.
btw. хороший математик в команде лишним не будет т.к. у некоторых задач помимо решения «в лоб» есть и математическое решение.
TiberiusASP Автор
Одно совершенно не вытекает из другого: То что люди этого не применяют, совсем не означает, что они не знают «как» это применять.
Нанимать надо тех, кто справится с задачей, а не тех за счет кого «я буду развиваться» — это паразитизм на рынке труда в чистом виде.
btw. Для решений квадратных уравнений — нужно уметь решать квадратные уравнения, а не доказывать теорему Ферма или Коши. Акстись дружище
taujavarob
const — это была ошибка введённая в спецификацию языка. const не нужен.
Нужен только и только let
Но чтобы это понять, не хватит знаний и Senior.