Pull to refresh

Comments 117

В целом неплохие идеи, но вот пример на memo/useMemo всё портит. Вы задаёте вопрос "что не так с этим облеченным кодом", уже имея в голове мемоизацию, хотя как бы отсутствие мемоизации это не признак "с этим кодом что-то не так".

Более того, это преждевременная оптимизация и вы скорее возьмете упоротого чела который будет вам мемоизировать колбеки на кнопку.

Возможно стоит спрашивать "что не так" только в одном случае - если код не работает. В остальных случаях следует явно обозначать проблему.

К сожалению, откладывание базовой оптимизации изначально закладывает мину замедленного действия, из за которого потом портится пользовательский опыт, и копится техдолг - очень опасная практика. Преждевременная переоптимизация это конечно зло, но ещё большее зло - не задумываться об оптимизации вообще.

Но тем не менее, если работает и не лагает, не нужно ничего "оптимизировать", особенно за счёт читаемости кода.
Да и на самом деле далеко не факт, что использование React.memo или useMemo ускорит что-то. Это ведь тоже накладные расходы, которые могут превышать расходы по рендерингу, например, 50 элементов списка. Если вы можете доказать, что это что-то ускорит - ок, но стоит ли платить за это худшей читаемостью кода? Я считаю, что нет.
Задумываться об оптимизации нужно, но только тогда, когда действительно есть проблема и тогда нужно её решать.

Кстати я проверил, реально ускоряет, на массиве из 10 штук аж на целых 70-100мс: https://codesandbox.io/s/react-component-benchmark-forked-j5lpkn

Это правда без оверхеда в виде мемоизации итемов и функций. Так что всё равно вопрос "что с этим кодом не так" получается слишком абстрактный и запутывающий.

Я бы и до этого комента заявил, что с этим кодом все отлично, а после - тем более. Чтобы послушать вот эти глупые подсказки вида "а что вас ничего совсем не смущает?" "совсем совсем?".

А потом в конце заявить автору "ах, вы наверное хотели оптимизировать компонент. А у вас в компании так же ТЗ ставят как вы сейчас или вы отдыхаете только на интервью?"

Вот-вот)
By default лично я использую useMemo в кастомных хуках, чтобы в будущем не думать об этом, когда использую что-то из хуков в зависимостях useEffect, например. Но это тоже не догма)

А так, если бы мне дали компонент на 300 или больше строк и спросили, что с ним не так, здесь намного однозначное был бы ответ.

70-100мс

70-100 ms это буквально 7-10 кадров (при 60 fps). Если бы оно действительно настолько оптимизировало, то это нужно было бы делать дефолтной механикой.

У вас же в примере тысячные от миллисекунды, то бишь наносекунды. В среднем это ускоряет рендеринг x2, но не сказать чтобы пользователь почуйствовал разницу.

Вот это поворот, минусы бенчмаркинга в 5 утра (-_- )

Спасибо за уточнение, это всё меняет и можно спокойно разносить собеседующих

работает и не лагает

в каких условиях? на каком устройстве? в каком окружении?

практика - подобная озвученной, когда якобы производительность устраивает - порочна. правильным следовало бы считать практику - получения максимальной производительности в рамках доступных ресурсов как на разработку, так и на обеспечение функционирования программы.

Предварительная оптимизация, как корень всех зол

єто фраза сказанная Дональдом Кнуттом не о том, что ненужно оптимизировать. Она о том, что нужно писать код так, чтобы компилятор мог єто сделать за человека.

Я не говорю про то, что не надо оптимизировать. Но не будем же мы оптимизировать абсолютно всё по-максимуму? В любом случае, 20% работы по оптимизации принесут 80% результата +-, а остальное и не надо, это уже лишнее, если вы не пишите шахматную программу, например, где по сути одна только оптимизация базового алгоритма и происходит. Не надо оптимизировать, ускоряя загрузку чего-либо на сотые доли, если это ухудшает читаемость кода. Не надо также "оптимизировать", не зная, принесёт ли это результат (используя бездумно useMemo и React.memo). Главное всё делать с пониманием.

На моей практике, значительное количество разработчиков толком не могут дать однозначный ответ, как и когда они решают использовать мемоизацию, а это очень просто🙂. А вот это “откладывание базовой оптимизации” звучит так, как будто бы программист вначале написал, а потом подумал.

Если у человека за плечами годы реально сделанных и работающих в проде проектов, зачем его что-то спрашивать? Нужно только убедиться в достоверности этого. Если СБ не может пробить его, можно о ЖОПП поговорить. Думаю достаточно.

Я не буду рекламировать этого человека и его группы, но в реальности последние 3-4 года всё чаще встречаются вчерашние выпускники, которые нацелены только на то чтобы пройти собеседование: приписали себе 3-4 года опыта, пораcспрашивали своих менторов о ЖОПП и реально рассказывают как они героически решали задачи в проектах. Но в реальности не отвечают на чисто житейские вопросы: найди ошибку.или задачи синтеза опыта

