Quant Valerian
1.78K subscribers
115 photos
6 videos
5 files
263 links
Авторский канал Валерия Овчинникова
Размышления про менеджмент команд, людей, проектов, себя и своих денег

Рандомный винегрет из мыслей и репостов тут https://t.iss.one/quant_valerian_cooking
Download Telegram
Сократический метод

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

Пройдёмся по трём историям.

1. Самое, пожалуй, глупое. Я регулярно прохожу всякие обучения для руководителей в группах, с тренерами. Чаще всего это полезные и иногда даже увлекательные занятия.
Но один раз мне запомнился особенно. Мне где-то на глаза попадалась техника Socratic method для развития сотрудников. Но там, где мне это попалось, было одно только название.
Как раз на курсе про развитие я спросил, кто что знает и думает об этом методе. На что получил ответ, который меня смутил ещё тогда, а теперь уж даже забавляет.
В общем, ребята перепутали сократический и софистический методы, судя по тому, что "ну это плохой метод, уловками наводить на те ответы, которые считаешь правильными".
Пожалуйста, не повторяйте такую ошибку. Сократ не пытается навести на тот ответ, который ему хочется. Он даже может под давлением аргументов изменить свою позицию во время дискуссии (например, в Государстве это прямо явно артикулировано).

2. Поглядывал недавно разные материалы про то, как расти менеджеру среднего звена. Смотрел и матрицы компетенций. И вот там была компетенция: может участвовать в сократическом диалоге.
Если почитать википедию, то может сложиться впечатление, что Сократ это такой коуч. Задаёт вопросы, чтобы человек вынул ответы, которые у него в голове и так уже есть.
Но вот только это нифига не так. Буквально все диалоги выглядят так: Сократ что-то утверждает и спрашивает: "так ли это по-твоему?", а собеседники отвечают: "клянусь Зевсом, Сократ" или "точно так, как ты говоришь" или "ни в каком виде не соглашусь с этим". Всё. Где там ответы из головы собеседника для меня до сих пор загадка.
Да, в Государстве речи оппонентов чуть более содержательные, но там всё равно нет ничего похожего на коучинг.
Нам всё это время врали. Мемы хотели нас спасти, но мы не слушали.

3. Личной истории здесь у меня нет, но постоянно слышу, что Сократ, мол, в своих диалогах путём рассуждений с собеседником приходит к истине. Ну про роль собеседника, думаю, вы уже поняли. А вот к истине Сократ, судя по всему, приходит не во время диалогов, а во время размышлений в свободное время. Помните вот эти выкладки: лемма 1, лемма 2, лемма 3, а том теорема, в которой ЧУДЕСНЫМ ОБРАЗОМ, эти леммы пригождаются для доказательства? У Сократа абсолютно та же структура в его рассказах. Он уже заранее знает, какие ему понадобятся кирпичики и лепит сначала их, а уже потом складывает из них целое.
Один из героев диалогов рассказывает, что на войне Сократ мог часами стоять босиком на морозе не сходя с места и _размышлять_. Видимо, именно в такие моменты он приходил к истине, а не во время диалогов.
6
Для тех, кому стало душно, АНЕКДОТ в тему.
Послушайте трек Метафизика ещё раз. Но держите в голове, что Сократ был очень крепким и выносливым физически (см. прошлый пост), а Платон вообще олимпийский чемпион по панкратиону.
Если понравится, то у них большинство треков такие, мне нравится.
🔥2
Самая популярная причина нытья эмигранта

