Добрый день меня зовут Александр и я токсичный душнила с двадцатилетним стажем в айти, готовый откусить вам кадык, как только вы расслабитесь. Мои характеристики делают меня хорошим техническим собеседующим, поэтому добро пожаловать на моё провальное собеседование. Запомните, вы его никогда не пройдете. А знаете почему?
Потому, что я знаю те вопросы, которые я задаю, лучше, чем вы. Поверьте, лучше меня эти вопросы знает только господь бог. Да, я не знаю другие вопросы, но те, который я задаю, я знаю от и до. А так как собеседую я - вас, а не вы - меня, то я гарантирую вам, что вы никогда не сможете ответить так, чтобы я вас не подправил, хотя бы по одному пункту. А если даже вы пройдете все вопросы, у меня всегда в рукаве будет вопрос про кольцо из Хоббита. И поверьте вы совсем не прозорливый Горлум, чтобы догадаться, какая прелесть у меня в кармане.
Узнали? Это то как происходит собеседования в 99% не топ компаний по всему миру. К сожалению, и я вначале шел именно этим путем. Загнобить, унизить человека. Найти его тонкие стороны, чтобы сбить планку, растоптать и подвести технические скилы под заданный мной трафарет, который, конечно будет схожим, но точным, также как шарж точен с оригиналом. Зачастую это хорошая методика. Её даже можно использовать при приеме на работу. Особенно когда денег нет, а иллюзию найма показать надо. Но когда такое техническое собеседование делается в качестве реального инструмента определения качества специалиста - оно никуда не годно. Оно конечно подстегнет ребят работать над собой, но не даст того, над чем именно нужно работать сотруднику.
Поэтому я начал разбирать собеседования. Я смотрел по несколько собеседований ежедневно. Я просмотрел и прочел все списки вопросов к собеседованиям по фронтенду (да я из этих), которые только смог найти. Я прошел несколько собеседований в росгалеры, что бы понять одну простую вещь - большинство однораундовых собеседований никуда не годны. Но и брать сотрудника без собеседования, как советуют некоторые специалисты, в современной России это транжирить деньги работодателя. А раз ответа нет в нашей сфере, то может нам поискать это в сфере педагогики. Уж кто, кто, а они то точно научились отличать задрота-заучку, от студента, который знает предмет.
Таксономия Блума
Да, я говорю именно о таксономия Блума. Давайте я кратко расскажу о чем речь, чтобы те кто не учился в педвузе меня поняли
Бенджамин Блум, докумекал в середине прошлого века, о том что любое знание внутри человека проходит несколько стадий закреплений в голове. Запоминание, понимание, применение, анализ, оценка и создание. А если перевести на наш айтишный, то эти стадии будут примерно такие: где-то слышал, читал пару статей, имею опыт работы, читал код этой абстракции, делал пулл-реквест в нее, и участвовал в создании этой штуки.
Так вот. Блум и некоторые подобные теории предполагают, что это лестница, каждая ступень которой поддерживается тем, что человек обязательно прошел предыдущую ступень. Однако, в айтишной (и думаю некоторых других ремесленно-инженерных) спирали знаний, это не совсем так. И даже наоборот, человек, который изучал принципы работы внутри какого либо фреймворка, знает о фреймворке, паттернах, которые используются для того чтобы с ним работать и флоу, гораздо меньше, чем человек, который сделал на этом фреймворке несколько проектов. Например, я знал о том как устроены хуки внутри react раньше, чем написал первое приложение на хуках и научился их нормально готовить. И я скажу даже больше, покушаясь на святое, сам разработчик фреймворка знает о том как пользоваться его детищем меньше, чем тот который им пользуется в ежедневном режиме. Поэтому схема уровень знания к мастерству будет выглядеть чуть-чуть по другому
В этом прогибе и заключается основная проблема собеседований, мы практически не в состоянии оценить опыт работы человека за заданный нам короткий промежуток времени.
Почему я так решил? Всё дело в вопросах. Давайте выпишем форматы вопросов с собеседований и подумаем какие вопросы ответят нам на вопрос - натасканный это человек или действительно опыт имеющий. Т.е. отвечают на вопросы отличные от ступени применения.
Вначале, напишем те шаблоны вопросов, которые задавать, по моему мнению, не надо, так они отвечают на другие ступени:
Викторинные вопросы.
Варианты: Что такое …. ?; Как называется … ?;
Вопросы, аля, “Своя игра”; Вот это самый неправильный вопрос из всех которые только можно предположить. Но и самый популярный. Он отвечает на то, есть ли у человека первая стадия - запоминания (слышал где-то), но не скажет нам работал ли он с этим. Хотя, кстати, некоторые ответы на этот вопрос очень хорошо показывают откуда он это слышал. Например, спросите у джаваскрипт джуна, что такое замыкание. Вы очень удивитесь о том, как легко распознать с каких курсов он к нам пришелВопросы перечисления
Варианты: Перечисли …; Какие … есть в …;
Тоже очень популярный и тоже неверный. Он тоже относится к стадии запоминания. Однако у него есть контрпример из стадии применения, который относится к нужной стадии, о нем чуть позжеИзложение на тему
Варианты: Расскажите о [название технологии]…
Тоже вопросы из стадии запоминания, однако они могут быть предтечей следующего вопроса. Либо проверкой на знания очень узкой области вопроса, которая практически не встречается в практической области, но знать о ней, и даже иногда использовать - необходимоКак это работает
Варианты: Как … делает …; Что происходит когда …; Как происходит …; Как работает …;
Это вопросы из сразу 2х категорий. Из категории понимания и категории анализа. Всё зависит от того есть ли по этим вопросам статьи/книги/видео. Если нет - то это проверка стадии анализа, он позволяет определить насколько человек адекватно мыслит, и может ли он рассуждать. Другое дело когда информация по этим вопросам есть в свободном доступе.Разговор о паранормальном
Варианты: Объясните …; Представьте …; Почему произошло …; (код) WTF?
Это тоже вопрос из 2х категорий, с одной стороны понимания, с другой стороны - анализа. И здесь нельзя быть уверенным, показывает ли это то что человек сталкивался с решением в каком либо ролике или статье, или то что человек действительно нашел это решение у вас на глазахВопросы уровня ЖОПП (жизненный опыт полученный на практике)
Варианты: Какие особенности применения …; Что будет если … натянуть на …;
С одной стороны это хорошие вопросы, и если собеседник смог ответить на него, то они показывают, что у него есть этот опыт. Но тут проблема - обратное не показывает, что человек не имеет опыта. Не каждый собеседующий имеет такой же специфичный опыт как у вас, который необходим для решения этой проблемы
Ну вроде с тем что не надо спрашивать, и почему мы определились. А что тогда спрашивать?
Мой совет – задавать вопросы опираясь на область опыта. То есть те вопросы, на которые можно получить конкретные ответы, основанные на практике. Такие вопросы помогают понять, как человек действует в реальности, а не только то, что он думает об этом. Кроме того, они могут подсказать, какие навыки и методы можно использовать для повышения эффективности работы. Например:
-
Поиск ошибки на глаз
Шаблоны вопросов: (код) Найдите ошибку в этом коде; (код) В чем проблема в этом неработающем коде; (код с тестом) Тест упадет. Почему?;Например, мы часто спрашивали у джуниоров в очень давнем прошлом, чем let отличается от var. А потом начали показывать конструкцию c
for (var
и спрашивать почему он выведет 10 раз число 10. Пока это не стало заезженным это был как раз способ обойти заучивание вопроса о let-var-const. Кстати, после кучи статей по этой теме вопрос из сферы опыта перешёл в сферу анализа.Другой, тоже немного заезженный пример, в блоке чтения кода filter.map.reduce, я даю конструкцию
.map(parseInt)
и смотрю насколько человек знает проблему использования функций нескольких переменных в filter/map/reduce. К удивлению этот вопрос не перешёл в сферу анализа, а так и остался сферой опыта -
Оптимизация на примере
Варианты: Какая сложность алгоритма и как ускорить; Что не так в этом рабочем коде…Тут давайте тоже приведу пример на собесах с джуниором блока об оптимизации. Один из базовых вопросов на собеседовании джунов: “Что такое React.memo?” (ну или более старое по PureComponent). Но не каждый джун и даже мидл умеет их использовать на практике. Например, на вопрос что не так с этим облеченным кодом:
const Component = ({items}: Props) => {
const viewItems = items.filter(checkViewItem).map(renderItem);
return (
<ul className={styles.container}>
{viewItems}
</ul>
)
}
не каждый мидл скажет про оптимизацию и ререндринг компонентов. Кстати, вопрос для мидлов, что тут выгоднее использовать React.memo или useMemo? Подумайте перед ответом.
-
Синтез опыта
Варианты: Перечисли способы ….; Придумайте N способов применения …;Аналогичный пример с джун собеседования: Перечислите значения свойства position. Но в реальности оно ни капли не интересно с точки зрения опыта. С точки зрения опыта мы хотим узнать умеет ли джун верстать абсолютами. Поэтому правильнее задавать этот вопрос в следующем контексте: Относительно чего позиционируется элемент с position: absolute. И если джун скажет, что относительно position: relative, то спросить что будет если в один position: absolute поместить другой элемент с position: absolute. Или задать вопрос каким можно вытащить элемент из контекста стекирования и что зачем это вообще нужно.
-
Архитектурный вопрос
Варианты: Как сделать … ; Какие методы …; Какие паттерны использовать …;Этот тип вопросов, которые лучше задавать на вакансии от мидла. В более больших компаниях есть целые архитектурные секции, на которых ты рассказываешь как реализовать какой либо функционал. К сожалению, в малых командах никто не даст тебе общаться с кандидатом 5-6 часов, да и кандидаты уже после второго часа просто встанут и уйдут. Тут надо подходить более стерильно.
Например, просить рассказать как реализовать какой нибудь компонент, будь то таблица с пагинацией или список объектов. Главное ограничить время рассказа 5-10 минутами. Или спросить как можно оптимизировать ререндринг компонента зависящего от части значений глобального контекста.
Также можно поговорить о стейтменеджерах, сборщиках, css-in-js и минут на 5-6 вывести на холивар на какую либо тему. Да, это очень токсично, однако это очень хорошо покажет софтскилы разработчика. И иногда, даже убережёт вас взять в относительно большой легаси проект человека, который в первый коммит в девелоп всунет правила линтинга перенесенного с предыдущей работы
-
Расскажите о вашей ЖОПП
Варианты: Приведите примеры использования…; А как на вашем проекте было реализовано…Очень красивый и одновременно сложный тип вопросов. Обычно вопрос формируется на первом этапе “расскажите о себе”, когда собеседуемый рассказывает о последнем проекте. Тут надо не проспать и подметить что это за проект, какие задачи он ставил. И уже на этапе технического интервью можно спросить, а как вы это делали на предыдущем проекте, какие библиотеки использовали, как решали ограничения библиотек и прочее. Это позволяет глубоко копнуть в технологии, в зону ответственности собеседуемого, его инициативности и проактивность.
Например, собеседник рассказывает, что у него на проекте был календарь с резервом времени. Можно спросить о том, как был реализован перенос резерва на другой день, неделю. Можно спросить о том, как проверялся наличие ресурса на создание резерва и как происходила обработка исключительных ситуаций, когда резерв нельзя было переместить. Человек, который реально делал проект, а не придумывал это из головы вполне корректно ответит на эти вопросы в рамках своей компетенции. При этом ему будет достаточно легко об этом рассказывать. Единственное, что его будет сдерживать, это NDA. поэтому ответы будут достаточно с большой задержкой, для осознания нарушается ли NDA этим “откровением“ или нет.
ПС Знающий собеседующий скажет, что все вопросы это вчерашний день и это надо заменять на лайфкодинг и алгоритмику. Но что тут не так, почему это работает плохо и что можно сделать, об этом поговорим в следующей статье.
Комментарии (80)
Leetc0deMonkey
07.09.2023 11:44+1Если у человека за плечами годы реально сделанных и работающих в проде проектов, зачем его что-то спрашивать? Нужно только убедиться в достоверности этого. Если СБ не может пробить его, можно о ЖОПП поговорить. Думаю достаточно.
aavezel Автор
07.09.2023 11:44+10Я не буду рекламировать этого человека и его группы, но в реальности последние 3-4 года всё чаще встречаются вчерашние выпускники, которые нацелены только на то чтобы пройти собеседование: приписали себе 3-4 года опыта, пораcспрашивали своих менторов о ЖОПП и реально рассказывают как они героически решали задачи в проектах. Но в реальности не отвечают на чисто житейские вопросы: найди ошибку.или задачи синтеза опыта
Leetc0deMonkey
07.09.2023 11:44+8А не надо слушать их рассказы, надо дискуссию вести. Задавать уточняющие вопросы. Они ж шаг вправо-влево всё, сыпятся. Ибо неодупливают о чём вообще всё это, почему и зачем.
Kopilov
07.09.2023 11:44+3Задавать уточняющие вопросы
Вот и ответ на Ваш вопрос
зачем его что-то спрашивать?
extiander
07.09.2023 11:44+9те вы не можете в течении первых 5-10 минут разговора отличить выпускника от спеца грызшего тему 3-4 года ?
тогда зачем все остальное - берите по совпадению ключевых слов, разница будет только в затрате времениaavezel Автор
07.09.2023 11:44+6ты не поверишь. но это люди которые действительно натасканы на собес. они не валятся на шаг влево - шаг вправо. они всё верно отвечают. и делают это даже лучше, чем слабо подготовленный реальный мидл. В отличии от спеца, они очень хорошо грызли теорию а не практику. и статья именно про то, какие вопросы надо задать чтобы вывести собес из теоретической части в практическую, не скатываясь на лайфкодинг и другие ухищрения )
Leetc0deMonkey
07.09.2023 11:44+15Если человек, приписавший себе 3-4 года опыта, не писавший ни строчки обсуждаемых проектов, ведёт осмысленную дискуссию, реально шарит что там зачем и почему, пожалуй я бы себе такого талантливого уникума взял...
JediPhilosopher
07.09.2023 11:44+2Ну вот я как-то взял, а потом оказалось что он код не умеет писать. Вообще. Простейшие задачи, отличающиеся от "переложи объекты из одного апи в другое" ставят его в тупик. Зато как бодро на собесе рассуждал о паттернах, технологиях и прошлой работе.
Rive
07.09.2023 11:44+1Потому что устная речь - это излюбленный канал манипуляторов благодаря своей слабой верификации.
Как определить, что человек лжёт? Его губы шевелятся.
Yuriy_75
07.09.2023 11:44Интересно, как можно приписать себе годы опыта? Есть же трудовые книжки, бумажные и электронные. Вроде бы этот пункт HR может легко проверить. Ну по крайней мере факт, что человек работал программистом.
DMGarikk
07.09.2023 11:44+1Есть же трудовые книжки, бумажные и электронные
а есть еще работа по ГПХ и работа по устному договору за черный нал
у меня часть опыта по трудовой книжке пересекается с работой по ГПХ, даже сейчас, у меня три места работы и только одно в трудовой
и это видно только в выписках ПФР (в черную я уже больше 10 лет не работаю)
Xeldos
07.09.2023 11:44Трудовую книжку HR видит только при трудоустройстве кандидата. Как и всякие выписки пфр, наверное.
vedenin1980
07.09.2023 11:44+5Есть же трудовые книжки, бумажные и электронные. Вроде бы этот пункт HR может легко проверить. Ну по крайней мере факт, что человек работал программистом.
У нас прошаренные чуваки на 1 курсе организовывали ООО/ИП, брали себя и друзей на должность программистов по ставке 2 часа в месяц на минимальке. Раз в пару лет поднимали должность (младший/обычный/старший). И к окончанию института рисовали себе 5 лет опыта и должность старшего программиста, ну и папу/маму к качестве контактов начальства, если спросят.
DarkTiger
07.09.2023 11:44А проку? Чуваку 23, сколько бы там не было написано в трудовой. И год окончания ВУЗа. Да и на собесе реальный уровень всплывет моментально.
Хотя, если для прохода первичного фильтра в виде запроса HR - пройдет, поэтому имеет небольшой смысл. Но после HR резюме смотрит его будущий босс, так что не сильно помогает.vedenin1980
07.09.2023 11:44+2И что, что 23 и год окончания ВУЗа? Когда я работал в Netcracker мы брали на работу студентов 1-2 курсов (да ещё и бесплатные курсы для всех желающих студентов проводили). Там ребята в 23 и в год окончания ВУЗа уже честными синьорами были.
То есть честных 5 лет опыта может быть и в 23-24. Но то что уровень на собесе может выплисть это другой вопрос.DarkTiger
07.09.2023 11:44-2честных 5 лет опыта может быть и в 23-24
От сферы зависит, для вебдизайнера - наверное, легко, для чего-то, требующего более-менее приличных базовых знаний: fpga, системное программирование и т.п. - увы. Я один раз встречал товарища, который на ассемблере с 13 лет пишет, но больше мне таких не попадалось.
А резюме сеньоров в 23 с полной удаленкой - куча на hh. Только я их стараюсь стороной обходить
vedenin1980
07.09.2023 11:44+1Ну это дискриминации по профессинальной сфере, вкупе со стереотипами, я фулл стек с основной специальностью Java и писал системные вещи на Си и ассемблере.
Вот из всего этого тяжлее всего дается веб — куча фреймворков (React, angular, vue), которые нужно знать если считаешь себя старшим программистов, куча подводных камней вида из бека вроде все правильно уходит, а на фронте не отображается.Если про системное программирование — то там обычно контент ограничен одним участком кода, то есть редко бывает, что нужно задумываться, а если я тут поменяю не сломается ли приложение в десятке мест не связанных с этим. Плюс часто не нужно мучительно разбираться, что делать портянка чужого плохо написанного кода из тысячи строк и как туда вставить свой ничего не сломав. С этой точки зрения ассемблер даже проще бека или фронт энтерпрайз приложения.
DarkTiger
07.09.2023 11:44+1Если про системное программирование — то там обычно контент ограничен одним участком кода, то есть редко бывает, что нужно задумываться, а если я тут поменяю не сломается ли приложение в десятке мест не связанных с этим. Плюс часто не нужно мучительно разбираться, что делать портянка чужого плохо написанного кода из тысячи строк и как туда вставить свой ничего не сломав. С этой точки зрения ассемблер даже проще бека или фронт энтерпрайз приложения.
Утверждение на уровне "99% проблем с фронтом могут быть пойманы в отладочном окне браузера по F12".
Ну это дискриминации по профессинальной сфере, вкупе со стереотипами, я фулл стек с основной специальностью Java и писал системные вещи на Си и ассемблере. Вот из всего этого тяжлее всего дается веб — куча фреймворков (React, angular, vue), которые нужно знать если считаешь себя старшим программистов, куча подводных камней вида из бека вроде все правильно уходит, а на фронте не отображается.
Если я сейчас начну рассказывать, с точки зрения железного фуллстека, как тесно между собой связаны механика, электроника и операционка... Поверьте, не только в вебе есть проблемы тесного взаимодействия подсистем, для понимания которых нужен опыт, сын ошибок трудных. Крепкий мидл, в среднем, вырастает за 10 000 часов. Или в окружении сеньоров, в т.ч. по смежным областям - тогда очень сильно быстрее, но это, опять же, редкость - мало у кого из студентов хватает мозгов во время учебы прилагать большие усилия на производственной практике в крупной компании. Они просто не понимают, что второго такого шанса у них уже не будет.
vedenin1980
07.09.2023 11:44Ну да, каждому программисту кажется, что его профессия самая сложная и требует больше всего интеллекта и упорства, а все остальное — просто.
Но это просто потому что в своей работе вы постоянно решаете трудные вещи, а работу остальных видите со стороны, а со стороны все выглядит как двигать кнопку в визуальном редакторе весь день туда сюда за кучу денег.
Какой-нибудь разработчик мобильных приложений вам тоже многое может рассказать о реализации приложения под кучу разных комбинаций устройств/версий операционок/своего кода. А вебдизайны про комбинации браузеров/версий браузеров/версий операционок и типов операционок/кода.
В любой работе хватает сложностей и проблем, но 99% этих проблем не видны со стороны.
avost
07.09.2023 11:44Ну это дискриминации по профессинальной сфере
Улыбнуло. Конечно. Поробуйте устроится хирургом. Вас дискриминируют по профессиональной сфере. Может быть это плохо с точки зрения толерантности, но хорошо со всех остальных точек зрения ;)
syschel
07.09.2023 11:44Сейчас есть очень модная тема, курсы записывать в опыт работы. Как и свои пет проекты, даже не удачные и не законченые. Как и подаваться таким вот, сразу на мидлов и сеньоров - вдруг прокатит.
А в мелких компаниях, не всегда есть hr, что отсеит таких. И просматривая резюме на мидла, это уже квест, понять там реально опыт или опять врёт. Примерно 9 из 10 отсеивать приходится только на этапе просмотра резюме, из-за фальшивого опыта.
korva
07.09.2023 11:44+1Что толку вам от пробива СБ? Они найдут в украденных базах или используя коррупционные связи защищённую законом информацию о человеке и на этом основании совершат ещё одно уголовное преступление - дискриминацию? Так чем они лучше любого уголовника, если сами ежедневно и не по разу совершают уголовные преступления?
-
А как же сливы и прочее всякое, происходящее регулярно в различных компаниях, - тех людей тоже пробивало СБ.
Не полагайтесь на СБ - делать свою настоящую работу они не умеют и не хотят. Это, чаще всего, бывшие тупые менты, которые от перехода в коммерческую деятельность умнее и трудолюбивее не стали. Хоть раз обсудите с ними то, какие принципы ведения ОРМ они на регулярной основе используют, о каких сотрудниках какую информацию собирают. Картотеки ведут или нет, как ведут, откуда получают и как проверяют информацию.
Я более чем уверен, что вы получите примерно ничего, кроме пафоса, пыхтения и фраз "это закрытая информация". Конечно закрытая - её нет. Их работа - сидеть на жопе ровно и в ворованных базах проверять людей по номеру паспорта.
Встретив в своей работе судимого - кто из них звонил ему, разговаривал, узнавал обстоятельства? Кто из них обзванивал оперов и следаков, которые вели дело? Кто, хотя бы, звонил в колонию и у огромного числа людей интересовался поведением человека в местах не столь отдалённых?
Никто. А это именно то, что они должны делать.
TrykinSchultz
07.09.2023 11:44+4То есть устроить тот же экзамен, только сделать его область еще более расплывчатой и еще более приближенной к опыту экзаменатора?
aavezel Автор
07.09.2023 11:44+4Ну во первых не экзамен, а общение. Экзамен это когда я вам полгода объясняю какую то вещь, потом даю список вопросов. Даю время подготовится и спрашиваю по этому списку. А тут нет ни процесса обучения, ни списка вопросов. И задача не проверить знания, а хочется найти этот красный треугольник вашего Опыта, и желательно не методом стресса, а методом - поговорить по душам, но только в очерченной мелом границе
kost_tr
07.09.2023 11:44Попробуйте обсудить какие он решал задачи, что было интересно, что необычно, какие вредные советы можно дать
И разговор будет интересен обеим сторонам и поймёте, на сколько человек в теме
А на задачи можно наловчиться:)))
dprotopopov
07.09.2023 11:44+1А вверительные грамоты уже не канают?
Дипломы, сертификаты и т.д. и т.п.
Только здесь и сейчас надо станцевать и спеть?
s207883
07.09.2023 11:44+8Диплом сейчас каждый ларек выдает. Иногда даже государственного образца. С сертификатами тоже самое. А все эти школы даже не берут собственных учеников к себе на работу.
Так какие грамоты нам учитывать?Leetc0deMonkey
07.09.2023 11:44+1Вопрос на самом деле интересный. Могу я пройти курсы стоматологов чтобы начать зашибать бабки? Я слышал стоматологам много платят. Если нет, то почему? И может диплом каждого ларька тогда прокатит? Если тоже нет, то почему?
gazkom
07.09.2023 11:44+2На первые два вопроса ответ да. Один такой открыл свой кабинет на первом этаже моего дома.
s207883
07.09.2023 11:44Вроде же не бывает курсов стоматологов, надо 4 года белый колпак в специальном учреждении относить. Дипломы ларьков не катят, так как их цель не в том, чтобы выпустить хорошего специалиста, а в том, чтобы освоить деньги ученика. Универы занимаются примерно тем же самым, но над ними минобр бдит и контролирует. Над курсом по питону не бдит даже его лектор.
lllamnyp
07.09.2023 11:44+1Значит, скажем, Bachelor of CompSci Гарварда или диплом ИТМО всё же заменяют глупые вопросы на собеседовании?
dprotopopov
07.09.2023 11:44+1или нет?
подчас собеседующий не в курсе таковых (или имеет тоже диплом ларька)
а если и оценивает диплом - то только по цвету - красный-синий
в обществе где нет дифференциации по цвету штанов ... (с) кин-за-за
Leetc0deMonkey
07.09.2023 11:44Вроде же не бывает курсов стоматологов,
Значит надо их открыть!
надо 4 года белый колпак в специальном учреждении относить.
Это требований законодательства? Или просто [пока] отсутствие альтернатив?
s207883
07.09.2023 11:44Именно что законодательства. Надо быть врачом, чтобы проводить операции. Стоматолог вполне может убить своего пациента, так что лучше перебдеть, чем перебздеть.
Ну, допустим, поменяем законы и откроем курсы. Получим таких же ненужных выпускников курсов, только в дипломе вместо G++ developer будет стоматолог-терапевт.
Leetc0deMonkey
07.09.2023 11:44-1Вот и странно что на должность программиста законодательно не требуется ВО. Прошёл курсики и ладно. Убить не убьют, но потом утечка данных и на тебе мошеннические кредиты.
mayorovp
07.09.2023 11:44А толку от него, от высшего образования? Про то как избегать утечек данных — там не рассказывают. По сути, это те же курсы, только заполненные обязательной хренью и с брендом университета.
Leetc0deMonkey
07.09.2023 11:44ВО выполняет роль фильтра. В доЭГЭшную эпоху был конкурс и вступительные экзамены. В процессе учёбы экзамены. Многие просто уходят, понимая что они не вывозят и это не их. А перспективных уже начинают на стажировки брать.
nameless323
07.09.2023 11:44+1Дипломы чего? ВУЗА? Ну ок, если бы я пошел не в рендеринг, а в фронтэнд, значение моего диплома математика была бы нулевой, так как за 15 лет с его получения я бы просто всё уже забыл. Да и даже после универа наличие диплома не означало что все были математиками, только что все умудрились сдать все предметы так или иначе. За все 15 лет что я пишу профессионально на плюсах я как то сертификат не получил, потому-что, а зачем оно мне? Только время тратить. Сертификаты DirectX, Metal, OpenGL и render api на всяких консолях? А такое вообще бывает и оно кому-то надо?
Aquahawk
07.09.2023 11:44Единственное чувство которое вызывает диплом это глянуть какой должен быть уровень по результату и проверить что из него усвоил кандидат. Потому что если чувак закончил ПМИ в бауманке и не может ничего сказать о O(n) то разговаривать дальше не о чем.
vdshat
07.09.2023 11:44+1Загнобить, унизить человека.
Вроде с детства известно: "Не поступай так, как не хочешь, чтоб поступали с тобой". Почему, вообще, неуважение к другому человеку допускается?
Не соглашусь, что вопросы - вчерашний день. Например, я прошу описать все словами, чтоб проверить, что кандидат умеет формулировать мысль и может общаться в команде. Косноязычее показывает слабый лексикон и кругозор, а это может быть большой проблемой в команде.
Didimus
07.09.2023 11:44Ещё бывает ситуация, когда находишь ошибку в задаче или «верном» ответе. Вот это всё, такое собеседование вы никогда не пройдёте. Меня спрашивали, как за два взвешивания найти фальшивую монету из 9
snaiper04ek
07.09.2023 11:44+5Сообщение написано так, как будто "как за два взвешивания найти фальшивую монету из 9" это задание с ошибкой. Таки ведь нужно разбить на три кучи по 3 монетки, взвесить любые 2 из них, и если одна куча легче - фальшивка в ней, если равны - фальшивка в третьей куче. И из выявленной кучи подозреваемых, взвесить любые 2 монетки, если одна из них легче - фальшивка, если равны - то фальшивка та, которую не взвесили.
Tarakanator
07.09.2023 11:44+6Вы взяли за аксиомы, что:
1)мы знаем что фальшивка легче(а не тяжелее)
2)фальшивка только одна
Ничего из этого в условиях не указано.snaiper04ek
07.09.2023 11:442) "фальшивую монету" - единственное число, стало быть, и монета единственная.
1) Максимально дефолтная задача, обычно имеется ввиду что монетка легче. А вообще нужно было уточнить, интервьювер мог столько раз задать этот вопрос, что просто забыл сказать про то что она легче. Но раз автор коммента не сказал, что в ответ на вопрос о весе фальшивки интвервьювер сделал козью морду, злорадно хихикнув, то он либо не спрашивал, либо интервьювер ответил на вопрос. Без знания веса фальшивки нужно три взвешивания. А кандидат мог рассказать что зная тяжелее ли фальшивка, или легче, потребуется 2 взвешивания, а не зная - на одно больше. Может быть это был специальный вопрос с подвохом, и задавался сознательно в таком виде, чертъ его знает.
Didimus
07.09.2023 11:44+1Я задвинул про логарифм двоичный девяти. Так как он больше трёх, то нужно три бита информации как минимум
amishaa
07.09.2023 11:44+2Так результата то три: больше, меньше или равно. А логарифм троичный девяти - это 2.
Didimus
07.09.2023 11:44Тогда у вас монеты должны быть различимы
amishaa
07.09.2023 11:44+1Для неразличимых монет задача "найти фальшивую" не имеет смысла.
Конечно, монеты различимые.Но без того, тяжелее она или легче - исходов 18, а не 9.
Alexandroppolus
07.09.2023 11:44Но без того, тяжелее она или легче - исходов 18, а не 9.
Любопытно, что хотя для N взвешиваний теоретический максимум - (3^N-1) исходов (то есть (3^N-1)/2 монет), но без вспомогательной нефальшивой монеты его не достичь.
amishaa
07.09.2023 11:44При N = 1 и N = 2 достичь вроде. Но при больших - нет (потому что нужно первым взвешиванием про нечётное количество монет сказать, есть ли среди них фальшивая)
Tarakanator
07.09.2023 11:442.это найти надо единственную, а сколько их там-хз.
Вы собираетесь на свидание, вам нужно найти пару носков без дырок. Это не значит что у вас есть только одна пара без дырок.
dprotopopov
07.09.2023 11:44А еще собеседующий уверен что решение существует одно и только оно верное. Был такой случай в моей практике - собеседовался аналитиком в Кворум - там девченка какая то КЭН. Вопрос задала как учесть проводку в разных валютах и курсовые разницы (все же помнят про наличие парного рублевого счета к валютному). Я подзавис с ответом, стал вспоминать где какие реализации были и как это было связанно с учетной политикой). Она не дождалась, нарисовала одну из схем и сказала что так и талько так и досваидания. Ну а я потом вспомнил что в диасофт было 4 режима (выбираемых при настройке системы) для расчета курсовых разниц ... и все они соответствовали требованиям цб
Как то так ...
KyHTEP
07.09.2023 11:44Йожики плакали, кололись, но посмотреть на академическое обучение так и не за хотели. Интересно, почему к экзамену дают список билетов с вопросами?
Edit: Выше была похожая версия, поэтому добавлю. Для разговора по душам есть один путь - обсудить петпроект.
nameless323
07.09.2023 11:44+1А если петпроекта нет у человека?
Didimus
07.09.2023 11:44Раньше обсуждали хобби. Если у начальника такое же хобби, то это большой плюс
nameless323
07.09.2023 11:44+1Ну допустим у меня хобби, ну не знаю, в йо-йо играть, что про меня это скажет как о программисте? Не лучше ли говорить о прошлых проектах, да делали под нда, но обсудить в общем тех, проблемы и так далее, почему бы и нет.
Didimus
07.09.2023 11:44Если вы все в команде любите котиков, например, то команда будет работать намного плодотворнее.
Вася, почему не доделал вчера? - кота возил чипировать. - о, молодец, как я тебе и советовал! Сейчас помогу доделать и расскажу, какой лоток купить!
dididididi
07.09.2023 11:44Ваще странно, что определить уровень человека вызывает проблемы. Я обычно простоизадаю кучу простых вопросов, но узких вопросов да нет.
У меня другой вопрос, вот например у человека опыт большой, но сейчас депрессняк, на всё вопросы он ответит, нот работать не сможет.
Да и просто ваш проект покажется ему ухлебищем и он будет яростнотспорить пытаясь переписать его с нуля.
Leetc0deMonkey
07.09.2023 11:44+1Да и просто ваш проект покажется ему ухлебищем и он будет яростнотспорить пытаясь переписать его с нуля.
Даже если не пытаться. Проект ему неинтересен, делает всё "на отъе...". Но и уволить вроде бы не за что. Сам тоже не уйдет если зепка хорошая держит. И вот думаешь, лучше взять "чувака с горящими глазами", а компетенции он по ходу пьесы доберёт. Чем такого-растакого бесполезного профи.
aGGre55or
07.09.2023 11:44+2Любой хороший найм состоит из 3 пунктов (все остальные неверные):
Отказаться от услуг HR, кадровых агентств и отдела кадров (желательно в нецензурной форме, чтобы дороги обратно не было);
Самостоятельно написать текст вакансии именно под себя, дополнительно написать тест из 10 вопросов, на каждый вопрос - выбор одного из 3 ответов: правильный, неправильный и идиотский. Разместить всё это на hh.ru и ждать. На hh.ru, потому что у других такой тест на сайте не создать.
Разобрать результаты тестирования. Выбравшим больше двух идиотских ответов - отказ. Этот фильтр обезопасит от инвестиций времени в 100500+ идиотов. Выбравшим больше 3-4 неверных ответов - отказ. Этот фильтр обезопасит от угадаек и некомпетентных. Из остальных звать на собеседования 5 с наиболее высокими результатами тестирования. На собеседовании оценивать насколько они подходят на вакансию и смогут работать в коллективе. На этом этапе оценивать soft skills.
За двадцать лет применения этой методики не имел никаких проблем с наймом по любым позициям и не встречал соискателей, которые смогли бы нагуглилить ответы на мои вопросы. Однако (вопреки теории вероятности) персонажи способные выбрать 10 из 10 неверных ответов встречались трижды.
Вопросы на уровне: Какая команда служит для просмотра вывода сообщений ядра Linux при загрузке?
1) last
2) dmesg
3) boot
s207883
07.09.2023 11:44Товарищ. Попробовал нагуглить ваш вопрос и понял (за 5 секунд, глубже не копал), что правильный ответ 2. Так ли это или это был плохой пример? Ни разу не эксперт в линуксах.
Подумал над такими вопросами в своей сфере, все, что приходит в голову, так или иначе можно найти, прочитав одну страницу документации для каждого вопроса.
lllamnyp
07.09.2023 11:44+1Думаю, речь о том, что гуглится это элементарно, но ещё не было того, кто бы честно сел и загуглил.
aGGre55or
07.09.2023 11:44+1Именно. Кроме того, навык поиска информации - это тоже компетенция. На многих сертификациях вендоров можно пользоваться Интернет. Кому и когда это помогало (тем более, в условиях ограниченности времени)? Либо человек знает, либо - нет.
aGGre55or
07.09.2023 11:44+2Камрад, Вы приравняли свои компетенции к компетенциям соискателя. А это - не так. Вы компетентней, поэтому и занимаетесь самостоятельным наймом, без HR. Ессно, из 10 вопросов организуются 5 уровней сложности, по 2 вопроса на уровень, вразнобой. Компетентному специалисту легко оперировать 5-ю объектами, но некомпетентному соискателю - нет. Где-то и что-то ему удастся нагуглить, но в целом - нет. Приведённый вопрос можно расценивать как 1-й уровень сложности, ведь это - база. И если соискатель выбирает boot - он находчивый, но некомпетентный. А если выбирает last - он вообще ничего об этом не слышал. Гуглить - тоже компетенция. В любом случае, вызывал на собеседование балбесов выбиравших 10 из 10 неверных ответов. Мне было интересно. Это были недоросли, с компетенциями разве что в компьютерных играх. Один с порога заявил что ему нужны деньги на выплату кредита. ДО собеседования. HR потому и используется, что принимает на себя "удар" общения с подобными персонажами, когда они приходят на собеседование смотря на зарплату, а не на вакансию. И вся беда только в том, что их таких - много. Нет, они не умеют гуглить. Раз мы отказались от HR - их надо фильтровать. Иначе, умрёте на собеседованиях)
Ansud
07.09.2023 11:44+4Так как дополнительной информации нет, то ответ: все.
Мало ли что вы там себе в альясах накрутили...
kazimir17
07.09.2023 11:44Откуда вы берете вот это вот: "Это то как происходит собеседования в 99% не топ компаний по всему миру". Я за последние 12 лет прошел наверное под сотню собеседований в сумме. Какие-то со среднем результатом, какие-то хорошо, но совсем провальных почти не было. Но тем не менее не могу сказать, что бы меня, хоть раз, пытались целенаправленно валить.
Fen1kz
В целом неплохие идеи, но вот пример на memo/useMemo всё портит. Вы задаёте вопрос "что не так с этим облеченным кодом", уже имея в голове мемоизацию, хотя как бы отсутствие мемоизации это не признак "с этим кодом что-то не так".
Более того, это преждевременная оптимизация и вы скорее возьмете упоротого чела который будет вам мемоизировать колбеки на кнопку.
Возможно стоит спрашивать "что не так" только в одном случае - если код не работает. В остальных случаях следует явно обозначать проблему.
aavezel Автор
К сожалению, откладывание базовой оптимизации изначально закладывает мину замедленного действия, из за которого потом портится пользовательский опыт, и копится техдолг - очень опасная практика. Преждевременная переоптимизация это конечно зло, но ещё большее зло - не задумываться об оптимизации вообще.
sovaz1997
Но тем не менее, если работает и не лагает, не нужно ничего "оптимизировать", особенно за счёт читаемости кода.
Да и на самом деле далеко не факт, что использование React.memo или useMemo ускорит что-то. Это ведь тоже накладные расходы, которые могут превышать расходы по рендерингу, например, 50 элементов списка. Если вы можете доказать, что это что-то ускорит - ок, но стоит ли платить за это худшей читаемостью кода? Я считаю, что нет.
Задумываться об оптимизации нужно, но только тогда, когда действительно есть проблема и тогда нужно её решать.
Fen1kz
Кстати я проверил, реально ускоряет, на массиве из 10 штук аж на целых 70-100мс: https://codesandbox.io/s/react-component-benchmark-forked-j5lpkn
Это правда без оверхеда в виде мемоизации итемов и функций. Так что всё равно вопрос "что с этим кодом не так" получается слишком абстрактный и запутывающий.
Я бы и до этого комента заявил, что с этим кодом все отлично, а после - тем более. Чтобы послушать вот эти глупые подсказки вида "а что вас ничего совсем не смущает?" "совсем совсем?".
А потом в конце заявить автору "ах, вы наверное хотели оптимизировать компонент. А у вас в компании так же ТЗ ставят как вы сейчас или вы отдыхаете только на интервью?"
sovaz1997
Вот-вот)
By default лично я использую useMemo в кастомных хуках, чтобы в будущем не думать об этом, когда использую что-то из хуков в зависимостях useEffect, например. Но это тоже не догма)
А так, если бы мне дали компонент на 300 или больше строк и спросили, что с ним не так, здесь намного однозначное был бы ответ.
domix32
70-100 ms это буквально 7-10 кадров (при 60 fps). Если бы оно действительно настолько оптимизировало, то это нужно было бы делать дефолтной механикой.
У вас же в примере тысячные от миллисекунды, то бишь наносекунды. В среднем это ускоряет рендеринг x2, но не сказать чтобы пользователь почуйствовал разницу.
Fen1kz
Вот это поворот, минусы бенчмаркинга в 5 утра (-_- )
Спасибо за уточнение, это всё меняет и можно спокойно разносить собеседующих