Please open Telegram to view this post
VIEW IN TELEGRAM
👍 Что посмотреть: мониторинг и аналитика ML-моделей
Хотите понимать, как отслеживать поведение машинного обучения в проде, выявлять проблемы и поддерживать высокую точность моделей?
В этом плейлисте разберём:
🔹 Введение — зачем нужен мониторинг
🔹 Дрейф данных и моделей
🔹 Как обнаружить и предотвратить дрейф
🔹 Дизайн системы мониторинга
🔹 Практика — пошаговая реализация на реальных примерах
Библиотека дата-сайентиста #буст
Хотите понимать, как отслеживать поведение машинного обучения в проде, выявлять проблемы и поддерживать высокую точность моделей?
В этом плейлисте разберём:
🔹 Введение — зачем нужен мониторинг
🔹 Дрейф данных и моделей
🔹 Как обнаружить и предотвратить дрейф
🔹 Дизайн системы мониторинга
🔹 Практика — пошаговая реализация на реальных примерах
Библиотека дата-сайентиста #буст
Forwarded from Proglib.academy | IT-курсы
Можно ли стать разработчиком, если в школе ненавидел математику? А если наоборот — тащился от алгебры и геометрии, но кодить не умеешь? Эта статья раскладывает всё по полочкам: где без математики никуда, а где можно и без неё.
✓ Почему все считают, что программисты — математики
✓ В каких сферах разработки можно вообще не знать математику
✓ Где хватит готовых библиотек, а где придётся разбираться в формулах
✓ Какие области программирования требуют мощного математического бэкграунда
✓ Что делать, если математика — это боль, но хочется освоить ML или Data Science
✓ Топ книг, которые помогут понять и даже полюбить математику
Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Холивар: AI-инструменты в работе — must-have или бесполезная игрушка?
Сегодня появляется всё больше решений, упрощающих жизнь дата-сайентистам. Например, PandasAI — инструмент, который позволяет задавать вопросы к данным на естественном языке. Это полезно и для новичков, и для опытных специалистов, которым нужно сэкономить время.
🛠 Пример использования PandasAI:
Этот код позволяет легко получать инсайты из данных без сложного анализа.
А как у вас с AI-помощниками в работе? Делитесь в комментах, какие инструменты вам реально помогают! 👇
🔥 — да, активно использую
👍 — пробовал(а), но не зашло
🤔 — пока не использую, но интересно
🌚 — нет, считаю их бесполезными
Библиотека дата-сайентиста #междусобойчик
Сегодня появляется всё больше решений, упрощающих жизнь дата-сайентистам. Например, PandasAI — инструмент, который позволяет задавать вопросы к данным на естественном языке. Это полезно и для новичков, и для опытных специалистов, которым нужно сэкономить время.
🛠 Пример использования PandasAI:
import pandasai as pai
# Sample DataFrame
df = pai.DataFrame({
"country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
"revenue": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000]
})
# By default, unless you choose a different LLM, it will use BambooLLM.
# You can get your free API key signing up at https://app.pandabi.ai (you can also configure it in your .env file)
pai.api_key.set("your-pai-api-key")
df.chat('Which are the top 5 countries by sales?')
Этот код позволяет легко получать инсайты из данных без сложного анализа.
А как у вас с AI-помощниками в работе? Делитесь в комментах, какие инструменты вам реально помогают! 👇
🔥 — да, активно использую
👍 — пробовал(а), но не зашло
🤔 — пока не использую, но интересно
🌚 — нет, считаю их бесполезными
Библиотека дата-сайентиста #междусобойчик
🤖 Новости DS и AI
🔹 Manus — китайский AI-агент, комбинирующий модели с планированием действий.
🔹 OpenAI изучает «взлом» своих моделей, которые иногда «читерят».
🔹 Google Gemma 3 — 128k токенов и мультимодальность.
🔹 OpenAI запустил Responses API — веб-поиск, работа с файлами, автоматизация.
🔹 Gemini 2.0 Flash Exp — новый уровень AI-редактирования изображений.
🔹 Google Colab поддерживает Julia.
🔹 Первая научная ИИ статья прошла рецензирование на ICLR.
🔹 Импорт окружения Kaggle в Colab — упрощает работу с ML.
Что посмотреть и почитать:
🔹 The Future of U.S. AI Leadership — AI будет писать 90% кода.
🔹 Создание простого ML-стека.
🔹 Как внедрить вредоносный код в AI-модель через pickle.
🔹 Градиентный бустинг для чайников.
🔹 Распределенное обучение в MLOps.
Инструменты:
🔹 Pandas AutoProfiler — для профилирования DataFrame.
🔹 Validoopsie — для валидации данных в Python.
🔹 MLJAR Studio — приложение на базе JupyterLab для начинающих.
Библиотека дата-сайентиста #свежак
🔹 Manus — китайский AI-агент, комбинирующий модели с планированием действий.
🔹 OpenAI изучает «взлом» своих моделей, которые иногда «читерят».
🔹 Google Gemma 3 — 128k токенов и мультимодальность.
🔹 OpenAI запустил Responses API — веб-поиск, работа с файлами, автоматизация.
🔹 Gemini 2.0 Flash Exp — новый уровень AI-редактирования изображений.
🔹 Google Colab поддерживает Julia.
🔹 Первая научная ИИ статья прошла рецензирование на ICLR.
🔹 Импорт окружения Kaggle в Colab — упрощает работу с ML.
Что посмотреть и почитать:
🔹 The Future of U.S. AI Leadership — AI будет писать 90% кода.
🔹 Создание простого ML-стека.
🔹 Как внедрить вредоносный код в AI-модель через pickle.
🔹 Градиентный бустинг для чайников.
🔹 Распределенное обучение в MLOps.
Инструменты:
🔹 Pandas AutoProfiler — для профилирования DataFrame.
🔹 Validoopsie — для валидации данных в Python.
🔹 MLJAR Studio — приложение на базе JupyterLab для начинающих.
Библиотека дата-сайентиста #свежак
This media is not supported in your browser
VIEW IN TELEGRAM
📌 Это база: аctive learning
Разметка данных — процесс сложный, дорогой и отнимающий много времени. Active Learning (Активное обучение) — способ эффективно обучать модели, даже если данных с разметкой нет.
🔍 Как это работает:
1. Начинаем с небольшой разметки
Размечаем вручную лишь малую часть данных (~1%).
2. Обучаем начальную модель
На основе размеченных данных строим базовую модель (она будет неточной, но это нормально).
3. Предсказываем метки для оставшихся данных
Но мы не знаем, насколько предсказания модели точны.
4. Оцениваем уверенность модели
• Если разница между 1-м и 2-м по вероятности классом большая, значит, модель уверена в предсказании.
• Если разница маленькая, значит, модель сомневается.
5. Размечаем только неуверенные предсказания
• Вместо того, чтобы вручную размечать весь набор данных, мы фокусируемся только на сложных примерах.
• Полученные новые метки добавляем в тренировочный набор.
6. Повторяем процесс
• Обучаем модель заново.
• Генерируем предсказания и уровни уверенности.
• Размечаем только сложные случаи.
• Повторяем, пока модель не станет достаточно точной.
🤝 Cooperative Learning:
Можно пойти дальше:
✔️ Низко-уверенные примеры размечаем вручную.
✔️ Высоко-уверенные примеры добавляем в тренировочный набор с их предсказанными метками.
🔹 Что это даёт:
• Сокращает количество размечаемых данных.
• Ускоряет обучение.
• Улучшает качество модели с минимальными затратами.
Библиотека дата-сайентиста #буст
Разметка данных — процесс сложный, дорогой и отнимающий много времени. Active Learning (Активное обучение) — способ эффективно обучать модели, даже если данных с разметкой нет.
🔍 Как это работает:
1. Начинаем с небольшой разметки
Размечаем вручную лишь малую часть данных (~1%).
2. Обучаем начальную модель
На основе размеченных данных строим базовую модель (она будет неточной, но это нормально).
3. Предсказываем метки для оставшихся данных
Но мы не знаем, насколько предсказания модели точны.
4. Оцениваем уверенность модели
• Если разница между 1-м и 2-м по вероятности классом большая, значит, модель уверена в предсказании.
• Если разница маленькая, значит, модель сомневается.
5. Размечаем только неуверенные предсказания
• Вместо того, чтобы вручную размечать весь набор данных, мы фокусируемся только на сложных примерах.
• Полученные новые метки добавляем в тренировочный набор.
6. Повторяем процесс
• Обучаем модель заново.
• Генерируем предсказания и уровни уверенности.
• Размечаем только сложные случаи.
• Повторяем, пока модель не станет достаточно точной.
🤝 Cooperative Learning:
Можно пойти дальше:
✔️ Низко-уверенные примеры размечаем вручную.
✔️ Высоко-уверенные примеры добавляем в тренировочный набор с их предсказанными метками.
🔹 Что это даёт:
• Сокращает количество размечаемых данных.
• Ускоряет обучение.
• Улучшает качество модели с минимальными затратами.
Библиотека дата-сайентиста #буст
Forwarded from Библиотека задач по Data Science | тесты, код, задания
Что выведет код?
❤️ — {1:4, 2:5, 3:6}
👍 — {4:1, 5:2, 6:3}
🔥 —{1: [4, 5, 6], 2: [4, 5, 6], 3: [4, 5, 6]}
⚡️ — Error
Библиотека задач по Data Science
❤️ — {1:4, 2:5, 3:6}
👍 — {4:1, 5:2, 6:3}
🔥 —{1: [4, 5, 6], 2: [4, 5, 6], 3: [4, 5, 6]}
⚡️ — Error
Библиотека задач по Data Science
🔥 GTC 2025: главное событие в мире ИИ и ускоренных вычислений
С 17 по 21 марта 2025 года ведущие эксперты из PyTorch Foundation, NVIDIA, Google Cloud, Meta, Microsoft и других компаний обсудят будущее AI.
Ключевые темы:
🔹 Open-source AI: PyTorch, vLLM, Ray, NeMo
🔹 Оптимизация PyTorch: CUDA, Thunder, FlexAttention
🔹 Ускорение обучения и инференса нейросетей
🔹 Графовые нейросети для финансового анализа
🔹 Улучшение RAG с fine-tuning embedding-моделей
📍 Присоединяйтесь онлайн бесплатно: https://clc.to/xsz66A
Библиотека дата-сайентиста #свежак
С 17 по 21 марта 2025 года ведущие эксперты из PyTorch Foundation, NVIDIA, Google Cloud, Meta, Microsoft и других компаний обсудят будущее AI.
Ключевые темы:
🔹 Open-source AI: PyTorch, vLLM, Ray, NeMo
🔹 Оптимизация PyTorch: CUDA, Thunder, FlexAttention
🔹 Ускорение обучения и инференса нейросетей
🔹 Графовые нейросети для финансового анализа
🔹 Улучшение RAG с fine-tuning embedding-моделей
📍 Присоединяйтесь онлайн бесплатно: https://clc.to/xsz66A
Библиотека дата-сайентиста #свежак
❗️Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
job.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
📌 Шпаргалка: как выбрать AI-модель в 2025 году
🔹 ChatGPT — лучший для диалогов, генерации текста и объяснений.
🔹 Claude — глубоко анализирует длинные тексты.
🔹 Perplexity — идеально подходит для поиска и структурирования данных.
🔹 Gemini — интеграция с Google для актуальных сведений.
🔹 Grok — фокус на аналитике и технических задачах.
Полное сравнение моделей: https://clc.to/u6RuRA
Библиотека дата-сайентиста #буст
🔹 ChatGPT — лучший для диалогов, генерации текста и объяснений.
🔹 Claude — глубоко анализирует длинные тексты.
🔹 Perplexity — идеально подходит для поиска и структурирования данных.
🔹 Gemini — интеграция с Google для актуальных сведений.
🔹 Grok — фокус на аналитике и технических задачах.
Полное сравнение моделей: https://clc.to/u6RuRA
Библиотека дата-сайентиста #буст
🔧 Инструмент дня: cuML для машинного обучения на GPU
cuML — это библиотека для ML-алгоритмов на GPU с API, совместимым с scikit-learn.
Преимущества:
🔹 Ускоряет вычисления в 10–50 раз по сравнению с CPU.
🔹 Поддерживает популярные табличные ML-задачи.
🔹 Прост в использовании — не требует знаний CUDA.
Пример кластеризации DBSCAN на GPU:
Вывод:
Подробнее о cuML: https://clc.to/oBhy1Q
Библиотека дата-сайентиста #буст
cuML — это библиотека для ML-алгоритмов на GPU с API, совместимым с scikit-learn.
Преимущества:
🔹 Ускоряет вычисления в 10–50 раз по сравнению с CPU.
🔹 Поддерживает популярные табличные ML-задачи.
🔹 Прост в использовании — не требует знаний CUDA.
Пример кластеризации DBSCAN на GPU:
import cudf
from cuml.cluster import DBSCAN
# Создаем и заполняем GPU DataFrame
gdf_float = cudf.DataFrame()
gdf_float['0'] = [1.0, 2.0, 5.0]
gdf_float['1'] = [4.0, 2.0, 1.0]
gdf_float['2'] = [4.0, 2.0, 1.0]
# Настраиваем и запускаем кластеризацию
dbscan_float = DBSCAN(eps=1.0, min_samples=1)
dbscan_float.fit(gdf_float)
print(dbscan_float.labels_)
Вывод:
0 0
1 1
2 2
dtype: int32
Подробнее о cuML: https://clc.to/oBhy1Q
Библиотека дата-сайентиста #буст
Media is too big
VIEW IN TELEGRAM
🤖 NVIDIA представила Groot N1 — AI-модель для человекоподобных роботов
На GTC 2025 в Сан-Хосе NVIDIA анонсировала Groot N1 — универсальную AI-модель для роботов. Это развитие прошлогоднего Project Groot, но с более широким спектром применения.
🔹 Двойная архитектура: «быстрое» и «медленное» мышление, как у человека.
🔹 Анализ, планирование и выполнение сложных действий.
🔹 Открытый исходный код, симуляционные фреймворки и генерация синтетических данных.
💬 Дженсен Хуанг: «Эра универсальных роботов уже здесь!»
Что думаете? Делитесь в комментариях!👇
Библиотека дата-сайентиста #свежак
На GTC 2025 в Сан-Хосе NVIDIA анонсировала Groot N1 — универсальную AI-модель для роботов. Это развитие прошлогоднего Project Groot, но с более широким спектром применения.
🔹 Двойная архитектура: «быстрое» и «медленное» мышление, как у человека.
🔹 Анализ, планирование и выполнение сложных действий.
🔹 Открытый исходный код, симуляционные фреймворки и генерация синтетических данных.
💬 Дженсен Хуанг: «Эра универсальных роботов уже здесь!»
Что думаете? Делитесь в комментариях!
Библиотека дата-сайентиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
В нашем чате работает бот Shieldy — он защищает от спама, запрашивая у новых участников решение простой капчи.
⚠️ Проблема, с которой сталкиваются многие: вы нажимаете под постом «Прокомментировать», пишете что-то, а потом получаете бан и не можете писать комментарии.
❓Почему так: Shieldy отправляет капчу в сам чат, а не в комментарии под конкретный пост. Из-за этого капчу можно не увидеть, не отправить ответ на нее, и бот автоматически заблокирует вас.
— Зайдите в описание канала с телефона и нажмите кнопку Discuss / Чат
— Нажмите Join / Присоединиться
— Сразу обратите внимание на сообщение от бота Shieldy
— Решите простой пример и отправьте ответ в чат
После этого бот отправит приветственное сообщение и вы сможете оставлять комментарии. Эту проверку нужно пройти только один раз при вступлении в чат.
❗️ Если вас все-таки забанили
— Это временная блокировка на несколько минут
— Подождите и попробуйте зайти позже, бот снова отправит вам капчу
Админы канала никак не могут ускорить процесс, бот автоматически снимает с вас блокировку через пару минут. Мы понимаем, что эта система неидеальна, и ищем более удобное решение.
👾 Спасибо, что активно участвуете в обсуждении наших постов!
Please open Telegram to view this post
VIEW IN TELEGRAM
Apache Arrow — это колонный формат данных, предназначенный для эффективной обработки и обмена данными между различными инструментами. Он поддерживает быстрое чтение и запись данных, что делает его идеальным для работы с большими объемами информации.
Для начала работы с Arrow необходимо установить библиотеки
pyarrow
и pandas
:pip install pyarrow pandas
Основные операции:
1. Создание таблицы
Создадим таблицу с двумя колонками:
import pyarrow as pa
teams = pa.array(['Barcelona', 'Real Madrid', 'Rayo Vallecano', 'Athletic Club', 'Real Betis'], type=pa.string())
goals = pa.array([30, 23, 9, 24, 12], type=pa.int8())
team_goals_table = pa.table([teams, goals], names=['Team', 'Goals'])
Преобразуем её в Pandas DataFrame:
df = team_goals_table.to_pandas()
2. Чтение и запись Parquet
Arrow поддерживает работу с форматом Parquet, который оптимизирован по памяти:
import pyarrow.parquet as pq
# Запись в Parquet
pq.write_table(team_goals_table, 'data.parquet')
# Чтение из Parquet
table = pq.read_table('data.parquet')
3. Операции с данными
Сравним два массива:
import pyarrow.compute as pc
a = pa.array([1, 2, 3, 4, 5])
b = pa.array([1, 3, 3, 4, 5])
pc.equal(a, b)
Суммируем элементы массива:
pc.sum(a)
4. Группировка и агрегация
Группируем данные по команде и считаем сумму голов:
table = pa.table({'Team': ['Barcelona', 'Real Madrid'], 'Goals': [30, 23]})
table.group_by('Team').aggregate([('Goals', 'sum')])
Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Используйте этот промпт для построения графиков с помощью Matplotlib.
🔹 Промпт:
I want you to act as a data scientist coding in Python. Given a dataframe {dataframe name} containing the columns {column names}, use Matplotlib to plot a {chart type} that shows the relationship between {variables}. Additionally, annotate the plot with the following details: {annotation requirements}. Format the plot by adjusting {specific formatting preferences}. Finally, change the plot's theme to {theme} to match the visual style of {theme description}.
Результат:
🔹 Качественные и профессиональные визуализации данных.
🔹 Подробное оформление и аннотации на графиках.
🔹 Удобное и понятное оформление графиков с использованием популярных тем.
✔️ Пример:
Исходный датафрейм с данными о возрасте, доходе и уровне образования:
import pandas as pd
data = {
'age': [25, 30, 35, 40, 45],
'income': [50000, 60000, 70000, 80000, 90000],
'education_level': ['Bachelors', 'Masters', 'PhD', 'Bachelors', 'Masters']
}
df = pd.DataFrame(data)
💬 Пример использования промпта:
I want you to act as a data scientist coding in Python. Given a dataframe df containing the columns ['age', 'income', 'education_level'], use Matplotlib to plot a scatter plot that shows the relationship between age and income. Additionally, annotate the plot with the following details: highlight the highest and lowest income values. Format the plot by adjusting the title, axis labels, and grid lines. Finally, change the plot's theme to seaborn-darkgrid to match the visual style of a clean and modern plot with dark gridlines.
Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
⏰ STUMPY: умный анализ временных рядов
STUMPY — это мощная и масштабируемая библиотека Python для работы с временными рядами. Она эффективно вычисляет матричный профиль, который помогает находить ближайшие соседи для каждого подотрезка временного ряда.
С его помощью можно решать задачи:
✔️ Поиск повторяющихся паттернов.
✔️ Обнаружение аномалий.
✔️ Выделение ключевых подотрезков (shapelets).
✔️ Семантическая сегментация.
✔️ Анализ потоковых данных.
✔️ Быстрое приближённое вычисление матричных профилей.
✔️ Построение временных цепочек.
✔️ Краткое представление длинных временных рядов.
👉 Подробнее — в документации.
Библиотека дата-сайентиста #буст
STUMPY — это мощная и масштабируемая библиотека Python для работы с временными рядами. Она эффективно вычисляет матричный профиль, который помогает находить ближайшие соседи для каждого подотрезка временного ряда.
С его помощью можно решать задачи:
✔️ Поиск повторяющихся паттернов.
✔️ Обнаружение аномалий.
✔️ Выделение ключевых подотрезков (shapelets).
✔️ Семантическая сегментация.
✔️ Анализ потоковых данных.
✔️ Быстрое приближённое вычисление матричных профилей.
✔️ Построение временных цепочек.
✔️ Краткое представление длинных временных рядов.
👉 Подробнее — в документации.
Библиотека дата-сайентиста #буст
🚀 SGLang теперь в PyTorch: быстрое и гибкое развертывание LLM
SGLang — это мощный движок для обслуживания больших языковых моделей (LLM) и мультимодальных моделей. Он ускоряет взаимодействие с моделями, обеспечивая контроль за их работой. Ключевые возможности SGLang:
▪️ Высокопроизводительный бэкенд:
• RadixAttention для кеширования префиксов.
• Нулевая задержка CPU-планировщика.
• Непрерывная пакетная обработка.
• Квантование (FP8/INT4/AWQ/GPTQ).
▪️ Гибкий фронтенд:
• Интуитивный язык для программирования LLM-приложений.
• Цепочечные вызовы генерации.
• Расширенные техники промптинга и управления потоком.
• Поддержка мультимодального ввода.
▪️ Широкая поддержка моделей:
• Llama, Gemma, Mistral, Qwen, DeepSeek, LLaVA.
• Встраиваемые модели (e5-mistral, gte, mcdse).
• Reward-модели (Skywork).
▪️ Активное сообщество
🔗 Подробнее об экосистеме PyTorch и SGLang: https://clc.to/FfEGWQ
Библиотека дата-сайентиста #свежак
SGLang — это мощный движок для обслуживания больших языковых моделей (LLM) и мультимодальных моделей. Он ускоряет взаимодействие с моделями, обеспечивая контроль за их работой. Ключевые возможности SGLang:
▪️ Высокопроизводительный бэкенд:
• RadixAttention для кеширования префиксов.
• Нулевая задержка CPU-планировщика.
• Непрерывная пакетная обработка.
• Квантование (FP8/INT4/AWQ/GPTQ).
▪️ Гибкий фронтенд:
• Интуитивный язык для программирования LLM-приложений.
• Цепочечные вызовы генерации.
• Расширенные техники промптинга и управления потоком.
• Поддержка мультимодального ввода.
▪️ Широкая поддержка моделей:
• Llama, Gemma, Mistral, Qwen, DeepSeek, LLaVA.
• Встраиваемые модели (e5-mistral, gte, mcdse).
• Reward-модели (Skywork).
▪️ Активное сообщество
🔗 Подробнее об экосистеме PyTorch и SGLang: https://clc.to/FfEGWQ
Библиотека дата-сайентиста #свежак
🤖 IT-выживание 2025: как не вылететь с рынка труда в эпоху LLM
В 2025-м айтишникам приходится несладко: старые скиллы уже не в цене, LLM наступают на пятки, а работодатели хотят все и сразу.
👍 Делимся инсайдами, как выжить в новой реальности и не потерять работу в эпоху тотальной оптимизации.
👉 Ссылка на статью: https://proglib.io/sh/zEruLHxYno
Библиотека дата-сайентиста
В 2025-м айтишникам приходится несладко: старые скиллы уже не в цене, LLM наступают на пятки, а работодатели хотят все и сразу.
👍 Делимся инсайдами, как выжить в новой реальности и не потерять работу в эпоху тотальной оптимизации.
👉 Ссылка на статью: https://proglib.io/sh/zEruLHxYno
Библиотека дата-сайентиста