По моим наблюдениям это банки. Не на ровном месте Револют возник. Ребята многие проблемы западного банкинга решают.
Я тут делал кредитку — абсолютно отвратительно.
Местные конторы не хотят давать в аренду тачку с залогом наликом, только кредитку им подавай. Пришлось делать.
1. Кредитка для не банковских резидентов _полностью_ фондируется из средств клиента. Т.е. если я хочу лимит 1к евро, то положить на специальный счёт 1к евро, которые заморозят. Естественно никакого интереста на них не платят.
2. Кредитка "очень выгодная", никаких комиссий нет, беспроцентный период есть. Всего лишь надо только платить страховку каждый месяц, но это не комиссия. Ну и там двухзначные проценты, если промедлил (хотя вроде сам у себя занимал). А еще ты сам погасить долг не можешь, надо письмо менеджеру написать, чтобы сделал. А он том должен по телефону позвонить и подтвердить с тобой, что ты реально просил погасить.
3. Чтобы просто услышать, какие бывают шикарные условия и как все устроено с этими кредитками, нужно согласовывать видео-звонок с банком, где нужно пройти идентификацию с паспортом. Таких звонков нужно минимум три для оформления карты.
4. Несмотря на полное фондирование, нужно заполнить несколько анкет, в том числе одну заполняет работодатель, чтобы кредитное бюро тебя поскорило.
5. Я делал экстремально быстро и вот уже через 15 дней приехал в банк, чтобы отдать оригиналы анкет на скоринг и забрать карту.

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

Этот пост я посвящаю всем, кому Тинькофф присылал в нулевые кредитки по почте, вообще ничего не спрашивая.
9🤯5👍2😢2😁1
Ещё пара мыслей про док мед. Мысль первая, длинная

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

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

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

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

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

Давайте посмотрим на несколько примеров, которые Я ВЫБРАЛ САМ. 😁
👍4
https://www.sciencedirect.com/science/article/abs/pii/S0003999303002399

Итак, неплохой пример.
Звучит многообещающе!
Взяли людей, которые проходят реабилитацию после болезней лёгких. Замеряют расстояние, пройденное за 6 минут это объективный фактор.

Но вот разница получилась только по опроснику. 6MWD не увеличился значимо.

Ещё хочется отметить, что в группе всего 14 испытуемых, средний возраст которых больше 60 лет.
😁1🤔1
Тут снова используется объективный фактор (наряду с опросниками): уровень гликированного гемоглобина.

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

Правда, в метаанализе, из которого я взял эту статью, написано, что качество данных в этих статьях довольно плохое. Зачем тогда их брали? Не поясняют.
У нормального читателя может возникнуть вопрос: а чего они не возьмут какой-нибудь там МРТ, на нём бы замерили, что там с мозгами от лечения?
Судя по всему, наши современные технологии в этой области просто не позволяют делать какие-то надёжные заключения.
Вот вам интересная статья на почитать (популярная, не научная). Там мужик получил шнобелевку. Вообще лучшая премия имхо (привет левитирующим лягушкам).
Так вот. Он замерял с помощью МРТ эмоциональные реакции лосося на человеческие лица, выражающие разные эмоции. Лосось статзначимо различал человеческие эмоции! Это при том, что лосось был мёртвый!
Ноука!
😁17
Мысль вторая. Бесполезная

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

Ну так вот. Мы ж тут умные, — у меня, судя по похожим на мой каналам, тут все сплош дата саентисты собрались, — мы понимаем, что если не удалось показать стат значимую эффективность, это не то же самое, что доказать, будто метод не работает.
С другой стороны, если он так круто работает, то почему не прокрасился в исследованиях?
Да чёрт его знает.
У меня есть предположение, которое, кажется, не так уж трудно проверить.

Вот мы сейчас находимся в эпохе доказательной медицины. Это значит, что в целом, каждого конкретного человека вылечить исследователь не стремится. Исследователь ищет эффективный для масс метод. Типа жертвуем десятком ради миллиарда или что-то в таком духе.
Уже много лет нам порочат эру персонализированной медицины, т.е. нацеленной на лечение конкретного человека. Но никак не наступает это, антиутопическое по-существу, время.

Тем не менее. Возможно, есть какие-то особенности у людей, которым помогает какое-то там альтернативное лечение. Гусары, не надо тут про мозги, сами небось витамин D жрёте, потому что в Инстаграме так сказали.
Если таких людей достаточно много (а их вон сколько в интернете), значит штука не прям уникальная. Высока вероятность, что это что-то генетическое (или энвайронментальное какпарускепамагити).

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

