Forwarded from Alpha beast
Investment Banking
By Joshua Pearl & Joshua Rosenbaum
Investment Valuation
Damodaran Investment Valuation
Benjamin Graham
Intelligent investor
Brealey Myers
Principles Of Corporate Finance
Ilmanen
Expected returns
Book for portfolio management
Hull J.C.
Options, Futures and other derivatives
McDonald R.
Derivatives markets
By Joshua Pearl & Joshua Rosenbaum
Investment Valuation
Damodaran Investment Valuation
Benjamin Graham
Intelligent investor
Brealey Myers
Principles Of Corporate Finance
Ilmanen
Expected returns
Book for portfolio management
Hull J.C.
Options, Futures and other derivatives
McDonald R.
Derivatives markets
#interview #ab
Материалы, по которым соискатели готовились к собеседованию:
Обзор системы сплитования (на примере Авито): https://habr.com/p/454164/
Краткий обзор по статистическим тестам:
https://vkteam.medium.com/practitioners-guide-to-statistical-tests-ed2d580ef04f
Пуассоновский бутстрап:
https://youtu.be/Zki9VMzxcFU
Подсчёт MDE:
https://medium.com/statistics-experiments/когда-останавливать-a-b-тест-часть-1-mde-7d39b668b488 (Часть 1)
https://medium.com/statistics-experiments/когда-останавливать-a-b-тест-часть-2-monte-carlo-a342ba5b552c (Часть 2)
Стратификация:
https://habr.com/ru/company/X5Tech/blog/596279/
Методы сокращения дисперсии и зачем это нужно: https://youtu.be/KvIJ8FCJzr4
Увеличение чувствительности в A/B с помощью Cuped: https://youtu.be/pZpUM08mv-E
Про FPR, TPR, Statistical power и p-value:
https://youtu.be/XTcP4oo4JI4
https://youtu.be/-zps6hm0nX8
https://youtu.be/2nP_gcut7SU
Канал для подготовки к интервью в сфере Data Science: https://www.youtube.com/c/DataInterviewPro
Лекция Нерсеса Багияна про A/B-тесты: https://youtu.be/cWmS-ws4z9I
Курс «Основы статистики»: https://stepik.org/course/76/syllabus
Курс «Основы статистики. Часть 2»: https://stepik.org/course/524/syllabus
Курс «Основы статистики. Часть 3»: https://stepik.org/course/2152/syllabus
Материалы, по которым соискатели готовились к собеседованию:
Обзор системы сплитования (на примере Авито): https://habr.com/p/454164/
Краткий обзор по статистическим тестам:
https://vkteam.medium.com/practitioners-guide-to-statistical-tests-ed2d580ef04f
Пуассоновский бутстрап:
https://youtu.be/Zki9VMzxcFU
Подсчёт MDE:
https://medium.com/statistics-experiments/когда-останавливать-a-b-тест-часть-1-mde-7d39b668b488 (Часть 1)
https://medium.com/statistics-experiments/когда-останавливать-a-b-тест-часть-2-monte-carlo-a342ba5b552c (Часть 2)
Стратификация:
https://habr.com/ru/company/X5Tech/blog/596279/
Методы сокращения дисперсии и зачем это нужно: https://youtu.be/KvIJ8FCJzr4
Увеличение чувствительности в A/B с помощью Cuped: https://youtu.be/pZpUM08mv-E
Про FPR, TPR, Statistical power и p-value:
https://youtu.be/XTcP4oo4JI4
https://youtu.be/-zps6hm0nX8
https://youtu.be/2nP_gcut7SU
Канал для подготовки к интервью в сфере Data Science: https://www.youtube.com/c/DataInterviewPro
Лекция Нерсеса Багияна про A/B-тесты: https://youtu.be/cWmS-ws4z9I
Курс «Основы статистики»: https://stepik.org/course/76/syllabus
Курс «Основы статистики. Часть 2»: https://stepik.org/course/524/syllabus
Курс «Основы статистики. Часть 3»: https://stepik.org/course/2152/syllabus
Forwarded from Data Science Private Sharing
#Tip26 #EDA
Partial dependence plots (PDP) — это график, который позволяет понять, как различные значения конкретной фичи влияют на предсказания модели.
Под капотом PDP меняет исходные значения целевой фичи и смотрит как изменяются предсказания модели.
По сути PDP показывает ожидаемое среднее значение таргета при различных значения интересующей нас фичи.
Строятся PDP в двух вариантах - для одной фичи и для пары фичей. Обычно для графика выбирают наиболее значимые для модели фичи.
Т.к. PDP работает с уже обученной моделью, то это еще один способ приоткрыть завесу черного ящика (наряду с SHAP и пр.).
PDP можно построить либо с помощью скалерна (но на вход принимаются только родные для скалерна модели):
Либо с помощью сторонних пакетов, например PDPbox (https://github.com/SauceCat/PDPbox):
З.Ы. У PDPbox есть еще много других интересных графиков.
Partial dependence plots (PDP) — это график, который позволяет понять, как различные значения конкретной фичи влияют на предсказания модели.
Под капотом PDP меняет исходные значения целевой фичи и смотрит как изменяются предсказания модели.
По сути PDP показывает ожидаемое среднее значение таргета при различных значения интересующей нас фичи.
Строятся PDP в двух вариантах - для одной фичи и для пары фичей. Обычно для графика выбирают наиболее значимые для модели фичи.
Т.к. PDP работает с уже обученной моделью, то это еще один способ приоткрыть завесу черного ящика (наряду с SHAP и пр.).
PDP можно построить либо с помощью скалерна (но на вход принимаются только родные для скалерна модели):
fig, ax = plt.subplots(figsize=(18.5,4.5))
features = ['bahrooms','sqf_living','yr_buil']
PartialDependenceDisplay.from_estimator(clf, X, features, ax=ax);
Либо с помощью сторонних пакетов, например PDPbox (https://github.com/SauceCat/PDPbox):
features_to_plot = ['sqf_living','bahrooms']
inter1 = pdp.pdp_interact(model=model, dataset=X, model_features=fcols, features=features_to_plot)
pdp.pdp_interact_plot(pdp_interact_out=inter1, feature_names=features_to_plot, plot_type='contour')
plt.show()
З.Ы. У PDPbox есть еще много других интересных графиков.
Forwarded from Artificial stupidity
#ltv #AB #statistics
Проведение A/B тестов над LTV.
Учитывая, что LTV - метрика с достаточно долгим сроком прогнозирования (от месяцев до лет), очевидным образом у нас может возникнуть вопрос - а как это тестировать то? Кажется, что при скорости A/B тестов 1 раз в полгода-год, конкуренты легкой лунной походкой обойдут нас на всех поворотах и вырвутся в лидеры. Потому надо что-то делать.
В принципе, проблему A/B тестирования LTV можно свести к более общей проблеме оценки Long-term эффектов. Этой проблеме даже посвятили отдельный раздел в paper’е Рона Кохави и Лукаса Веермеера “Top Challenges from the first Practical Online Controlled Experiments Summit”. Давайте посмотрим на предлагаемые индустрией решения этой проблемы.
Итак, что же нам предлагают исследователи из разных компаний:
- Отложенная выборка.
Нам предлагается “отложить” на достаточно долгое время некую часть пользователей, на которую мы не будем применять воздействий. В принципе, подход рабочий (мы на одном из предыдущих мест работы его применяли), но сложно реализуемый, если у вас есть хоть какой-то сетевой эффект. Например, часть пользователей будет видеть рекомендательную систему и расскажет своим друзьям. А у них такой системы нет. И тогда поддержке придется туго, если они захотят объяснить, отчего же такое произошло.
Вторая проблема - ротация пользователей. Если мы все не решимся “замораживать” пользователя на год, то у нас должна появиться логика ротации пользователей, то есть перемещения их в “заморозку”, последующего возвращения и правил попадания в эту группу, что может быть не так просто.
- Прокси-метрики.
Простой вариант - мы смотрим не на основную метрику, а на какой-то промежуточный показатель, который, как нам кажется, хорошо определяет поведение основного показателя. Например, для LTV это может быть retention, или user-engagement. То есть, вовлеченность пользователя может неплохо отражать его склонность тратить на нас деньги.
Но минус тут очевидный - “correlation may not imply causation”. Т.к. зависимость между метриками может и не быть реальной причинно-следственной связью. И тогда выводы на proxy не будут вести к улучшению главного показателя.
- Моделирование на основании частичных данных.
Такой подход используется в Google. Давайте запускать кусочки эксперимента через некоторые периоды времени. И потом сравнивать, как постепенно затухает наша метрика при удалении во времени от эксперимента. А дальше мы можем выучить какую-либо кривую, которая аппроксимирует наше затухание, и учитывать это при предсказании эффектов от экспериментов.
Тут тоже не без проблем. Процесс такого запуска весьма непростой и сделать очень большие временные лаги между запусками вряд ли выйдет. Плюс, у нас добавляется еще и моделирующая составляющая, то есть тут нужно все делать аккуратно. Ну и не забывать о смещении, ибо есть вероятность обучить что-то и нарваться на смещенные предсказания.
- Суррогаты.
Можно сказать, что это своего рода расширение над прокси-метриками. В данном случае, мы ищем статистические суррогаты, которые находятся в графе причинно-следственных связей между treatment и outcome. И, что главное, имеют следующее свойство: treatment и outcome условно независимы при условии суррогата. При этом, нам не обязательно использовать только одну прокси-метрику для построения суррогата - мы можем построить вектор прокси-метрик, который будет иметь требуемое свойство.
Соответственно, из минусов у нас то, что нам надо строить какую-то причинно следственную модель, отбирать прокси-метрики в суррогат, пытаясь учесть все нужные прокси (что не так просто, как может показаться на первый взгляд).
Чтобы чуть углубитьcя в тему, давайте рассмотрим какой-нибудь из вариантов решения проблемы оценки Long-term эффектов. В следующей заметке я опишу использование статистических суррогатов на основе статьи от LinkedIn.
Проведение A/B тестов над LTV.
Учитывая, что LTV - метрика с достаточно долгим сроком прогнозирования (от месяцев до лет), очевидным образом у нас может возникнуть вопрос - а как это тестировать то? Кажется, что при скорости A/B тестов 1 раз в полгода-год, конкуренты легкой лунной походкой обойдут нас на всех поворотах и вырвутся в лидеры. Потому надо что-то делать.
В принципе, проблему A/B тестирования LTV можно свести к более общей проблеме оценки Long-term эффектов. Этой проблеме даже посвятили отдельный раздел в paper’е Рона Кохави и Лукаса Веермеера “Top Challenges from the first Practical Online Controlled Experiments Summit”. Давайте посмотрим на предлагаемые индустрией решения этой проблемы.
Итак, что же нам предлагают исследователи из разных компаний:
- Отложенная выборка.
Нам предлагается “отложить” на достаточно долгое время некую часть пользователей, на которую мы не будем применять воздействий. В принципе, подход рабочий (мы на одном из предыдущих мест работы его применяли), но сложно реализуемый, если у вас есть хоть какой-то сетевой эффект. Например, часть пользователей будет видеть рекомендательную систему и расскажет своим друзьям. А у них такой системы нет. И тогда поддержке придется туго, если они захотят объяснить, отчего же такое произошло.
Вторая проблема - ротация пользователей. Если мы все не решимся “замораживать” пользователя на год, то у нас должна появиться логика ротации пользователей, то есть перемещения их в “заморозку”, последующего возвращения и правил попадания в эту группу, что может быть не так просто.
- Прокси-метрики.
Простой вариант - мы смотрим не на основную метрику, а на какой-то промежуточный показатель, который, как нам кажется, хорошо определяет поведение основного показателя. Например, для LTV это может быть retention, или user-engagement. То есть, вовлеченность пользователя может неплохо отражать его склонность тратить на нас деньги.
Но минус тут очевидный - “correlation may not imply causation”. Т.к. зависимость между метриками может и не быть реальной причинно-следственной связью. И тогда выводы на proxy не будут вести к улучшению главного показателя.
- Моделирование на основании частичных данных.
Такой подход используется в Google. Давайте запускать кусочки эксперимента через некоторые периоды времени. И потом сравнивать, как постепенно затухает наша метрика при удалении во времени от эксперимента. А дальше мы можем выучить какую-либо кривую, которая аппроксимирует наше затухание, и учитывать это при предсказании эффектов от экспериментов.
Тут тоже не без проблем. Процесс такого запуска весьма непростой и сделать очень большие временные лаги между запусками вряд ли выйдет. Плюс, у нас добавляется еще и моделирующая составляющая, то есть тут нужно все делать аккуратно. Ну и не забывать о смещении, ибо есть вероятность обучить что-то и нарваться на смещенные предсказания.
- Суррогаты.
Можно сказать, что это своего рода расширение над прокси-метриками. В данном случае, мы ищем статистические суррогаты, которые находятся в графе причинно-следственных связей между treatment и outcome. И, что главное, имеют следующее свойство: treatment и outcome условно независимы при условии суррогата. При этом, нам не обязательно использовать только одну прокси-метрику для построения суррогата - мы можем построить вектор прокси-метрик, который будет иметь требуемое свойство.
Соответственно, из минусов у нас то, что нам надо строить какую-то причинно следственную модель, отбирать прокси-метрики в суррогат, пытаясь учесть все нужные прокси (что не так просто, как может показаться на первый взгляд).
Чтобы чуть углубитьcя в тему, давайте рассмотрим какой-нибудь из вариантов решения проблемы оценки Long-term эффектов. В следующей заметке я опишу использование статистических суррогатов на основе статьи от LinkedIn.
Forwarded from Data Science Private Sharing
#Tip26.1 #EDA
Для понимания как строится PDP попробуем построить его в ручную.
Алгоритм такой:
- Выбираем какую-нибудь фичу
- Вычисляем все ее уникальные значения (для непрерывной фичи можно взять сколько-то квантильных значений)
- Проходимся по каждому из них и:
- В исходном датасете для нашей фичи заменяем все значения на одно - текущее
- Делаем предсказание
- Усредняем полученные предсказания
И так для каждого уникального значения. В итоге получаем набор пар: (уникальное значение - средний предикт)
По смыслу мы как бы спрашиваем модель: а что если бы фича принимала бы только одно значение из возможного диапазона (при этом другие фичи не трогаем) - какими тогда стали бы предсказания?
- Выводим их на графике.
З.Ы. Также для демонстрации влияния на отдельные примеры выведем случайные 50 записей. Такой график уже будет называться Individual Conditional Expectation (ICE). Он позволяет увидеть какие-либо аномалии - как отдельные записи отклоняются от среднего значения.
Для понимания как строится PDP попробуем построить его в ручную.
Алгоритм такой:
- Выбираем какую-нибудь фичу
- Вычисляем все ее уникальные значения (для непрерывной фичи можно взять сколько-то квантильных значений)
- Проходимся по каждому из них и:
- В исходном датасете для нашей фичи заменяем все значения на одно - текущее
- Делаем предсказание
- Усредняем полученные предсказания
И так для каждого уникального значения. В итоге получаем набор пар: (уникальное значение - средний предикт)
По смыслу мы как бы спрашиваем модель: а что если бы фича принимала бы только одно значение из возможного диапазона (при этом другие фичи не трогаем) - какими тогда стали бы предсказания?
- Выводим их на графике.
З.Ы. Также для демонстрации влияния на отдельные примеры выведем случайные 50 записей. Такой график уже будет называться Individual Conditional Expectation (ICE). Он позволяет увидеть какие-либо аномалии - как отдельные записи отклоняются от среднего значения.
# Считаем PDP
col = 'grade'
uniq_values = sorted(X[col].unique())
preds = {}
for v in uniq_values:
X_copy = X.copy()
X_copy[col] = v
preds[v] = model.predict(X_copy)
preds = pd.DataFrame(preds)
pdp = preds.mean()
# Выбираем случайные 50 записей
samp = preds.sample(50).copy()
samp = samp.reset_index().melt('index', var_name='cols', value_name='vals')
# Строим графики
plt.figure(figsize=(13,6))
sns.lineplot(data=samp, x='cols', y='vals', hue='index', legend=False, palette='GnBu', alpha=0.2)
sns.lineplot(x=pdp.index, y=pdp, color='red', linewidth=2)
plt.xlabel(col)
plt.ylabel('PDP');
Forwarded from я так понимаю, Роман Васильев
Из https://news.1rj.ru/str/proudobstvo
Имхо актуально во всех направлениях
Кому за что платят:
Джун:
— за стремление оперативно находить знания, необходимые для решения задач.
— за правильные вопросы, если знания не нашёл.
Мидл:
— за широкий круг знаний, применяемых при решении широкого круга задач.
Синьёр:
— за глубинные знания, применяемые при решении узкого круга задач.
— за умение создавать знания после решения ранее нерешаемых задач.
— за правильные ответы на вопросы.
Лид:
— за уверенность и умение решать вопросы, а не задавать их.
— за знание, как умножать знания в команде.
— за умение не делать задачи, которые умеют делать другие.
Имхо актуально во всех направлениях
Кому за что платят:
Джун:
— за стремление оперативно находить знания, необходимые для решения задач.
— за правильные вопросы, если знания не нашёл.
Мидл:
— за широкий круг знаний, применяемых при решении широкого круга задач.
Синьёр:
— за глубинные знания, применяемые при решении узкого круга задач.
— за умение создавать знания после решения ранее нерешаемых задач.
— за правильные ответы на вопросы.
Лид:
— за уверенность и умение решать вопросы, а не задавать их.
— за знание, как умножать знания в команде.
— за умение не делать задачи, которые умеют делать другие.
Telegram
Про удобство (Михаил Греков)
Про продуктоводство, UX, работу с b2b-продуктом и здравый смысл.
Пишет Михаил Греков, Head of product AW BI aw-bi.ru
🔥 Второй канал: Продуктовошная @suda_smotri
🔥 Третий: B2B РЕХАБ @b2brehab
РКН: https://clck.ru/3FeFq7
Сотрудничество — @GrekovM
Пишет Михаил Греков, Head of product AW BI aw-bi.ru
🔥 Второй канал: Продуктовошная @suda_smotri
🔥 Третий: B2B РЕХАБ @b2brehab
РКН: https://clck.ru/3FeFq7
Сотрудничество — @GrekovM
Forwarded from Диаграммы и презентации
Полезные блоги про визуализацию данных.
Поделюсь несколькими хорошими ресурсами по визу. Их точно намного больше, всего знать не могу. Но вот, что читаю и смотрю:
1. http://www.perceptualedge.com/blog/
ENG. Блог Стивена Фью. Это самый известный в мире дядя в сфере бизнес-инфографики. Он не так часто пишет, но есть архив, в нем много всего интересного, полезного, умного. Почитайте, не пожалеете)
2. https://blog.datawrapper.de/
ENG. Блог ребят из Datawrapper. Очень простые, понятные и полезные статьи про виз-ию данных. Много примеров. Разбирают ошибки, что нужно учитывать при построении разных диаграмм, как работать с цветом, про него прям много материала.
3. https://filwd.substack.com/
ENG. Пока не большой, но полезный блог Энрико Бертини. Это исследователь в области виз-ии данных и визуальной аналитики.
4. https://www.storytellingwithdata.com/blog
ENG. Не помню, как нашла этот блог. Но очень понятные и полезные статьи. Много примеров и разборов.
5. https://eagereyes.org/
ENG. Блог Роберта Косары. Его работы — это визуальный сторителлинг с помощью данных. Много полезных статей и его интересный взгляд на виз-ию данных.
6. https://news.1rj.ru/str/analyst_club
RUS. Телеграм-канал Алексея Колоколова - клуб анонимных аналитиков. Много пишет про диаграммы и дашборды.
7. https://news.1rj.ru/str/chartomojka
RUS. Телеграм-канал Александра Богачева - Чартомойка. Думаю его многие знают. Много пишет про диаграммы, делает разборы, делится полезной информацией.
8. https://news.1rj.ru/str/revealthedata
RUS. Телеграм-канал Ромы Бунина. Про визуализацию данных, развитие BI-систем и Tableau.
А где смотреть примеры хороших работ, чтобы развивать насмотренность?
1. https://informationisbeautiful.net/
ENG. Блог Дэвида Маккэндлесса. Взгляд на большие данные с точки зрения дизайнера. Маккэндлесс – известный практик в области инфографики. В основе его идеи лежит преобразование информации, содержащей минимум слов, в красивую и полезную визуализацию. Очень много красивых работ.
https://informationisbeautiful.net/beautifulnews/
И еще его работы.
2. https://journal.tinkoff.ru/flows/statistika/
RUS. Тинькофф-журнал раздел Статистика. Много интересных статей и в каждой есть виз-ия данных. Много хороших работ.
3. https://ria.ru/infografika/
RUS. Раздел инфографики у РИА Новости. Много интересных работ.
Делитесь в комментах ресурсами и блогами, которые знаете/читаете/смотрите по виз-ии данных😊
Поделюсь несколькими хорошими ресурсами по визу. Их точно намного больше, всего знать не могу. Но вот, что читаю и смотрю:
1. http://www.perceptualedge.com/blog/
ENG. Блог Стивена Фью. Это самый известный в мире дядя в сфере бизнес-инфографики. Он не так часто пишет, но есть архив, в нем много всего интересного, полезного, умного. Почитайте, не пожалеете)
2. https://blog.datawrapper.de/
ENG. Блог ребят из Datawrapper. Очень простые, понятные и полезные статьи про виз-ию данных. Много примеров. Разбирают ошибки, что нужно учитывать при построении разных диаграмм, как работать с цветом, про него прям много материала.
3. https://filwd.substack.com/
ENG. Пока не большой, но полезный блог Энрико Бертини. Это исследователь в области виз-ии данных и визуальной аналитики.
4. https://www.storytellingwithdata.com/blog
ENG. Не помню, как нашла этот блог. Но очень понятные и полезные статьи. Много примеров и разборов.
5. https://eagereyes.org/
ENG. Блог Роберта Косары. Его работы — это визуальный сторителлинг с помощью данных. Много полезных статей и его интересный взгляд на виз-ию данных.
6. https://news.1rj.ru/str/analyst_club
RUS. Телеграм-канал Алексея Колоколова - клуб анонимных аналитиков. Много пишет про диаграммы и дашборды.
7. https://news.1rj.ru/str/chartomojka
RUS. Телеграм-канал Александра Богачева - Чартомойка. Думаю его многие знают. Много пишет про диаграммы, делает разборы, делится полезной информацией.
8. https://news.1rj.ru/str/revealthedata
RUS. Телеграм-канал Ромы Бунина. Про визуализацию данных, развитие BI-систем и Tableau.
А где смотреть примеры хороших работ, чтобы развивать насмотренность?
1. https://informationisbeautiful.net/
ENG. Блог Дэвида Маккэндлесса. Взгляд на большие данные с точки зрения дизайнера. Маккэндлесс – известный практик в области инфографики. В основе его идеи лежит преобразование информации, содержащей минимум слов, в красивую и полезную визуализацию. Очень много красивых работ.
https://informationisbeautiful.net/beautifulnews/
И еще его работы.
2. https://journal.tinkoff.ru/flows/statistika/
RUS. Тинькофф-журнал раздел Статистика. Много интересных статей и в каждой есть виз-ия данных. Много хороших работ.
3. https://ria.ru/infografika/
RUS. Раздел инфографики у РИА Новости. Много интересных работ.
Делитесь в комментах ресурсами и блогами, которые знаете/читаете/смотрите по виз-ии данных😊
Forwarded from DevFM
Вопросы для junior python developer
Статьи для подготовки к собеседованиям хорошо помогают в поиске собственных пробелов в знаниях. В статье Полный список вопросов с собеседований по Python для дата-сайентистов и инженеров (habr, 2020, оригинал) на самом деле покрываются базовые аспекты Python для младшего разработчика.
Некоторые вещи объяснены плохо, лучше прочитайте документацию, книги Лутца или Лучано. Кстати, у последнего в этом году вышло второе издание Python. К вершинам мастерства (в оригинале Fluent Python).
И да, в п. 53 автор забыл, что в try-except-finally может быть и else, который выполнится, если не было исключений. О блоке else у for мы писали раньше.
#python #books
Статьи для подготовки к собеседованиям хорошо помогают в поиске собственных пробелов в знаниях. В статье Полный список вопросов с собеседований по Python для дата-сайентистов и инженеров (habr, 2020, оригинал) на самом деле покрываются базовые аспекты Python для младшего разработчика.
Некоторые вещи объяснены плохо, лучше прочитайте документацию, книги Лутца или Лучано. Кстати, у последнего в этом году вышло второе издание Python. К вершинам мастерства (в оригинале Fluent Python).
И да, в п. 53 автор забыл, что в try-except-finally может быть и else, который выполнится, если не было исключений. О блоке else у for мы писали раньше.
#python #books
Хабр
Полный список вопросов с собеседований по Python для дата-сайентистов и инженеров
Snake and flowers 2 by pikaole Бывает, что компания ищет дата-сайентиста, а на самом деле ей нужен Python-разработчик. Поэтому при подготовке к собеседованию есть смысл освежить в памяти информацию по...