А не надо слушать их рассказы, надо дискуссию вести. Задавать уточняющие вопросы. Они ж шаг вправо-влево всё, сыпятся. Ибо неодупливают о чём вообще всё это, почему и зачем.

Задавать уточняющие вопросы

Вот и ответ на Ваш вопрос

зачем его что-то спрашивать?

те вы не можете в течении первых 5-10 минут разговора отличить выпускника от спеца грызшего тему 3-4 года ?
тогда зачем все остальное - берите по совпадению ключевых слов, разница будет только в затрате времени

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

Если человек, приписавший себе 3-4 года опыта, не писавший ни строчки обсуждаемых проектов, ведёт осмысленную дискуссию, реально шарит что там зачем и почему, пожалуй я бы себе такого талантливого уникума взял...

Ну вот я как-то взял, а потом оказалось что он код не умеет писать. Вообще. Простейшие задачи, отличающиеся от "переложи объекты из одного апи в другое" ставят его в тупик. Зато как бодро на собесе рассуждал о паттернах, технологиях и прошлой работе.

Потому что устная речь - это излюбленный канал манипуляторов благодаря своей слабой верификации.

Как определить, что человек лжёт? Его губы шевелятся.

Не поверю, люди с курсов и тренингов отвечают по шаблонам и пишут шаблонные резюме.

Их в 99% по резюме даже видно. Обычно у людей с реальный опытом резюме выглядит в разы хуже визуально). А еще люди с курсов не задают вопросы про проект и технологии которые используйте вы.

Интересно, как можно приписать себе годы опыта? Есть же трудовые книжки, бумажные и электронные. Вроде бы этот пункт HR может легко проверить. Ну по крайней мере факт, что человек работал программистом.

Есть же трудовые книжки, бумажные и электронные

а есть еще работа по ГПХ и работа по устному договору за черный нал


у меня часть опыта по трудовой книжке пересекается с работой по ГПХ, даже сейчас, у меня три места работы и только одно в трудовой


и это видно только в выписках ПФР (в черную я уже больше 10 лет не работаю)

Трудовую книжку HR видит только при трудоустройстве кандидата. Как и всякие выписки пфр, наверное.

Серьезные несоответствия между резюме и трудовой - вполне себе повод отказать на этом этапе.

несоответствия которые вы не можете объяснить
потому что например многие работали в нулевых в черную… и в трудовой записей не будет

Опыт работы обычно определяется по последним нескольким местам.

Опять же, если человек сам говорит, что мол подтвердить свой опыт трудовой книжкой не могу, фрилансил, работал по договорам и т.п. - Ну тогда можно и устроить ту обычную викторину, которая задумана для проверки опыта.

Я просто ратую за то, чтобы для тех, кто таковой опыт подтвердить трудовой книжкой может - подобные викторины не устраивать.

Есть же трудовые книжки, бумажные и электронные. Вроде бы этот пункт HR может легко проверить. Ну по крайней мере факт, что человек работал программистом.

У нас прошаренные чуваки на 1 курсе организовывали ООО/ИП, брали себя и друзей на должность программистов по ставке 2 часа в месяц на минимальке. Раз в пару лет поднимали должность (младший/обычный/старший). И к окончанию института рисовали себе 5 лет опыта и должность старшего программиста, ну и папу/маму к качестве контактов начальства, если спросят.

А проку? Чуваку 23, сколько бы там не было написано в трудовой. И год окончания ВУЗа. Да и на собесе реальный уровень всплывет моментально.
Хотя, если для прохода первичного фильтра в виде запроса HR - пройдет, поэтому имеет небольшой смысл. Но после HR резюме смотрит его будущий босс, так что не сильно помогает.

И что, что 23 и год окончания ВУЗа? Когда я работал в Netcracker мы брали на работу студентов 1-2 курсов (да ещё и бесплатные курсы для всех желающих студентов проводили). Там ребята в 23 и в год окончания ВУЗа уже честными синьорами были.
То есть честных 5 лет опыта может быть и в 23-24. Но то что уровень на собесе может выплисть это другой вопрос.

честных 5 лет опыта может быть и в 23-24

От сферы зависит, для вебдизайнера - наверное, легко, для чего-то, требующего более-менее приличных базовых знаний: fpga, системное программирование и т.п. - увы. Я один раз встречал товарища, который на ассемблере с 13 лет пишет, но больше мне таких не попадалось.

А резюме сеньоров в 23 с полной удаленкой - куча на hh. Только я их стараюсь стороной обходить

