Похоже на этом интервью вы явно были, а не я. Так как явно лучше знаете что там было .
На этом интервью меня, конечно, не было, зато я был на нескольких сотнях других интервью.
И очень хорошо запомнил урок, преподанный одной снежинкой.
Которой я прямо сказал, почему я не могу эту нежную душу (с уровнем знаний о программировании примерно как после прочтений одной клавы в книге “как изучить Java за 21 деньс и, буквально, без представления о разнице между if и while) рекомендовать.
Ну есть же какой-то предел, после которой абсолютно безнадёжному кандитату можно прямо сказать, что он безнадёжен?
Оказалось нет: получил жалобу рекрутеру, где объяснилось, какой я гад, нехроший, какую душевную травму нанёс и что если бы не я, то ей бы предложили работу.
Далее — изрядный втык, разбор полётов и спасло меня только то, что я был единственным, кто рекомендовал через годик позволить проинтервьюироваться ещё раз.
Остальные (которые успешно создали, по итогу, впечатление, что собеседование пройдено отлично, можно было бы готовить документы, если бы не злой я) были куда как более категоричны и большинство рекомендовали сделать отметку в базе, чтобы в будущем время не тратить на безнадёжную кандидатуру.
Потому в вашем случае (если бы это было бы можно проверить) зная о том, что кандидат, который, как вы считаете, вас завалил — русский эмигрант, я бы поставил хорошие деньги на то, что он написал если не лучший о вас отзыв, то близкий к лучшему.
А наихудший отзыв вы, почти наверняка, получили от американца, который лучился счастьем и говорил, что вы поражаете его своими знаниями.
Ну не умеют русские так! Сначала изображать “искреннее восхищение”, а потом повернуться и написать рекомендацию в течении пяти лет даже не приглашать вас на интервью.
А мне нужно на каждую очевидную вещь официальное письмо с подписью?
Нет, не нужно, но тут нет “очевидных вещей”.
Русских не учат в школе, в течении десяти с лишним лет, что главное — чтобы, не дай бог, “творческая натура“ не ощутила себя обиженной и не потеряла веру в себя (а для того, чтобы её не взяли в команду, не рекомендовали в сильный класс, не приняли на работу и так далее есть объективная оценка, которая “творческой натуре“ никогда и ни при каких условиях не сообщается).
Американце учат и они умеют это делать в совершенстве.
Потому из вашего описания истории я и делаю совсем-совсем другой вывод, чем вы.
Раньше был тренд еще спрашивать об участии в каком нибудь опенсорс проекте и твоем программировании после работы.
Раньше — это когда? Я много раз слышал об этом в стиле “одна бабка сказала, что так делают”, но никогда не видел этого воочью.
Ну разве что у совсем “зелёного” кандидата, у которого в CV вообще ни одного места работы и институт какой-то непонятный, так что уж совсем нет никаких сигналов об адекватности.
Забавно, кстати, что предложения о том, чтобы такое поспрашивать скорее исходят от самих кандидатов. Типа это полезнее, чем деревья обходить.
Да собственно вот тут же, в очередной раз нам рассказывают о GitHub, о том, чтобы вы код показали и так далее — как о правильном способе отбора кандидатов.
Тот факт, что огромный процент хороших кандидатов связаны NDA и никакого кода вам показать не смогут (а индусы, наоборот, покажут вам код написанный, хорошим знакомым и набросают вам кучу лапши на уши) — не учитывается совершенно.
Было 4 разных алогритмические задачи. Я не прошел, потому что собеседующий (русский эмигрант оказавшийся кстати) решил проверить как я за 15 минут напишу функцию Eval для арифметических выражений, да еще перебирающая все варианты как будто приоритет операций не известен. Я расказал принцип, но писать даже и не собирался начинать.
Это вам так сказали, что вы из-за этого не прошли? Вообще странно: я не думал, что в Microsoft разрешено кандидатам такие вещи говорить. Хотя если от них начали требовать писать официальную причину отказа, то могли и так написать, возможно.
Вообще поражает вот именно эта уверенность кандидатов в том, что их “отсеивают” из-за того, что они чего-то там не сделали, какую-то задачу не решили.
Ну не “отсеивают” за это! Разве что в совершенно диком, паталогическом, случае, когда вы не решили вообще ни одной задачи и не ответили ни на один вопрос.
А вот за “кривляния” (в духе @xJAYx ) — “отсеивают” легко. Потому что, внезапно, если вы устраиваетесь в компанию, то людям интересно, чтобы вы делали то, что нужно компании, а не то, что интересно вам.
Помните Джоела? Умный человек, способный решать проблемы — вот именно это то, чего хотят увидеть. Только Джоел важное слово пропустил (хотя из последующего текста видно, что он его подразумевал): нужен не просто умный человек, способный решать проблемы, но умный человек, способный решать поставленные перед ним проблемы (а не те, которые захочется).
И “отсеивают” вас не за то, что вы чего-то там не знаете, а за то, что вы “на блох” переехать пытаетесь. Вот если бы у рыбы была шерсть, то в ней были бы блохи… — вот это вот то, чего категорически не хочет видеть интервьюер.
Он хочет увидеть как вы будете решать вот конкретно эту, конкретно данную вам данную, проблему (а не что-то ещё). И самая ужасное, что вы можете сделать — это, вместо того, чтобы решать ту проблему, которую вам дали, попытаться как-то “переехать” на ту тему, которая вам знакома.
Я бы с удовольствием предпочел решать вот такие задачи какие они дают на собеседованиях, а не с тем что в реальности мне приходится сталкиваться.
Ну дык интервьюер тоже так же, резонно, считает. Вам дали простую проблему, а “в позу” становитесь.
И да, интервьер, если у него есть опыт, прекрасно знает, что некоторые простые проблемы для каких-то людей оказываются сложными. Это не страшно. Всегда можно дать вместо 15 минут на задачу 30. Или, наоборот, увидеть, что и за 30 минут ничего не решится и попросить решить что-нибудь другое.
И даже если вас реально отсеяли из-за той задачи с приоритетами, то не за то, что вы её не решили, а за то что, что посчитали себя “имеющим право решать” — стоит там код писать или нет.
Вы, ёлки ж палки, посмотрите с другой стороны: человека ещё не только не взяли на работу, он ещё даже собеседование не прошёл — и он уже присвоил себе право решать: нужно ту или иную работу делать или нет. А что потом будет? Когда и если его таки на работу возьмут?
Тоесть Конрада Кокосу вы бы тоже не взяли, а то мы с ним обсуждали данный момент
Если бы Конрад начал чушь пороть про то, где структуры хранятся и мешать в одну кучу C#-машину из спеков и реальный компилиятор? Нет, не взяли бы.
Но вот чегой-то я сомневаюсь, что он бы начал всё рассказывать в таком тоне.
Люди, которые, с упорством, достойным лучшего применения, рассказывают про то, что про математику спрашивать не нужно, про деревья спрашивать не нужно, просить писать программу — да как вы смеете и так далее, почему-то не задумываются, что ваше отношение ведь видно и в обсуждении любых других, чисто технических вопросов.
Условно:
Кстати в большинстве случаев собеседующие сами не знают корректного ответа, так как структура может хранится и не в куче и не на стеке
“Умён… крут… не брать”
Да, структура хранится в стеке, а обычные объекты — в куче, но так как любые абстракции протекают, то в случае реального компилятора всё может быть не совсем так… а давайте об этом поговорим поподробнее…
И, скорее всего: “умён… крут… брать”.
Видите разницу?
В одну строку. Очень просто, если работать не в контуре и знать как ValueType'ы могут передаваться в методы, конечно же.
Да-да. Это — самый лучший способ быстро и надёжно получить отказ. Когда интервьюеруемый, внезапно, забывает, кто тут кому работу предлагает… вывод быстро становится очевидным.
Самый феереичный пример у нас был, когда кандидату, который ответил на все вопросы все пять интервьюеров выставили оценку “не брать”. Вот именно за это.
И да, продолжайте в том же духе: это очень облегчит мне мою работу по отсеву неадекватов.
P.S. И да, подобные эффекты иногда можно и пообсуждать, почему нет. Но, как правило, не на собеседовании и уж точно не когда интервьеруемый считает, что это ему кто-то там чем-то обязан, а не наоборот.
Почитал. Тот факт, что до 1997го года проблема не существовала и, соответственно, в тех книжках по которым я учился, упоминаться не могла, оправданием являться не может, как и то, что проявляемые симптомы ровно такие же, как у проблем с кешами (ровно потому что речь идёт, фактически, о кеше внутри планки памяти).
Самое обидное, что о том факте, что SDRAM, в отличие от более ранних DRAM, может выдавать более одного бита после “открытия” строки я когда-то даже читал (да, собственно, на этом все эти DDR/DDR2/DDR3/DDR4/DDR5 основаны, иначе в них бы особого смысла бы не было). Но вот о том, что контроллеры SDRAM могут тупо не закрывать строку и продолжать её держать открытой после забора строки в кеш… даже не думал как-то. Интересно, что будет, если банально ничего не “оптимизировать” и передав столько байт, сколько нужно по протоколу, (для DDR5 это, соотвественно, 256 байт), закрывать строку? Точно потери в производительности будут настолько существенными, что это станет проблемой?
Однако… конечный вердикт остаётся неизменным. Как в части “кандидат очень умён”, так и в части “не брать ни в коем случае”. Потому что что во время собеседования опции “я потроллю собеседующего, он “проникнется” и предложит мне работу его начальником” у вас просто нет.
Если вашей задачей явлеяется устройство на работу, то никакого троллинга собеседующих вы себе позволить не можете. Даже же вы хотите просто потратить их время… троллинг всё равно контрпродуктивен: обычно отказать таким кандидатам гораздо быстрее и проще, чем тем, кто чего-то не знает. Так что, в конечном счёте, вы своего времени потратите больше, чем рекрутерского.
И Java так умеет. И C#. Это вообще не о размещении объектов, а о банальном as if правиле: компилятор может сделать с вашей программой и с вашими объектами и структурами что угодно, пока это невозможно заметить “снаружи” иначе, как с помощью дизассемблера.
Когда обсуждается вопрос “а где хранятся структуры (или не структуры)” всегда обсуждается семантика в рамках C-машины, C#-машины, Java-машины.
Нафига сюда тащить то, что к делу отношния не имеет?
P.S. А вообще я с подобными троллями на собеседованиях иногда сталкиваюсь. Отзыв обычно такой: “кандидат очень крутой, очень много знает, действительно вау… не брать ни в коем случае”. Потому что кроме умения решать те или иные задачи и чего-то там знать нужно ещё понимать: будет ли этот человек применять знания во благо или во вред. Ну и, как бы, после такого… вывод однозначен. Ещё троллей мне на работе не хватало.
Прочитал. Офигел. И теперь такой офигевший и сижу.
Потому что, с одной стороны, присланные мне проблемы весьма реальны.
С другой стороны — найти по словосочетанию “row buffer” что-то имеющее отношение к описанным проблемам так же легко как по словам “вёсла”, “проливы” и “гребной винт” — что-то, имеющее отношение к высшему пилотажу.
А row buffer… ну вот тут на картинке можете посмотреть что это такое и понять почему к быстродействию это всё не имеет ни малейшего отношения (а вот к безопасности — таки да).
А так-то да. “Троллить сеньоров”, рассказывая им, что они понятия не имеют о том, как летать на самолётах, потому мало чего знают о том, как течения влияют на морские грузоперевозки… ну, такое.
это поможет понять насколько он будет заинтересован расти в вашей компании, да и в целом насколько интересуется разработкой.
Это в мире розовых поней так.
Ваш же подход практически не отличается от подкидывания монетки.
Ой ли? Вот возьмите мистера мне-все-работодатели-должны-ноги-целовать. Который аж специально зарегистрировался, чтобы высказать до какой степени он велик и заявить, что интересны компании и мои не пересекутся, и уж точно мои не станут ниже по приоритету.
Какова вероятность того, что такой, с позволения сказать, работник, вообще согласится проходить ваше собеседование и какова вероятность того, что у него окажутся нужные для этого знания?
Правильно: примерно где-то в районе нуля. Что снижает затраты на общение с ним как у инженеров, так и у HR.
А вот как раз про разные “самые увлекательные для него проекты” он может много чего нарассказывать.
Джунов нанимают для выполнения каких-то задач и в надежде, что прежде чем они покинут компанию, они дорастут до мидлов, а лучше до сеньеров.
Джунов нанимают для того, чтобы они делали что им скажут. Точка.
Рассказы про богатый внутренний мир и прочие душевные переживания они могут оставить при себе до того момента, пока не станут руководителями какого-нибудь стартапа и не придут с каким-нибудь интересным продуктом. И будут продвать, тогда, уже не свои руки и голову, а этот самый продукт (вместе с командой, да).
И да, в принципе, ваши разговоры по душам тоже могут прояснить эту ситуацию, но они требуют гораздо больше усилий по интерпретации.
Вот зачем спрашивать обход деревьев, если в 90℅ это не нужно?
Затем, чтобы выяснить — собирается ли идивидуум делать то, что от него просят или нет.
Если он в колледже, вместо того, чтобы учиться, водил романы с барышнями — где гарантия, что он у вас будет чем-то другим заниматься?
Вы же сами написали, что не знали и этого вам по всей видимости не давали, таким образом, вы просто пошли и набили руку на этих деревьях на онлайн тестах, но это ничего не говорит о том, усвоен материал или нет так как, через пару лет, если лет этого не используете, вы просто забудете всё и будете чист как стеклышко.
Бред какой. Послдний раз я Кормана открывал больше 10 лет назад, но это не мешает мне спокойно решать все эти задачки с собеседования.
Они ж простенькие все, никто не будет вас просить писать что-то, что потребует больше 100 строк кода.
Не стоит ожидать от Джуна ответов на все алгоритмы и тонкости работы фреймворков.
А чего, извините, от него ещё ожидать? Самое же главное ведь даже не то, сможет ли он чем-то там обучиться. Куда важнее другой вопрос: а захочет ли?
И задавая вопрос про деревья вы, одновременно, отвечаете на оба этих вопроса.
Да, только у тех, кто учился в колледже, но в чём проблема-то? Отсевом остальных можно просто пренебречь. Читаем Паркинсона ещё раз.
Но сейчас мне это не надо, у меня есть 1 ассемблерная команда, которая это делает. И я их все забыл.
Но сейчас вы же и не будете на позицию джуниора устаиваться.
А зачем? Я понимаю, если бы джунов не хватало и за ними охотились бы… но ведь нет этого. Их на любую вакансию толпы приходят, задача же как-то из этой толпы выбрать двух-трёх.
Как будто бы есть какая то разница, где они хранятся.
Конечно есть. Важно же, на самом деле не где конкретно они хранятся, а что для обращения к ним не нужно ходить через указатель.
Хотя среди интервьюеров процветает карго-культ, когда задаются разумные вопросы (типа того же вопроса про устройство GC), но вместо вещей принципиальных (например про наличие нескольких поколений объектов и вытекающих из этого практических следствий) ударяются в умение цитировать спеки.
Как будто их зазубривание кому-то помогает в работе.
Задачка действительно несложная, но только для того, кто какое-то количество таких задачек прорешал. То есть, внезапно, джуна после колледжа.
А учиться сейчас народ не очень любит, хотят пройти курсы “как научиться проходить собеседование в FAANG” за 21 день и после этого устроиться на работу на зарплату в верхних 10%.
Некоторым, кстати, удаётся вполне себе проскочить, но тут надо даже не столько круто готовится, сколько сходить на сотню-другую собеседований, авось где-то да проскочишь.
Зачем задавать ему вопросы из совсем разных областей для меня загадка.
Чтобы убедиться что материал всех 4х лет хорошо усвоен.
Я не знаю как в других конторах, но по моему мнению, джун должен уметь думать, системно мыслить и быть обучаемым.
Понимаете: вы, как и все соискатели, пишущие 100500ю статью на тему “почему у известных контор такие безумные собеседования” — смотрите на задачу со своей стороны (хотя иногда проблески встречаются, например соискателей на младшие позиции валят на собеседованиях пачками и для этого в компаниях, видимо, есть специальные «сеньоры» — это уже теплее).
А смотреть нужно со стороны работодателя. Вы ж к нему идёте, а не он к вам.
Не те книги вы читали, ох не те. Какой смысл вообще идти на собеседование, забыв знаменитое Паркинсоновкое:
"Требуется премьер-министр Руритании. Рабочие часы - с 4 утра до 11:59 вечера. Соискатель должен выдержать три раунда с чемпионом в тяжелом весе (в перчатках). По достижении пенсионного возраста (65 лет) - мучительная смерть во имя родной страны. Если соискатель знает парламентскую процедуру лишь на 95%, он будет физически уничтожен. Если он соберет меньше 75% голосов при проверке популярности по методу Гэллапа, он также будет уничтожен. Кроме того, соискатель должен обратиться с речью к съезду баптистов и склонить их к изучению рок-н-ролла. В случае провала будет уничтожен.
Явиться в спортклуб (с черного хода) 19 сентября в 11:15. Перчатки предоставляются; кеды, майка и шорты - свои".
Да, понятно, что до выкидывания в урну половины CV из пачки с заявлением “нам не нужны неудачники” не доходит, но, в принципе, любые требования, уменьшающие количество кандидатов и улучшающие их качество годятся.
Что вас удивляет? Что у вас спросили задачку с LeetCode или кусочек спецификации языка, на котором вы уже не один год работаете? А почему нет, собственно? Это же улучшит качество не отсеянных кандидатов? Значит — годится.
И да, если кандидатов не хватает требования приходится снижать. Об этом Паркинсон тоже пишет…
А если не придет никто?
Значит, в чем-то мы завысили требования.
То же самое небольшое объявление предложим в измененном виде. Например, 95% заменим на 85, 75 -на 65, а три раунда - на два. И так далее, пока соискатель не придет. Предположим, однако, что придут двое или трое.
Это покажет, что мы допустили промах в научных расчетах. Быть может, мы слишком занизили проценты - их должно быть 87 и 66. Как бы то ни было, дело плохо. В приемной два, а то и три соискателя. Надо выбирать, а мы не вправе тратить на это все утро. Можно, конечно, начать испытания и отсеять менее достойных. Но есть и более быстрый путь.
Примем, что у всех троих есть все нужные качества. Остается прибавить еще одно и провести простейшую проверку.
Мы спрашиваем какую-нибудь девицу (машинистку или секретаршу): "Который вам больше нравится?" Она тут же отвечает, и вопрос решен. Нам возразят, что мы полагаемся здесь на чистую случайность, как бы бросаем монету. Это не так. Мы просто ввели новое качество - мужскую привлекательность.
А вы, не усвоив азов технологии собеседований, лезете в какие-то технические детали…
Когда это они говорили, извините? FAQ 2009го года сильно лаконичный, там про дженерики вообще ничего, ни плохого, ни хорошего, но в 2011м они уже говорили, что будут, но не сразу.
Проблема в том, что, похоже, у них некому поддерживать старый редактор.
Вроде бы у них были две команды, которые пилили “настольную” версию и “мобильную”.
Было принято стратегическое решение отказаться от “настольной” и допилить “мобильную”.
С вероятностью 99%, после такого решения люди, разрабывавшую “настольную” версию уволились и поддерживать её тупо некому.
Примерно так Google, имея неплохой задел в виде Google Talk, добился того, что всеми его высерами типа Google Hangouts, Google Duo и прочим никто не пользуется.
Зато куча людей, наверняка, бонусы получили за инновации.
Ну а чего вы хотите, собственно? Нормальный результат современной разработки.
Когда всё очень agile и прям офигительный velocity и stand up ы каждый день и вообще всё круто.
В какой-то момент выясняется что несмотря на то, что все уже выбились из сил и закрывают по три бага в день — результат всё равно дерьмо.
Нанимают разработчиков и начинают закрывать по восемь багов в день — результат становится ещё хуже.
В какой-то момент понимают, что проблемы не в недостатке velocity, но людей, умеющих разработывать по другому в команде уже давно нет. Они ушли ещё тогда, когда ввели ежедневные stand up ы.
Так что извините: жрите что дают пользуйте что есть. И молитесь на то, чтобы velocity не увеличили ещё.
На этом интервью меня, конечно, не было, зато я был на нескольких сотнях других интервью.
И очень хорошо запомнил урок, преподанный одной снежинкой.
Которой я прямо сказал, почему я не могу эту нежную душу (с уровнем знаний о программировании примерно как после прочтений одной клавы в книге “как изучить Java за 21 деньс и, буквально, без представления о разнице между
if
иwhile
) рекомендовать.Ну есть же какой-то предел, после которой абсолютно безнадёжному кандитату можно прямо сказать, что он безнадёжен?
Оказалось нет: получил жалобу рекрутеру, где объяснилось, какой я гад, нехроший, какую душевную травму нанёс и что если бы не я, то ей бы предложили работу.
Далее — изрядный втык, разбор полётов и спасло меня только то, что я был единственным, кто рекомендовал через годик позволить проинтервьюироваться ещё раз.
Остальные (которые успешно создали, по итогу, впечатление, что собеседование пройдено отлично, можно было бы готовить документы, если бы не злой я) были куда как более категоричны и большинство рекомендовали сделать отметку в базе, чтобы в будущем время не тратить на безнадёжную кандидатуру.
Потому в вашем случае (если бы это было бы можно проверить) зная о том, что кандидат, который, как вы считаете, вас завалил — русский эмигрант, я бы поставил хорошие деньги на то, что он написал если не лучший о вас отзыв, то близкий к лучшему.
А наихудший отзыв вы, почти наверняка, получили от американца, который лучился счастьем и говорил, что вы поражаете его своими знаниями.
Ну не умеют русские так! Сначала изображать “искреннее восхищение”, а потом повернуться и написать рекомендацию в течении пяти лет даже не приглашать вас на интервью.
Нет, не нужно, но тут нет “очевидных вещей”.
Русских не учат в школе, в течении десяти с лишним лет, что главное — чтобы, не дай бог, “творческая натура“ не ощутила себя обиженной и не потеряла веру в себя (а для того, чтобы её не взяли в команду, не рекомендовали в сильный класс, не приняли на работу и так далее есть объективная оценка, которая “творческой натуре“ никогда и ни при каких условиях не сообщается).
Американце учат и они умеют это делать в совершенстве.
Потому из вашего описания истории я и делаю совсем-совсем другой вывод, чем вы.
Раньше — это когда? Я много раз слышал об этом в стиле “одна бабка сказала, что так делают”, но никогда не видел этого воочью.
Ну разве что у совсем “зелёного” кандидата, у которого в CV вообще ни одного места работы и институт какой-то непонятный, так что уж совсем нет никаких сигналов об адекватности.
Забавно, кстати, что предложения о том, чтобы такое поспрашивать скорее исходят от самих кандидатов. Типа это полезнее, чем деревья обходить.
Да собственно вот тут же, в очередной раз нам рассказывают о GitHub, о том, чтобы вы код показали и так далее — как о правильном способе отбора кандидатов.
Тот факт, что огромный процент хороших кандидатов связаны NDA и никакого кода вам показать не смогут (а индусы, наоборот, покажут вам код написанный, хорошим знакомым и набросают вам кучу лапши на уши) — не учитывается совершенно.
Это вам так сказали, что вы из-за этого не прошли? Вообще странно: я не думал, что в Microsoft разрешено кандидатам такие вещи говорить. Хотя если от них начали требовать писать официальную причину отказа, то могли и так написать, возможно.
Вообще поражает вот именно эта уверенность кандидатов в том, что их “отсеивают” из-за того, что они чего-то там не сделали, какую-то задачу не решили.
Ну не “отсеивают” за это! Разве что в совершенно диком, паталогическом, случае, когда вы не решили вообще ни одной задачи и не ответили ни на один вопрос.
А вот за “кривляния” (в духе @xJAYx ) — “отсеивают” легко. Потому что, внезапно, если вы устраиваетесь в компанию, то людям интересно, чтобы вы делали то, что нужно компании, а не то, что интересно вам.
Помните Джоела? Умный человек, способный решать проблемы — вот именно это то, чего хотят увидеть. Только Джоел важное слово пропустил (хотя из последующего текста видно, что он его подразумевал): нужен не просто умный человек, способный решать проблемы, но умный человек, способный решать поставленные перед ним проблемы (а не те, которые захочется).
И “отсеивают” вас не за то, что вы чего-то там не знаете, а за то, что вы “на блох” переехать пытаетесь. Вот если бы у рыбы была шерсть, то в ней были бы блохи… — вот это вот то, чего категорически не хочет видеть интервьюер.
Он хочет увидеть как вы будете решать вот конкретно эту, конкретно данную вам данную, проблему (а не что-то ещё). И самая ужасное, что вы можете сделать — это, вместо того, чтобы решать ту проблему, которую вам дали, попытаться как-то “переехать” на ту тему, которая вам знакома.
Ну дык интервьюер тоже так же, резонно, считает. Вам дали простую проблему, а “в позу” становитесь.
И да, интервьер, если у него есть опыт, прекрасно знает, что некоторые простые проблемы для каких-то людей оказываются сложными. Это не страшно. Всегда можно дать вместо 15 минут на задачу 30. Или, наоборот, увидеть, что и за 30 минут ничего не решится и попросить решить что-нибудь другое.
И даже если вас реально отсеяли из-за той задачи с приоритетами, то не за то, что вы её не решили, а за то что, что посчитали себя “имеющим право решать” — стоит там код писать или нет.
Вы, ёлки ж палки, посмотрите с другой стороны: человека ещё не только не взяли на работу, он ещё даже собеседование не прошёл — и он уже присвоил себе право решать: нужно ту или иную работу делать или нет. А что потом будет? Когда и если его таки на работу возьмут?
Если бы Конрад начал чушь пороть про то, где структуры хранятся и мешать в одну кучу C#-машину из спеков и реальный компилиятор? Нет, не взяли бы.
Но вот чегой-то я сомневаюсь, что он бы начал всё рассказывать в таком тоне.
Люди, которые, с упорством, достойным лучшего применения, рассказывают про то, что про математику спрашивать не нужно, про деревья спрашивать не нужно, просить писать программу — да как вы смеете и так далее, почему-то не задумываются, что ваше отношение ведь видно и в обсуждении любых других, чисто технических вопросов.
Условно:
“Умён… крут… не брать”
И, скорее всего: “умён… крут… брать”.
Видите разницу?
Да-да. Это — самый лучший способ быстро и надёжно получить отказ. Когда интервьюеруемый, внезапно, забывает, кто тут кому работу предлагает… вывод быстро становится очевидным.
Самый феереичный пример у нас был, когда кандидату, который ответил на все вопросы все пять интервьюеров выставили оценку “не брать”. Вот именно за это.
И да, продолжайте в том же духе: это очень облегчит мне мою работу по отсеву неадекватов.
P.S. И да, подобные эффекты иногда можно и пообсуждать, почему нет. Но, как правило, не на собеседовании и уж точно не когда интервьеруемый считает, что это ему кто-то там чем-то обязан, а не наоборот.
Почитал. Тот факт, что до 1997го года проблема не существовала и, соответственно, в тех книжках по которым я учился, упоминаться не могла, оправданием являться не может, как и то, что проявляемые симптомы ровно такие же, как у проблем с кешами (ровно потому что речь идёт, фактически, о кеше внутри планки памяти).
Самое обидное, что о том факте, что SDRAM, в отличие от более ранних DRAM, может выдавать более одного бита после “открытия” строки я когда-то даже читал (да, собственно, на этом все эти DDR/DDR2/DDR3/DDR4/DDR5 основаны, иначе в них бы особого смысла бы не было). Но вот о том, что контроллеры SDRAM могут тупо не закрывать строку и продолжать её держать открытой после забора строки в кеш… даже не думал как-то. Интересно, что будет, если банально ничего не “оптимизировать” и передав столько байт, сколько нужно по протоколу, (для DDR5 это, соотвественно, 256 байт), закрывать строку? Точно потери в производительности будут настолько существенными, что это станет проблемой?
Однако… конечный вердикт остаётся неизменным. Как в части “кандидат очень умён”, так и в части “не брать ни в коем случае”. Потому что что во время собеседования опции “я потроллю собеседующего, он “проникнется” и предложит мне работу его начальником” у вас просто нет.
Если вашей задачей явлеяется устройство на работу, то никакого троллинга собеседующих вы себе позволить не можете. Даже же вы хотите просто потратить их время… троллинг всё равно контрпродуктивен: обычно отказать таким кандидатам гораздо быстрее и проще, чем тем, кто чего-то не знает. Так что, в конечном счёте, вы своего времени потратите больше, чем рекрутерского.
Вам бы какую-нибудь книжку про то, как устроены компиляторы купить, что ли?
Последнее дело пытаться что-то обсуждать, глядя на ассемблерный код.
Вот, например, встречный вопрос: а где находятся объекты, размещённые с помощью
malloc
и освобождённые с помощьюfree
? В куче, да?Чёрта с два: они тоже могут вообще не существовать. Получите, распишитесь.
И Java так умеет. И C#. Это вообще не о размещении объектов, а о банальном as if правиле: компилятор может сделать с вашей программой и с вашими объектами и структурами что угодно, пока это невозможно заметить “снаружи” иначе, как с помощью дизассемблера.
Когда обсуждается вопрос “а где хранятся структуры (или не структуры)” всегда обсуждается семантика в рамках C-машины, C#-машины, Java-машины.
Нафига сюда тащить то, что к делу отношния не имеет?
P.S. А вообще я с подобными троллями на собеседованиях иногда сталкиваюсь. Отзыв обычно такой: “кандидат очень крутой, очень много знает, действительно вау… не брать ни в коем случае”. Потому что кроме умения решать те или иные задачи и чего-то там знать нужно ещё понимать: будет ли этот человек применять знания во благо или во вред. Ну и, как бы, после такого… вывод однозначен. Ещё троллей мне на работе не хватало.
Прочитал. Офигел. И теперь такой офигевший и сижу.
Потому что, с одной стороны, присланные мне проблемы весьма реальны.
С другой стороны — найти по словосочетанию “row buffer” что-то имеющее отношение к описанным проблемам так же легко как по словам “вёсла”, “проливы” и “гребной винт” — что-то, имеющее отношение к высшему пилотажу.
Вот по ключевым словам starvation, cache coherency, false sharing и так далее — легко.
А row buffer… ну вот тут на картинке можете посмотреть что это такое и понять почему к быстродействию это всё не имеет ни малейшего отношения (а вот к безопасности — таки да).
А так-то да. “Троллить сеньоров”, рассказывая им, что они понятия не имеют о том, как летать на самолётах, потому мало чего знают о том, как течения влияют на морские грузоперевозки… ну, такое.
Это в мире розовых поней так.
Ой ли? Вот возьмите мистера мне-все-работодатели-должны-ноги-целовать. Который аж специально зарегистрировался, чтобы высказать до какой степени он велик и заявить, что интересны компании и мои не пересекутся, и уж точно мои не станут ниже по приоритету.
Какова вероятность того, что такой, с позволения сказать, работник, вообще согласится проходить ваше собеседование и какова вероятность того, что у него окажутся нужные для этого знания?
Правильно: примерно где-то в районе нуля. Что снижает затраты на общение с ним как у инженеров, так и у HR.
А вот как раз про разные “самые увлекательные для него проекты” он может много чего нарассказывать.
Джунов нанимают для того, чтобы они делали что им скажут. Точка.
Рассказы про богатый внутренний мир и прочие душевные переживания они могут оставить при себе до того момента, пока не станут руководителями какого-нибудь стартапа и не придут с каким-нибудь интересным продуктом. И будут продвать, тогда, уже не свои руки и голову, а этот самый продукт (вместе с командой, да).
И да, в принципе, ваши разговоры по душам тоже могут прояснить эту ситуацию, но они требуют гораздо больше усилий по интерпретации.
Почему же бессмысленно? Умение реализовать обход дерева показывает, что собеседуемый:
Учился таки тому, чему должен был учиться на соотвествующем направлении
Способен обучаться в приципе и имеет желание это делать
Ну и умеет написать-таки какой-то код.
Вполне себе пользительные качества, я бы сказал.
А считалочка… да, веселее, но улучшить качество кандидатов она же неспособна.
Я про row buffer только в контексте RAM знаю.
Если вы про row hammer, то это вообще не производительность, а про безопасность.
Или вы о чём-то другом вообще?
Разумеется нет.
Затем, чтобы выяснить — собирается ли идивидуум делать то, что от него просят или нет.
Если он в колледже, вместо того, чтобы учиться, водил романы с барышнями — где гарантия, что он у вас будет чем-то другим заниматься?
Бред какой. Послдний раз я Кормана открывал больше 10 лет назад, но это не мешает мне спокойно решать все эти задачки с собеседования.
Они ж простенькие все, никто не будет вас просить писать что-то, что потребует больше 100 строк кода.
А чего, извините, от него ещё ожидать? Самое же главное ведь даже не то, сможет ли он чем-то там обучиться. Куда важнее другой вопрос: а захочет ли?
И задавая вопрос про деревья вы, одновременно, отвечаете на оба этих вопроса.
Да, только у тех, кто учился в колледже, но в чём проблема-то? Отсевом остальных можно просто пренебречь. Читаем Паркинсона ещё раз.
Но сейчас вы же и не будете на позицию джуниора устаиваться.
А зачем? Я понимаю, если бы джунов не хватало и за ними охотились бы… но ведь нет этого. Их на любую вакансию толпы приходят, задача же как-то из этой толпы выбрать двух-трёх.
Конечно есть. Важно же, на самом деле не где конкретно они хранятся, а что для обращения к ним не нужно ходить через указатель.
Хотя среди интервьюеров процветает карго-культ, когда задаются разумные вопросы (типа того же вопроса про устройство GC), но вместо вещей принципиальных (например про наличие нескольких поколений объектов и вытекающих из этого практических следствий) ударяются в умение цитировать спеки.
Как будто их зазубривание кому-то помогает в работе.
Задачка действительно несложная, но только для того, кто какое-то количество таких задачек прорешал. То есть, внезапно, джуна после колледжа.
А учиться сейчас народ не очень любит, хотят пройти курсы “как научиться проходить собеседование в FAANG” за 21 день и после этого устроиться на работу на зарплату в верхних 10%.
Некоторым, кстати, удаётся вполне себе проскочить, но тут надо даже не столько круто готовится, сколько сходить на сотню-другую собеседований, авось где-то да проскочишь.
А почему? Чем он 4 года в колледже занимался?
Чтобы убедиться что материал всех 4х лет хорошо усвоен.
Понимаете: вы, как и все соискатели, пишущие 100500ю статью на тему “почему у известных контор такие безумные собеседования” — смотрите на задачу со своей стороны (хотя иногда проблески встречаются, например соискателей на младшие позиции валят на собеседованиях пачками и для этого в компаниях, видимо, есть специальные «сеньоры» — это уже теплее).
А смотреть нужно со стороны работодателя. Вы ж к нему идёте, а не он к вам.
Не те книги вы читали, ох не те. Какой смысл вообще идти на собеседование, забыв знаменитое Паркинсоновкое:
Да, понятно, что до выкидывания в урну половины CV из пачки с заявлением “нам не нужны неудачники” не доходит, но, в принципе, любые требования, уменьшающие количество кандидатов и улучшающие их качество годятся.
Что вас удивляет? Что у вас спросили задачку с LeetCode или кусочек спецификации языка, на котором вы уже не один год работаете? А почему нет, собственно? Это же улучшит качество не отсеянных кандидатов? Значит — годится.
И да, если кандидатов не хватает требования приходится снижать. Об этом Паркинсон тоже пишет…
А вы, не усвоив азов технологии собеседований, лезете в какие-то технические детали…
Паника — это и есть исключения.
И да — панику удобно кидать и крайне неудобно ловить и это так и задумано.
Когда это они говорили, извините? FAQ 2009го года сильно лаконичный, там про дженерики вообще ничего, ни плохого, ни хорошего, но в 2011м они уже говорили, что будут, но не сразу.
Он и потенциально и реально более безопасный.
Просто если в коммерческом софте ошибки встречаются, условно, по штуке на тысячу строк, то в опен-сорсе — штука на десять тысяч строк.
Но и там и там уязвимостей — вагон и маленькая тележка.
Проблема в том, что, похоже, у них некому поддерживать старый редактор.
Вроде бы у них были две команды, которые пилили “настольную” версию и “мобильную”.
Было принято стратегическое решение отказаться от “настольной” и допилить “мобильную”.
С вероятностью 99%, после такого решения люди, разрабывавшую “настольную” версию уволились и поддерживать её тупо некому.
Примерно так Google, имея неплохой задел в виде Google Talk, добился того, что всеми его высерами типа Google Hangouts, Google Duo и прочим никто не пользуется.
Зато куча людей, наверняка, бонусы получили за инновации.
А зачем? Нет, я серьёзно. Зачем это вам?
Развитие идёт по спирали и люди уходят в свои блоги.
Зачем вам продвигать площадку, которая всё делает для того, чтобы вы ушли?
Ну а чего вы хотите, собственно? Нормальный результат современной разработки.
Когда всё очень agile и прям офигительный velocity и stand up ы каждый день и вообще всё круто.
В какой-то момент выясняется что несмотря на то, что все уже выбились из сил и закрывают по три бага в день — результат всё равно дерьмо.
Нанимают разработчиков и начинают закрывать по восемь багов в день — результат становится ещё хуже.
В какой-то момент понимают, что проблемы не в недостатке velocity, но людей, умеющих разработывать по другому в команде уже давно нет. Они ушли ещё тогда, когда ввели ежедневные stand up ы.
Так что извините:
жрите что даютпользуйте что есть. И молитесь на то, чтобы velocity не увеличили ещё.