Если ничего не найдём, то будет, что покушать с грантов. А если найдём, то это ж просто Эльдорадо.

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

На самом деле все мы знаем, что я в вопросе не разбираюсь чуть менее, чем полностью. Но это не мешает мне делиться мыслями. Глядишь, кто-нибудь просвятит, почему так никто до сих пор не делает.
9🔥1🤔1
Джависты здесь?

Отличный совет. Я тоже делал всегда. Но только не люблю сложные булевы условия, проще ещё своих обёрток дописать к гуавовским. И форматные строчки не люблю, лучше отдельными аргументами отдавать, а форматировать уже внутри.

Чтобы было понятнее, скорее всего будут методы типа

void validateString(String str, int minLength, int maxLength)

И всевозможные комбинации.
👍1👏1
Forwarded from microJUG (Zheka Kozlov)
Давайте поговорим про валидацию входных аргументов. На первый взгляд тема кажется совсем банальной, но есть в ней несколько нюансов, которым, на мой взгляд, уделяют недостаточно внимания.

Есть, к примеру, следующая запись:
public record Employee(String firstName, String lastName) {}


Чего здесь не хватает? Правильно, проверок на null для firstName и lastName. Ну так давайте добавим:
public record Employee(String firstName, String lastName) {
public Employee {
if (firstName == null) {
throw new NullPointerException("firstName must not be null");
}
if (lastName == null) {
throw new NullPointerException("lastName must not be null");
}
}
}


Как-то слишком длинно. Если у нас в проекте сотни подобных проверок (все ж пишут проверки, так ведь?🙂), то код сильно раздувается. Хочется покомпактнее. Вспоминаем, что в Java 8 появился метод Objects.requireNonNull(). Заменяем:
public Employee {
Objects.requireNonNull(firstName, "firstName must not be null");
Objects.requireNonNull(lastName, "lastName must not be null");
}


Гораздо лучше. Но теперь вспоминаем, что firstName и lastName также не могут быть пустыми. Objects.requireNonNull() тут уже не поможет. Придётся опять писать трёхстрочные if’ы? Не хочется. Можно создать какой-нибудь утилитный метод типа checkCondition(). Но наверняка в какой-нибудь библиотеке такое уже есть? Я в течение своей многолетней практики сталкивался с разными вариантами и в конце концов понял, что всё-таки лучшим образом эту проблему решили в Guava. В классе Preconditions:
public Employee {
...
Preconditions.checkArgument(!firstName.isEmpty(), "firstName must not be empty");
Preconditions.checkArgument(!lastName.isEmpty(), "lastName must not be empty");
}


Есть там и другие проверки: checkNotNull(), checkElementIndex(), checkPositionIndex(), checkState(). При этом checkArgument() из них самый универсальный, и с его помощью можно проверить любое boolean выражение:
Preconditions.checkArgument(firstName != null && !firstName.isEmpty(), "firstName must not be null or empty");
Preconditions.checkArgument(lastName != null && !lastName.isEmpty(), "lastName must not be null or empty");


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

В Гуаве при этом решено ещё несколько проблем.

Представим, что нам ещё надо добавить проверку на максимальную длину строки. Мы пишем в обычном if-стиле и случайно допускаем ошибку в шаблоне:
if (firstName.length() > MAX_LENGTH) {
throw new IllegalArgumentException(String.format("firstName is too long, max length is %s, got %s", MAX_LENGTH));
}


Если в рантайме firstName оказался слишком длинным, то выбросится исключение, но совсем не IllegalArgumentException с красивым сообщением, а что-то совсем другое (MissingFormatArgumentException). Обидно. Гуава в этом плане более снисходительна. Вариант с Preconditions будет в любом случае бросать llegalArgumentException:
Preconditions.checkArgument(firstName.length() <= MAX_LENGTH, "firstName is too long, max length is %s, got %s", MAX_LENGTH);


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