Ну это дискриминации по профессинальной сфере, вкупе со стереотипами, я фулл стек с основной специальностью Java и писал системные вещи на Си и ассемблере.
Вот из всего этого тяжлее всего дается веб — куча фреймворков (React, angular, vue), которые нужно знать если считаешь себя старшим программистов, куча подводных камней вида из бека вроде все правильно уходит, а на фронте не отображается.


Если про системное программирование — то там обычно контент ограничен одним участком кода, то есть редко бывает, что нужно задумываться, а если я тут поменяю не сломается ли приложение в десятке мест не связанных с этим. Плюс часто не нужно мучительно разбираться, что делать портянка чужого плохо написанного кода из тысячи строк и как туда вставить свой ничего не сломав. С этой точки зрения ассемблер даже проще бека или фронт энтерпрайз приложения.

Если про системное программирование — то там обычно контент ограничен одним участком кода, то есть редко бывает, что нужно задумываться, а если я тут поменяю не сломается ли приложение в десятке мест не связанных с этим. Плюс часто не нужно мучительно разбираться, что делать портянка чужого плохо написанного кода из тысячи строк и как туда вставить свой ничего не сломав. С этой точки зрения ассемблер даже проще бека или фронт энтерпрайз приложения.

Утверждение на уровне "99% проблем с фронтом могут быть пойманы в отладочном окне браузера по F12".

Ну это дискриминации по профессинальной сфере, вкупе со стереотипами, я фулл стек с основной специальностью Java и писал системные вещи на Си и ассемблере. Вот из всего этого тяжлее всего дается веб — куча фреймворков (React, angular, vue), которые нужно знать если считаешь себя старшим программистов, куча подводных камней вида из бека вроде все правильно уходит, а на фронте не отображается.

Если я сейчас начну рассказывать, с точки зрения железного фуллстека, как тесно между собой связаны механика, электроника и операционка... Поверьте, не только в вебе есть проблемы тесного взаимодействия подсистем, для понимания которых нужен опыт, сын ошибок трудных. Крепкий мидл, в среднем, вырастает за 10 000 часов. Или в окружении сеньоров, в т.ч. по смежным областям - тогда очень сильно быстрее, но это, опять же, редкость - мало у кого из студентов хватает мозгов во время учебы прилагать большие усилия на производственной практике в крупной компании. Они просто не понимают, что второго такого шанса у них уже не будет.

Ну да, каждому программисту кажется, что его профессия самая сложная и требует больше всего интеллекта и упорства, а все остальное — просто.


Но это просто потому что в своей работе вы постоянно решаете трудные вещи, а работу остальных видите со стороны, а со стороны все выглядит как двигать кнопку в визуальном редакторе весь день туда сюда за кучу денег.


Какой-нибудь разработчик мобильных приложений вам тоже многое может рассказать о реализации приложения под кучу разных комбинаций устройств/версий операционок/своего кода. А вебдизайны про комбинации браузеров/версий браузеров/версий операционок и типов операционок/кода.


В любой работе хватает сложностей и проблем, но 99% этих проблем не видны со стороны.

Ну это дискриминации по профессинальной сфере

Улыбнуло. Конечно. Поробуйте устроится хирургом. Вас дискриминируют по профессиональной сфере. Может быть это плохо с точки зрения толерантности, но хорошо со всех остальных точек зрения ;)

Как и хирурга, который попытается устроиться на мою работу.


Речь про то, что всем всегда кажется, что их работа сложная и тяжелая — а другие так, дурака валяют. Даже дворник будет уверен, что он тяжело трудится, а программисты на компе только кнопки нажимают.


Пототму сложности своей работы мы видем каждую неделю, а о чужой видим только самые простые рутиные вещи (а то и вообще чужое описание в условном фильме, где все киношное).

Сейчас есть очень модная тема, курсы записывать в опыт работы. Как и свои пет проекты, даже не удачные и не законченые. Как и подаваться таким вот, сразу на мидлов и сеньоров - вдруг прокатит.

А в мелких компаниях, не всегда есть hr, что отсеит таких. И просматривая резюме на мидла, это уже квест, понять там реально опыт или опять врёт. Примерно 9 из 10 отсеивать приходится только на этапе просмотра резюме, из-за фальшивого опыта.

Если нет HR, значит де-факто HR это вы )). Так и вам никто не мешает кроме резюме ознакомиться с копией трудовой книжки.

Вы главного не поняли. Есть этап, когда просто у вас условно 100 резюме, прилетает откликами на вашу вакансию. И вы должны читая их, понять стоит ли продолжать контакт или закрыть, удалить и забыть.
Вы же, получается, предлагаете требовать в отклик на вакансию, чтобы сразу слали копию трудовой? Или начать переписку с каждым, требуя чтобы прислали копию трудовой? :)
З.Ы. У нас в стране, к сожалению не везде есть белая или хотя бы серая ЗП, а от этого и трудовая. Задача же, про которую я говорю, именно понять на первом этапе опыт реальный или фальшивый. Чтобы не тратить время на интервью, общение, переписку и так далее. Ибо откликается много людей, при том и на мидловские вакансии.

