Pull to refresh
2
0.5
Send message

Ой чёрт, согласен.
My fault.

Генеративное решение решает другую (возможно эквивалентную) задачу.
Численный ответ тот же. Но без доказательства, что мы решаем ту же задачу такое применение - близко к ошибке.

Решение-1 -- Вася написал алгоритм, который выдаёт каждому студенту число 0 или 1 или 2. (сумма всех 20 чисел == 10).
Решение-2 -- Вася написал алгоритм, который дважды выдаёт каждому студенту число 0 или 1 (сумма всех 40 чисел == 10).

И отдельно требуется доказать, что Решение-2 - применима (т.е. оба сформулированных условия эквивалентны).

Знаменатель будет складываться из трех «фиксированных» случаев для 19 оставшихся людей, в зависимости от того, какое число достанется Васе:

А это ещё зачем?
В знаменателе будет стоять ровно такая же формула, как в числителе, только распределение по 19 людям (Upd: и к стати в решении-2 вы ровно это и сделали).

Общая идея такая:
1. Распределим все возможные распределения {1, 2, 0} по 20 людям (так чтобы сумма числе была 20).
2. Посмотрим с какой вероятностью в позиции N_0 будет стоять число "0"
3. Пункт-2 эквивалентен Сnt_19(человек) / Сnt_20(человек). Т.к. мы просто фиксируем Васю на начальном индексе и "хорошими" называем исходы, когда там 0.
3. Васю можно зафиксировать на 1м месте, т.к. из соображений симметрии все места равны (такое обоснование вполне принимается даже на школьных олимпиадах).

Соответственно у вас 2 одинаковых формулы в числителе и в знаменателе.

Cnt_19 / Cnt_20.

Cnt_N = Cnt | n == N

Ох.. сначала хотел написать про частности формулировок, потом появилась эта сентенция.

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


==============================
1. Главного героя должны звать не Вася, а Петя (это соответствует русскоязычной традиции именования героев задач на вероятности - подобно традиции "Алиса" и "Боб" в англоязычных источниках).

2. В задаче 2 идея и решения основаны на предположении: события "студент решил задачу №_X" и "студент решил задачу №_Y" независимы.
В реальном мире это не так.
Соответственно надо или аккуратно переформулировать задачу.
Или решить задачу для зависимых событий и посмотреть - уйдёт ли условная вероятность "решил задачу №_X при условии решил задачу №_Y" из конечной формулы или нет - с ходу видится, что решение не тривиальное.


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

Ваши слова бы да в уши сегодняшним вкатунам году так в 2019 (когда всё это заверте.....).

Сегодня, к сожалению, в IT-найме думать некогда.

Надо придумывать всё более и более изобретательные фильтры, чтобы HR смог отфильтровать 1000 CV - до подъёмных инженером 20 собеседований.

Разумеется как всегда в ситуации мошенничества (и дорогих мер от мошенничества) - пострадавшим является рядовой и честный участник рынка IT.

зарплата рядовых сотрудников 30 тыс.

Средняя зарплата в России по итогам Q1,Q2 2005 - 95_000р.
Уже даже в провинциальной "пятёрочке" в Тамбове зарплаты 40 - и хочу напомнить торговля в России одна из самых низкооплачиваемых отраслей.

А люди в обсуждении IT всё ещё ЗП в 30 тысяч рублей вспоминают.
У вас неактуальные данные и "палеолит" - как бы давно закончился.

по умолчанию ваша фраза "подготавливаешь интерфейс" понимается как "берёшь и пишешь новое внешнее API" и именно такая постановка вопроса является проблемой.

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

Рад что вы честны. Но "в целом" выход в такой ситуации для людей с улицы один - платить им ровно столько, сколько прибыли они приносят. Ну то есть 0-10_000 в месяц в течении первых 3 месяцев для людей закончивших 6-9 месячные курсы программистов.

1.
Так подождите - мы по кругу ходим.
Когда компании выращивали стажёров "для себя" а стажёры у них сотавались - наставничество было.
Стажёры перестали оставаться - компании перестали работать себе в убыток.

2.
>  подгатавливаешь какой то интерфейс, и говоришь джуну "на делай", тэк стак такой то
>  Но! Если вам нужно 15 минут чтобы объяснить простую задачу
Я не то, чтобы жаждал поймать вас на несоответствии - но смотрите вы сначала предложили одно, а потом совершенно другое.

Вот 15 минут нужно (даже на простейшую задачу) - чтобы избежать таких, довольно очевидных ошибок непонимания.
Конечно гораздо лучший способ - погрузить что-то уже понимающего в программировании человека в свою предметную область, чтобы он с полу-слова понимал что имеется в виду - и отпускать его на 1-2-5 дней работать. Но это нужен минимально грамотный специалист уже.

В боле-менее сложной предметной области это работать не будет.

Довольно долго объяснять почему.
(Майкрософт по-моему так хотели делать лет 15 что-ли назад - но отказались потому, что это дебилизм).