Другая фишка – это стремление Гуавы не генерировать мусора. Все помнят, что в Java есть боксинг, а это значит, что простая сигнатура checkArgument() с Object… создавала бы обёртки над примитивными значениями каждый раз. Мелочь, но всё равно не очень приятно. Но в Гуаве у checkArgument() есть множество перегрузок для большинства простых случаев.

Например, в этом случае мусора не будет вообще, так как есть перегрузка checkArgument(boolean, String, int, int):
Preconditions.checkArgument(firstName.length() <= MAX_LENGTH, "firstName is too long, max length is %s, got %s", MAX_LENGTH, firstName.length());


Таким образом, Preconditions в Гуаве – это:
1. Компактно
2. Безопасно
3. Эффективно

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

#guava
👍5
Я тут полез в своих российских брокеров и обнаружил, что у меня пропал доступ к опционам. А раньше был 🤔.
В общем, статус квала получить я не могу, там нужны какие-то сложные бумажки теперь, мне такие слишком трудно делать.
Решил сдать тест в БКС, чтобы там доступ к опционами получить. Не сдал 😁
😁13
Посмотрел тут "Служебный роман". Раньше не смотрел. Мне очень понравилось. А ещё там есть несколько интересных моментов про работу в организации.

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

1. Обратная связь
- даёт корректирующую (да тут скорее даже негативную) ОС в присутствии третьего лица (своего нового зама, друга подчинённого)
- даёт личностную оценку сотруднику, вместо того, чтобы критиковать результат работы ("проблемы из-за таких ротозеев, как вы")
- не уточняет изначально мнение сотрудника, т.е. не допускает, что может быть не права сама ("вы используете непроверенные данные" вместо "вы проверяли данные?")
- не удостоверяется, что сотрудник согласен с такой оценкой, что он понял ошибку, как он её понял (даже не дожидается, пока он покинет кабинет, сразу переходит к диалогу с другим человеком)
TL;DR ОС от неё выглядит так: "Вы используете непроверенные данные. Из-за таких ротозеев, как вы, просрали страну. Идите переделывать. Что? Вопросы какие-то? Свободны"
С точки зрения сотрудника получается, что директор — это человек, который может по своему усмотрению тебя унизить, наказать и даже не дать шанса на оправдание.

Это, кстати, ещё больше выражено в сцене, где Новосельцев случайно просит себе повышение. Директорша навешивает на него ярлыки: безынициативный, неловкий, робкий болван. Потом шутит над его внешностью (усами). И отказывает в фото грубой форме. На вопрос сотрудника, почему она так о нём думает, просто меняет тему.

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

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

Рядовой клерк, ванаби начальником отдела.

1. Хочет роста, но категорически не хочет говорить об этом начальству. Что, впрочем, с одной стороны можно понять (см. разбор директорши)

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

3. Боится задавать вопросы начальству. Боится проявлять инициативу. Боится даже когда кто-то идёт поговорить с директоршей за него.
Здесь, кажется, играют два фактора. Первое — начальница-тиран. А вот второе — это то, что сотрудник, видимо, сам понимает, что заслуг у него никаких нет. Не за что должность давать. Но признаться сам себе в том не может. Видно, что человек себя высоко ценит, но напускает ложную скромность, чтобы получить побольше подтверждения своей хорошести от друзей-коллег.
👍82
Самый интересный кейс у нового зама.
Он, видно, тёртый корпоративный калач. С первой минуты строит нетворк, пытается произвести положительное впечатление, козыряет предыдущим опытом, ищет сразу "своих" людей, разнюхивает кто и что.
То, что он не может удержаться от хвастовства (машиной, люстрой, сигаретами, опытом жизни в Швейцарии и т.д.), несомненно, отталкивает. Но это, думаю, больше для гладкости сюжета.

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

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

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