Как раз читая резюме, вы не можете понять, реальный или фальшивый опыт.

Вы может попытаться проверить опыт во время собеседования. То есть вы уже тратите от получаса и выше своего времени. Отчего бы не предложить соискателю выбор: или техническое собеседование, или копия трудовой?

Так это получается, почти всем высылать предложение поделиться трудовой и только потом читать их резюме?
Тогда надо в вакансию добавлять, что без копии трудовой, откликаться не стоит. Или это сарказм был? ))

Нет не так.

1) Читаем резюме. Допустим, резюме понравилось (но мы резюме не верим, так как полно мошенников).

2) Договариваемся о собеседовании. Когда договариваемся о собеседовании - предлагаем соискателю выбор. Или викторина, или пруфы опыта работы.

пруфы опыта работы ни о чем не говорят
можно иметь 3 места работы по 5 лет в каждом, но это все три места — какиенить ФГУПы или приближенные к ним ООО… и по такому опыту судить о профессионализме… ну...

А в трудовую посмотреть?

Трудовую можно "нарисовать" — не так сложно открыть ИП или ООО и нанимать туда на 0.01 ставку МРОТ себя и друзей, иногда родители могут формально взять ребенка в свою фирму на тех же условиях, иногда люди реально работают без трудовой, либо в трудовой программист в ООО "Ромашка", а на самом деле был аникейщиком, который только офис настраивал и принтеры заправлял.


Опять-таки, человек прошел все собеседования, а потом на вопрос о пустой трудовой "а знаете я работал без оформления и в черную"

Нарисовать трудовую в принципе можно, но во-первых не так уж просто - об этом надо позаботиться заранее, а во-вторых, записи о работе в "ИП Пупкин В.В." или ООО "Рога и копыта" ничего никому не гарантируют - даже если это честные "рога и копыта". Но по крайней мере можно не тратить кучу времени выпытывая инфу у кандидатов из известных компаний. Тем более что там еще и NDA, сидишь и думаешь, как бы не сболтнуть чего лишнего :)

Тем более что там еще и NDA, сидишь и думаешь, как бы не сболтнуть чего лишнего :)

всегда было интересно. чтож такого можно из нда сболтнуть на собесе… стек и так понятен из-за того что вы на собес пришли по яве из сбера, общий принципы задач тоже понятны (кровавый корпоративный монолит и огромные объемы данных)
в НДА только количество клиентов, объемы запросов в точных цифрах, списки серверов и т.п. но это и так никого не интересует


а то что вы там пузырьком сортировали файлики в яндексе — это никто с НДА придираться не будет


а то что прям точно говорить нельзя, это зачастую, и без НДА понятно, у меня со времен работы в процессинге много таких знаний есть, НДА уже давно протухли и банков уже таких нет, но я всёравно не стану при это никому рассказывать


imho значимость и строгость нда помоему многие преувеличивают

Код проектов разве что. Не редко его хотят увидеть. Но при работе в команде на кровавом, которому скоро второй десяток лет поидёт, хз как отделят код кандидата, от кода команды. Не доступ же в гит давать, в приватный проект.

никто у меня никогда не просил код проекта


максимум я один раз делал пустой шаблон микросервиса, но нигде никому не говорил где я такую идею подсмотрел… и не скопипастил напрямую ни строчки кода

хотя я видел как менеджеры почемуто часто переоценивают код конкурентов и хотят "сделать как у них, у них же так круто"


например был такой кейс, на вход к нам приходило огромное количество данных которые надо было сравнить с теми данными которые у нас есть и дополнить их… на рынке было несколько конкурентов (не прямых) но среди них были огромные компании забугорные и у них этот функционал работал "быстрее и лучше"… однако при расследовании выяснилось что они тупо отбрасывали все данные которые у них не матчились без попыток чтото сделать… и просто потому что они очень большие… поставщики этих данных сами бегали за ними… но менеджеры (наши) считали что это код у них лучше, а это мы чтото не правильно программим

  1. Что толку вам от пробива СБ? Они найдут в украденных базах или используя коррупционные связи защищённую законом информацию о человеке и на этом основании совершат ещё одно уголовное преступление - дискриминацию? Так чем они лучше любого уголовника, если сами ежедневно и не по разу совершают уголовные преступления?

  2. А как же сливы и прочее всякое, происходящее регулярно в различных компаниях, - тех людей тоже пробивало СБ.

    Не полагайтесь на СБ - делать свою настоящую работу они не умеют и не хотят. Это, чаще всего, бывшие тупые менты, которые от перехода в коммерческую деятельность умнее и трудолюбивее не стали. Хоть раз обсудите с ними то, какие принципы ведения ОРМ они на регулярной основе используют, о каких сотрудниках какую информацию собирают. Картотеки ведут или нет, как ведут, откуда получают и как проверяют информацию.

    Я более чем уверен, что вы получите примерно ничего, кроме пафоса, пыхтения и фраз "это закрытая информация". Конечно закрытая - её нет. Их работа - сидеть на жопе ровно и в ворованных базах проверять людей по номеру паспорта.

    Встретив в своей работе судимого - кто из них звонил ему, разговаривал, узнавал обстоятельства? Кто из них обзванивал оперов и следаков, которые вели дело? Кто, хотя бы, звонил в колонию и у огромного числа людей интересовался поведением человека в местах не столь отдалённых?

    Никто. А это именно то, что они должны делать.