Ну т.е. есть какая-то минимальная задача, которую разумно экономически разумно выделять. Ей соответствует минимальная квалификация "джуна".
Вы вот говорите - давайте брать людей ещё раньше, нарезать задачи ещё мельче, и оформлять их не в виде объяснения, а прямо в виде интерфейса, давайте посмотрим какие проблемы на этом пути:
1 - если я уже написал интерфейс на маленькую задачу, то времени написать сам код уйдёт меньше, чем передать эту задачу стажёру.
Т.е. после калькуляции - это он должен мне доплачивать за то, что я вместо "за 10 минут написал код" - 15 минут двигал тикеты в джире и ревьювил его код (не говоря о том дискомфорте, который мне это переключение контекстов деятельности доставит).

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

3 - таких маленьких задачек то густо топусто (вот мы когда студентов берём во-первых такие "выделимые" задачки отдельно для них готовим и иногда даже специально их не делаем, чтобы было чем студентов содержательно занять).

4 - самому написать куда надёжнее чем ревьювить.

...

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

Это сказки какие-то.
Ключевая проблема в том, что так, как вы это описали - в системном программировании / микроэлектронике почти никогда не работает (возможно в клепании сайтов - работает нормально).
Обычному челу после курсов я объяснять что как и почему надо сделать - буду дольше чем сам писать.
А там где это работает (например со студентами МГУ / МФТИ / ВШЭ) - так за ними очередь стоит из организаций желающих к себе пригласить их на оплачиваемую стажировку "подмастерьями" в вашей терминологии.

Т.е. типовые варианты примерно такие:
- человек уже что-то умеет - ок добо пожаловать на вакансию джуна.
- гарантировано толковый и почти хочет к вам (но мало что пока умеет) - добро пожаловать на вакансию стажёра.
- человек "очень хочет научиться", никакое собеседование пройти не способен и в любой момент как чему-то научится готов свалить - ну ок, готов год проработать за 0 рублей (10 000 рублей / месяц)?

У вас примерно такое видение взаимодействия-вознаграждения или другое?

Ну тогда вы зашли с нерепрезентативным примером. Можем обсудить его - но учтите: он мало относится к текущей проблематике "в целом".

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

Когда я входил в профессию - у меня было чёткое понимание, что трудовая этика такова: "сначала компания тебя дообучает, себе в убыток, а какое-то разумное время на них работаешь не перескакивая через год на ЗП повыше на 20%-50%"

Сегодня такой трудовой этики больше нет, в первую очередь благодаря пропаганде "рационального эгоизма". Ну ок раз так то обе части негласного договора "сначала мы дообучаем джуна себе в убыток потом он работает на нас" не выполняются. Поэтому СРАЗУ выставляем требования такими, чтобы джун обходился нам в не слишком большой убыток. Я не очень понимаю что в этом странного.

Опять же я вашу личную ситуацию не знаю, но когда я входил в профессию я получал меньше водителя в ЦентТелекоме где я работал "инженером-программистом".

По-человечески я вам сочувствую.
Вам обещали "царский путь" в IT (вместо 5 лет института 9-18 месяцев курсов), а оказалось что обманули.

С профессиональной точки у меня к вам два вопроса:

  1. В какой форме обычно вкатуны en masse приходят к мысли "явно обманывать работодателей при приёме на работу"? Это "личное дело каждого" или "подсмотрели идею на форумах" или ближе к концу курсов явно помогают так сделать (в виде советов по "приукрашиванию" резюме)? Насколько сильно и откровенно помогают?

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


    П.С.
    Требования к джунам адекватны текущей экономике - рабочая единица, которая почти нарабатывает на свою зарплату (о прибыли речи не идёт, вот честно).

не очень понял вашу мысль.

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

Натренировать девочку-HR или даже нейросеть - малореально.

Фундаменталку могут делать 1.5 конторы в РФ (ну ладно я с десяток насчитал) - но запись такой конторы в резюме - уже повод поговорить с человеком.

А мелкие конторы - делают что-то очевидно прикладное и с очевидным применением в конкретной внешней системе.

====================================================

> Можете привести пример адекватной, по вашему мнению, задачи для FPGA-мидла?
- ethernet + кусок сетевого стека (потому, что HF + [training / CV / радары )
- криптография с конкретным прикладным применением
- "бабочка" (DFT / Адамар) - с конкретными специфическими требованиями

*) Замечу, что людей уходящих из военки я не увидел (ну просто в начале 2024 перестал собеседовать). Но проглядев с 10к резюме - любой начнёт отличать реальную работу от записанного в резюме курсовика по CV.

HR создаёт шаблонную+- вакансию и использует шаблонные

Вы плохой Нострадамус.
Текст вакансиий писал я сам, пояснение "что делаем мы" и "что нужно будет делать кандидату" - для начала общения HR-кандидат тоже я.

И да "подсказка" непонятна, поэтому задам два вопроса:
- сколько собеседований вы провели с 2020 года?
- как надо действовать, чтобы не тратить труд квалифицированных специалистов на отсеивание заведомо неподходящих вкатунов?

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

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

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

  3. На месте менеджера можно установить для себя "некоторые маркеры" - человек растёт таким образом.

  4. Fauxductivity - это хакинг тех самым "маркеров менеджера".

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