Но вот как корректно справится с такой ситуацией? Пишите ваши варианты в комментарии.
3
Как объяснить ребёнку, почему дед мороз в том году в садике говорил только по-сербски?
И почему все называют его мраз?
😁11
Мы с женой не можем решить, какое основное блюдо сделать на Новый Год.
Решили, что будем действовать концептуально: сделаем пиццы, на каждой из которых названия всех ингредиентов начинаются с одной буквы. Пока придумали две: с ананасами, анчоусами и аливками и с онанасами, ончоусами и оливками.
Предлагайте ваши идеи!
😁14
Уже традиционно итоги года писать я не буду 😁

Зато поделюсь впечатлениями от программирования. Я перед новым годом брал отпуск и пару дней потратил на то, чтобы написать бота, который будет учитывать наши расходы (дожили до той стадии, когда уже надо).
Писал на питоне, использовал telebot. Вот из документации его очень сложно вывести аннотации типов для своей программы. Да и в целом интерфейс, сделанный на декораторах, выглядит несколько убого ИМХО. НО! Зато всё работает, очень легко разобраться, как добавить функциональность, все работает, как ожидаешь. Просто код сложновато сделать читаемым (но более или менее получилось).

Второй кусок это тупейший парсер, который умеет понимать всякое там "2UsD на врагов отечества вчера" и "+ 1 rUb зарплата"/"100500 кофе". Я его вообще-то написал по TDD. Но, честно говоря, получилась ужаснейшая лапша. Зато я оценил мощь встроенных в питон функций для работы со строками.

Третий кусочек оказался самым сложным. И ещё более всратым, чем два предыдущих. Бот пишет все транзакции в гугл табличку. Чтобы начать писать в гугл таблички, нужно, блин, завести и настроить аккаунт в гугл клауд! Традиционно отвратительный UX от гугловского облака я преодолевал по трём докам. Потому что не существует какой-то одной доки, а инструкции в интернете от тех, кто делал это полгода назад, уже не работают, потому что гугл опять переделал весь UI. Ну им виднее, они дорого стоят.
В целом норм, когда уже настроил. Даже лимиты такие, что можно небольшой стартап крутить (5рпс на операцию, емнип). Но API сделан в худших традициях работы с базами данных. Там текстом набиваются магические команды (нет, не sql), а потом они кормятся в какой-то билдер, который традиционно заполняет параметры переданными значениями и шлёт батчом по сети куда-то там в недра гугла.
Справедливости ради я в доках есть примеры (которые не работают, конечно же), которые можно слегка потюнить и использовать, не вдаваясь в детали того, что там написано. Я справился, короче.

Программировать мне понравилось, бот работает исправно (захостил его в яндекс облаке), интерфейсы, как и раньше, говно, TDD не спасает от лапши в коде, а питон всё ещё неплохо описывается тем самым мемом.

Всех с новым годом! И удачных интерфейсов вам!
😁6
Ещё утром посмотрел вот это видео. Пушка-бомба, маст си 🐉.
Канал вообще топовый, но местами сложноватый. А вот конкретно это видео супер помогает укладывать в голове многие вещи, если вы вдруг, как я, учите южно-славянские языки.

Почему так? Церковно-славянский язык — это язык Кирилла и Мефодия (очень грубо), как раз-таки из южно-славянской группы, с примесью греческого. Поэтому часто говорят, что он очень похож на болгарский. Раскрою тайну века: он и на сербский похож.
Язык для Руси, по-сути, письменный, но оказавший заметное влияние на русский. Всё-таки, в церковь слушать проповеди (или че там читают) ходили все. Есть у слов церковно-славянского языка оттенок старины в русском: врата, перси, град, злато (я думаю, что именно поэтому Илиада в переводе Гнедича именно такая). Но кроме этого ещё такой пафос, возвышенность. А оно не старое, точнее, не совсем старое, оно просто вообще другое, слово это, из другого языка. У меня домофон и сегодня говорит: "врата отворе".

Посмотрите, короче. Сможете очень душно объяснить ребёнку, что Деда Мраз это просто очень возвышенное название Деда Мороза.
3