То есть устроить тот же экзамен, только сделать его область еще более расплывчатой и еще более приближенной к опыту экзаменатора?

Ну во первых не экзамен, а общение. Экзамен это когда я вам полгода объясняю какую то вещь, потом даю список вопросов. Даю время подготовится и спрашиваю по этому списку. А тут нет ни процесса обучения, ни списка вопросов. И задача не проверить знания, а хочется найти этот красный треугольник вашего Опыта, и желательно не методом стресса, а методом - поговорить по душам, но только в очерченной мелом границе

Попробуйте обсудить какие он решал задачи, что было интересно, что необычно, какие вредные советы можно дать

И разговор будет интересен обеим сторонам и поймёте, на сколько человек в теме

А на задачи можно наловчиться:)))

А вверительные грамоты уже не канают?

Дипломы, сертификаты и т.д. и т.п.

Только здесь и сейчас надо станцевать и спеть?

Диплом сейчас каждый ларек выдает. Иногда даже государственного образца. С сертификатами тоже самое. А все эти школы даже не берут собственных учеников к себе на работу.
Так какие грамоты нам учитывать?

Вопрос на самом деле интересный. Могу я пройти курсы стоматологов чтобы начать зашибать бабки? Я слышал стоматологам много платят. Если нет, то почему? И может диплом каждого ларька тогда прокатит? Если тоже нет, то почему?

На первые два вопроса ответ да. Один такой открыл свой кабинет на первом этаже моего дома.

Вроде же не бывает курсов стоматологов, надо 4 года белый колпак в специальном учреждении относить. Дипломы ларьков не катят, так как их цель не в том, чтобы выпустить хорошего специалиста, а в том, чтобы освоить деньги ученика. Универы занимаются примерно тем же самым, но над ними минобр бдит и контролирует. Над курсом по питону не бдит даже его лектор.

Значит, скажем, Bachelor of CompSci Гарварда или диплом ИТМО всё же заменяют глупые вопросы на собеседовании?

или нет?

подчас собеседующий не в курсе таковых (или имеет тоже диплом ларька)

а если и оценивает диплом - то только по цвету - красный-синий

в обществе где нет дифференциации по цвету штанов ... (с) кин-за-за

В вашей стране, увы, и диплом из ларька прекрасно канает, если очень хочется: раз, два.

Вроде же не бывает курсов стоматологов,

Значит надо их открыть!

надо 4 года белый колпак в специальном учреждении относить.

Это требований законодательства? Или просто [пока] отсутствие альтернатив?

Именно что законодательства. Надо быть врачом, чтобы проводить операции. Стоматолог вполне может убить своего пациента, так что лучше перебдеть, чем перебздеть.

Ну, допустим, поменяем законы и откроем курсы. Получим таких же ненужных выпускников курсов, только в дипломе вместо G++ developer будет стоматолог-терапевт.

Вот и странно что на должность программиста законодательно не требуется ВО. Прошёл курсики и ладно. Убить не убьют, но потом утечка данных и на тебе мошеннические кредиты.

А толку от него, от высшего образования? Про то как избегать утечек данных — там не рассказывают. По сути, это те же курсы, только заполненные обязательной хренью и с брендом университета.

ВО выполняет роль фильтра. В доЭГЭшную эпоху был конкурс и вступительные экзамены. В процессе учёбы экзамены. Многие просто уходят, понимая что они не вывозят и это не их. А перспективных уже начинают на стажировки брать.

Почему в доегэшную? И сейчас всё так. 3 курс.

На стоматологов и училища выпускают. А потом есть всякие курсы повышения квалификации и доп образование на курсах. У них же, в стоматологии, десятки узких проф и направлений. И это только кто напрямую с пациэнтом работает, не считая десятки сопутствующих профессий, как тех кто коронки лепит/делает, которые потом "доктор" установит.

Всё зависит от конкретной должности и направления работы конкретного "стоматолога".