Послушайте ну вот в этом вашем комментарии неправильно почти всё. От начала и до конца.

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

2. Приходит собесится на синьёра != синьёр (и даже хотя бы миддл).
Это собственно проблематика "вкатуны сломали найм" последних 5 лет, примерно. И вы именно этот момент напрочь игнорируете.
Ещё раз - вы напрочь игнорируете собственно основной лейтмотив статьи: "Найм сломан "вкатунами". Корпорации приспосабливаются. Приспосабливаются из рук вон криво."
(Нанимал - отсобеседовал на позицию "миддл system programmer" человек 20-30 в 2022-2023 годах. Т.е. проблематику 1.5 года назад понимаю вполне хорошо. Отменторил человек 10 за карьеру. На обоих последних местах работы у нас были базовые кафедры в хороших универах - первокуров-третьекуров не просто видел, лично дообучал).

3. Человек обязан уметь програть алгоритмы - это необходимое условие. Но очень, очень, ОЧЕНЬ недостаточное, особенно по последним временам.
Основная проблема вашего подхода - вам нужен инженер (человек, который через 2-3 года станет инженером), а гоняете вы его по алгоритмам. Это сильно-сильно разные области знаний, и даже человеческой деятельности).

В статье говорится про тип плохих экзаменов, появление которых на собеседованиях мы наблюдаем лет 5 как - с тех пор, как мотивацией кандидатов на собеседовании стало "пройти этот фильтр".

Если вы считаете, что собеседования всегда были экзаменами - но у вас термин "экзамен" не такой, как у автора статьи - то о разнице в терминах следует писать явно.
Кому следует? Тому, кто хочет чтобы его всерьёз воспринимали как нормального собеседника (а не как держащего фигу в кармане "ненадёжного рассказчика").


Ну и до кучи туда же:

> Что такое экзамен "как в статье", против чего выступает автор:

Что такое экзамен.

Ох уж это выборочное цитирование.

мне нужно убедиться... Что человек умеет программировать. 

Сдаётся мне вы или лукавите или одно из двух хД:
Люди умеют программировать, в смысле обхода двоичного дерева, - после 1го курса хорошего универа или после 2 курса среднего универа. Но в большинстве случаев сегодня для того, чтобы быть инженером-программистом этого недостаточно.

Что вам нужно:
Убедиться, что человек, способен решать сложные инженерные задачи со свойствами:
1. они разнообразные
2. нечётко сформулированы,
3. с заранее неизвестным множеством решений
4. множество возможных решений не упорядочено "от лучшего к худшему".
5. вы ожидаете, что сотрудник на основе своей квалификации выберет наиболее подходящее в текущем контексте.

Что вы делаете:
Вы поддерживаете идею "устраивать экзамен как в статье".

Что такое экзамен "как в статье", против чего выступает автор:
решение задачек, со следующими свойствами:
1. задач ограниченное множество (часто заранее известное) - алги, язык, "паттерны"
2. Задачи имеют +/- канонические формулировки;
3. Задачи имеют +/- канонические решения
4. У задач есть канонические "решения лучше" и "решения хуже".

Я ничего не упустил?

Я был бы только за.
Но проблема в том, что это не работает - т.к. одна из необходимых вещей, которые надо вычленить, - "правдивое резюме" или нет.
И "в общем случае" это не вычисляется. Только в каждой небольшой специфической области (*)
А всерьёз вкладываться в нейросетку (пусть даже дообучение) которая полезна 10_000 человек во всём мире - пока никто не будет. Рынок не тот.

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

*) Ну вот в системном программировании, скажем - миддл не должен "писать пятистадийный конвейр вычислительного процессора на FPGA" или "реализовывать SHA/AES/... на CUDA" - это в лучшем случае курсовики студенческие.
А вот какое-нибудь "писал USB-драйвер по Windows для общения с криптографическим токеном" - скорее всего правда.

до начала 2024 исполнял роль тимлида.
На вакансию "миддл-программист" 1000 откликов. Из них 250 отбираются HR как подходящие для резюме (из них больше половины - вкатыши подделавшие свои резюме так, чтобы пройти HR-фильтр).

250 резюме отсмотреть выше моих сил.
Готов я при этом к примерно - ну пусть 100 резюме отсмотреть и провести 20 собеседований.

Вопрос - как 250 резюме (с больше половины обманывающих вкатышей) сократить до 100 резюме / 20 собесов?
Собственно "многоуровневые" интервью идут оттуда.



П.С.1
20 собесов - я готов провести нормально разговаривая с кандидатом о том, что релевантно в его опыте.
- какие ваши три последние проекта?
- какую про самую "крутую" вещь которую вы лично реализовали на этих проектах ("техническую или бизнесовую" - а это вы сами выбираете что рассказать)
....

П.С.2
К стати "реферальный найм", - разумеется если по рефералу "программист приводит программиста", - одно из лучших, пока, решений.
Вот пусть тот миддл+ / синьёр в команде экспертизе которого я доверяю и проведёт промежуточный скрининг между мной и HR-ом. Чтобы довести число "очных собеседований" до 20.

Information

Rating
2,017-th
Registered
Activity