Дипломы чего? ВУЗА? Ну ок, если бы я пошел не в рендеринг, а в фронтэнд, значение моего диплома математика была бы нулевой, так как за 15 лет с его получения я бы просто всё уже забыл. Да и даже после универа наличие диплома не означало что все были математиками, только что все умудрились сдать все предметы так или иначе. За все 15 лет что я пишу профессионально на плюсах я как то сертификат не получил, потому-что, а зачем оно мне? Только время тратить. Сертификаты DirectX, Metal, OpenGL и render api на всяких консолях? А такое вообще бывает и оно кому-то надо?

Единственное чувство которое вызывает диплом это глянуть какой должен быть уровень по результату и проверить что из него усвоил кандидат. Потому что если чувак закончил ПМИ в бауманке и не может ничего сказать о O(n) то разговаривать дальше не о чем.

Загнобить, унизить человека.

Вроде с детства известно: "Не поступай так, как не хочешь, чтоб поступали с тобой". Почему, вообще, неуважение к другому человеку допускается?

Не соглашусь, что вопросы - вчерашний день. Например, я прошу описать все словами, чтоб проверить, что кандидат умеет формулировать мысль и может общаться в команде. Косноязычее показывает слабый лексикон и кругозор, а это может быть большой проблемой в команде.

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

Сообщение написано так, как будто "как за два взвешивания найти фальшивую монету из 9" это задание с ошибкой. Таки ведь нужно разбить на три кучи по 3 монетки, взвесить любые 2 из них, и если одна куча легче - фальшивка в ней, если равны - фальшивка в третьей куче. И из выявленной кучи подозреваемых, взвесить любые 2 монетки, если одна из них легче - фальшивка, если равны - то фальшивка та, которую не взвесили.

Подскажу правильный ответ: никак.

Вы взяли за аксиомы, что:
1)мы знаем что фальшивка легче(а не тяжелее)
2)фальшивка только одна
Ничего из этого в условиях не указано.

2) "фальшивую монету" - единственное число, стало быть, и монета единственная.

1) Максимально дефолтная задача, обычно имеется ввиду что монетка легче. А вообще нужно было уточнить, интервьювер мог столько раз задать этот вопрос, что просто забыл сказать про то что она легче. Но раз автор коммента не сказал, что в ответ на вопрос о весе фальшивки интвервьювер сделал козью морду, злорадно хихикнув, то он либо не спрашивал, либо интервьювер ответил на вопрос. Без знания веса фальшивки нужно три взвешивания. А кандидат мог рассказать что зная тяжелее ли фальшивка, или легче, потребуется 2 взвешивания, а не зная - на одно больше. Может быть это был специальный вопрос с подвохом, и задавался сознательно в таком виде, чертъ его знает.

Я задвинул про логарифм двоичный девяти. Так как он больше трёх, то нужно три бита информации как минимум

Так результата то три: больше, меньше или равно. А логарифм троичный девяти - это 2.

Тогда у вас монеты должны быть различимы

Для неразличимых монет задача "найти фальшивую" не имеет смысла.
Конечно, монеты различимые.

Но без того, тяжелее она или легче - исходов 18, а не 9.

Но без того, тяжелее она или легче - исходов 18, а не 9.

Любопытно, что хотя для N взвешиваний теоретический максимум - (3^N-1) исходов (то есть (3^N-1)/2 монет), но без вспомогательной нефальшивой монеты его не достичь.

При N = 1 и N = 2 достичь вроде. Но при больших - нет (потому что нужно первым взвешиванием про нечётное количество монет сказать, есть ли среди них фальшивая)

Я чуть ошибся в условии. Если требуется только найти монету, но необязательно выяснять, легче она или тяжелее, то да, можно без вспомогательной, для любого N

Вроде бы нет: уже для 13 монет нет способа найти фальшивую за 3 взвешивания: если взвесить 4 и 4 (или меньше), то остаётся 5 (а из 5 за 2 взвешивания нельзя определить фальшивую, только из 4), если взвесить 5 и 5 (или больше), то вариантов уже 10 (и за 2 взвешивания не определить).

то остаётся 5 (а из 5 за 2 взвешивания нельзя определить фальшивую, только из 4)

Просто так нельзя, но ведь у нас появляется вспомогательная чистая монета, о которой говорилось ранее! (из тех, кого взвесили)

Так что теперь из 5 взвешиваем 3 монеты (две против одной+вспомогательной). Если там равенство, то остается 2 подозрительные монеты, одну из них взвешиваем против чистой, и если опять равенство, то фальшивая - так которую не взвешивали, но непонятно, легче она или тяжелее. По условию, ровно одна монета фальшивая

2.это найти надо единственную, а сколько их там-хз.

Вы собираетесь на свидание, вам нужно найти пару носков без дырок. Это не значит что у вас есть только одна пара без дырок.

Это задача на собесе, или философская притча о боге на войне? Если просят найти монету, то значит там одна монета, это следует из контекста. А если лезть известно куда, то фальшивки может вообще не быть, и тогда за 10 000 взвешиваний её не найти. В чём смысл задачи в таких случаях? Подловить собеседника?

Смысл выяснить человек сначала делает, а потом думает что же он наделал. Или сначала думает какие неочевидные условия могут возникнуть при решении задачи, и как они повлияют на алгоритм решения задачи.

Вот пример.
У человека есть счёт в банке. На счёте X рублей. Годовая ставка депозита n%. Вопрос: сколько денег на счёте будет через К дней.
Можно долго учитывать округления, рефинансирование, сколько дней осталось до следующего начисления процентов... Но вы сходу додумаетесь проверить X на положительность? Если он равен нулю, то смысл проводить все эти вычисления? А если подумать чуть побольше, то окажется что он вообще может быть отрицателен.

Крайне рекомендую ознакомится. Всего 5 минут
https://www.youtube.com/watch?v=bLLCmdZlpvQ

А если лезть известно куда, то фальшивки может вообще не быть, и тогда за 10 000 взвешиваний её не найти.

Если кандидат кроме ответа даст ещё и список условий, при которых его ответ будет верным, я посчитаю это за большой плюс.
Сейчас задумался. Допустим у меня есть 2 кандидата.
Один ответил на 100% моих вопросов.
Другой ответил только на 50% моих вопросов, но при этом дал такие уточнения, о которых я не задумался.
Ситуация конечно насквозь искуственная, но я подозреваю что я возьму второго кандидата, т.к. он доказал что в половине случаев его знания превосходят мои. А кандидат, полностью дублирующий меня не так интересен, т.к. друг друга мы ничему научить не сможем.

1) Если мы заменим "легче" на "отличается по массе", что изменится в алгоритме?

Вы не будете знать, какая кучка отличается от остальных и не сможете с точностью выбрать её для второго этапа.

А еще собеседующий уверен что решение существует одно и только оно верное. Был такой случай в моей практике - собеседовался аналитиком в Кворум - там девченка какая то КЭН. Вопрос задала как учесть проводку в разных валютах и курсовые разницы (все же помнят про наличие парного рублевого счета к валютному). Я подзавис с ответом, стал вспоминать где какие реализации были и как это было связанно с учетной политикой). Она не дождалась, нарисовала одну из схем и сказала что так и талько так и досваидания. Ну а я потом вспомнил что в диасофт было 4 режима (выбираемых при настройке системы) для расчета курсовых разниц ... и все они соответствовали требованиям цб

Как то так ...

3 откладываешь, другие взвешиваешь. Так находишь тройку, где есть фальшивая. Одну откладываешь, другие взвешиваешь. 2 взвешивания.

1-е взвешивание:
3 отложил, 3 на левой чаше, 3 на правой чаше.
Результат: левая чаша тяжелей.
В какой куче фальшивка? В тяжёлой или в лёгкой?

Йожики плакали, кололись, но посмотреть на академическое обучение так и не за хотели. Интересно, почему к экзамену дают список билетов с вопросами?

Edit: Выше была похожая версия, поэтому добавлю. Для разговора по душам есть один путь - обсудить петпроект.

А если петпроекта нет у человека?

Раньше обсуждали хобби. Если у начальника такое же хобби, то это большой плюс

Ну допустим у меня хобби, ну не знаю, в йо-йо играть, что про меня это скажет как о программисте? Не лучше ли говорить о прошлых проектах, да делали под нда, но обсудить в общем тех, проблемы и так далее, почему бы и нет.

Если вы все в команде любите котиков, например, то команда будет работать намного плодотворнее.

Вася, почему не доделал вчера? - кота возил чипировать. - о, молодец, как я тебе и советовал! Сейчас помогу доделать и расскажу, какой лоток купить!

Значит он не пройдет разговор по душам. Очевидно же )

Ваще странно, что определить уровень человека вызывает проблемы. Я обычно простоизадаю кучу простых вопросов, но узких вопросов да нет.

У меня другой вопрос, вот например у человека опыт большой, но сейчас депрессняк, на всё вопросы он ответит, нот работать не сможет.

Да и просто ваш проект покажется ему ухлебищем и он будет яростнотспорить пытаясь переписать его с нуля.

Да и просто ваш проект покажется ему ухлебищем и он будет яростнотспорить пытаясь переписать его с нуля.

Даже если не пытаться. Проект ему неинтересен, делает всё "на отъе...". Но и уволить вроде бы не за что. Сам тоже не уйдет если зепка хорошая держит. И вот думаешь, лучше взять "чувака с горящими глазами", а компетенции он по ходу пьесы доберёт. Чем такого-растакого бесполезного профи.

Что за ЖОПП, объясните неграмотному 🤨

в статье есть ;))
ЖОПП (жизненный опыт полученный на практике)

Вопросы уровня ЖОПП

название - прямо из подсознания!

Важно выяснить на собеседовании, не м-дак ли человек.

Любой хороший найм состоит из 3 пунктов (все остальные неверные):

  1. Отказаться от услуг HR, кадровых агентств и отдела кадров (желательно в нецензурной форме, чтобы дороги обратно не было);

  2. Самостоятельно написать текст вакансии именно под себя, дополнительно написать тест из 10 вопросов, на каждый вопрос - выбор одного из 3 ответов: правильный, неправильный и идиотский. Разместить всё это на hh.ru и ждать. На hh.ru, потому что у других такой тест на сайте не создать.

  3. Разобрать результаты тестирования. Выбравшим больше двух идиотских ответов - отказ. Этот фильтр обезопасит от инвестиций времени в 100500+ идиотов. Выбравшим больше 3-4 неверных ответов - отказ. Этот фильтр обезопасит от угадаек и некомпетентных. Из остальных звать на собеседования 5 с наиболее высокими результатами тестирования. На собеседовании оценивать насколько они подходят на вакансию и смогут работать в коллективе. На этом этапе оценивать soft skills.

За двадцать лет применения этой методики не имел никаких проблем с наймом по любым позициям и не встречал соискателей, которые смогли бы нагуглилить ответы на мои вопросы. Однако (вопреки теории вероятности) персонажи способные выбрать 10 из 10 неверных ответов встречались трижды.

Вопросы на уровне: Какая команда служит для просмотра вывода сообщений ядра Linux при загрузке?

1) last

2) dmesg

3) boot

Товарищ. Попробовал нагуглить ваш вопрос и понял (за 5 секунд, глубже не копал), что правильный ответ 2. Так ли это или это был плохой пример? Ни разу не эксперт в линуксах.

Подумал над такими вопросами в своей сфере, все, что приходит в голову, так или иначе можно найти, прочитав одну страницу документации для каждого вопроса.

Думаю, речь о том, что гуглится это элементарно, но ещё не было того, кто бы честно сел и загуглил.

Именно. Кроме того, навык поиска информации - это тоже компетенция. На многих сертификациях вендоров можно пользоваться Интернет. Кому и когда это помогало (тем более, в условиях ограниченности времени)? Либо человек знает, либо - нет.

Камрад, Вы приравняли свои компетенции к компетенциям соискателя. А это - не так. Вы компетентней, поэтому и занимаетесь самостоятельным наймом, без HR. Ессно, из 10 вопросов организуются 5 уровней сложности, по 2 вопроса на уровень, вразнобой. Компетентному специалисту легко оперировать 5-ю объектами, но некомпетентному соискателю - нет. Где-то и что-то ему удастся нагуглить, но в целом - нет. Приведённый вопрос можно расценивать как 1-й уровень сложности, ведь это - база. И если соискатель выбирает boot - он находчивый, но некомпетентный. А если выбирает last - он вообще ничего об этом не слышал. Гуглить - тоже компетенция. В любом случае, вызывал на собеседование балбесов выбиравших 10 из 10 неверных ответов. Мне было интересно. Это были недоросли, с компетенциями разве что в компьютерных играх. Один с порога заявил что ему нужны деньги на выплату кредита. ДО собеседования. HR потому и используется, что принимает на себя "удар" общения с подобными персонажами, когда они приходят на собеседование смотря на зарплату, а не на вакансию. И вся беда только в том, что их таких - много. Нет, они не умеют гуглить. Раз мы отказались от HR - их надо фильтровать. Иначе, умрёте на собеседованиях)

Так как дополнительной информации нет, то ответ: все.

Мало ли что вы там себе в альясах накрутили...

Откуда вы берете вот это вот: "Это то как происходит собеседования в 99% не топ компаний по всему миру". Я за последние 12 лет прошел наверное под сотню собеседований в сумме. Какие-то со среднем результатом, какие-то хорошо, но совсем провальных почти не было. Но тем не менее не могу сказать, что бы меня, хоть раз, пытались целенаправленно валить.

Лав код это интимное))) скаем таки не показтель

А вы что не читаете гитхаб кандидата? Тогда вам действительно не о чём говорить с коллегой на собеседовании. Или у него нет гитхаба? А у вас? Если судить по реальному графику знаний, то некоторые сомнения в этом присутствуют. Похоже, что усилиями "грантов" и "курсов" сложилась ситуация, когда эти группы людей наконец нашли друг друга.

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

Но я уже опытный, главный принцип глупого начальника - виноватить подчинённых, чтобы денег больше не просили или было не удобно просить. Когда тебя обвиняют по мелочам это конечно так смешно, вдруг человек из другой сферы стал специалистом в твоей сфере и нашел у тебя одну ошибку и на основании ее делает выводы.

UFO just landed and posted this here

Да как же задрали собесы, спец полтора года опыта, и до этого 10 лет програмирования. Не могу найти приличное место, ещё и лайф кодинг им подавай за стандартную зп мидла

Sign up to leave a comment.