Выражение "явное лучше чем не явное" ("Explicit is better than implicit") — одна из основных заповедей Zen of Python, которая применима не только к коду.
Давайте разберем этот принцип на простых примерах:
Примеры в SQL:
Неявное (плохо): непонятно, откуда поле
SELECT
employee_id,
employee_name,
department_name,
salary
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;
Проблема: В SELECT не указано, из какой таблицы берутся столбцы employee_id, employee_name, department_name и salary — из employees или из departments? Читающему код приходится тратить время на изучение схемы БД, чтобы понять источник каждого поля и избежать ошибок в интерпретации.
Явное (хорошо): понятно с первого взгляда
SELECT
e.employee_id,
e.employee_name,
d.department_name,
e.salary
FROM employees AS e
INNER JOIN departments AS d ON e.department_id = d.department_id;
Почему лучше:
• Сразу видно: employee_id и salary из таблицы employees (алиас e), а department_name из departments (алиас d)
• Через полгода коллега (или ты сам) откроешь этот запрос и не потеряешь время на разбор
• и т.д.
Примеры в Python:
Неявное (плохо): непонятно, что на входе и выходе
def calculate_conversion(users, converted):
return converted / users
Проблемы:
• Что такое users и converted? Int, float, или может быть список?
• Что возвращает функция? Float или int?
• Что делать, если users = 0? Будет деление на ноль.
• Нет документации — коллега не поймет, как использовать.
Явное (хорошо): типы и документация
def calculate_conversion(users: int, converted: int) -> float:
"""
Рассчитывает конверсию пользователей.
Args:
users (int): Общее количество пользователей (должно быть > 0).
converted (int): Количество конвертированных пользователей.
Returns:
float: Конверсия в долях (например, 0.05 для 5%).
Raises:
ValueError: Если users <= 0.
Example:
>>> calculate_conversion(1000, 50)
0.05
"""
if users <= 0:
raise ValueError("Количество пользователей должно быть больше 0")
return converted / users
Почему лучше:
• Type hints (users: int, -> float): Сразу видно, какие типы ожидаются и что вернется. IDE подсветит ошибки, если передашь строку вместо int
• Docstring: Полное описание — что функция делает, какие аргументы, что возвращает, какие исключения. Тот, кто использует твою функцию, не имеет вопросов по ее использованию.
• Валидация входных данных: Явно проверяем users > 0, чтобы не словить деление на ноль.
• Пример использования: Коллега может скопировать и сразу запустить.
Итог:
Явный подход в коде, SQL-запросах и целом в жизни — это основа.
Явное лучше неявного, потому что это экономит время, устраняет недопонимания и делает все проще.
Сделал сайт - оцените:
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥13🔥6🐳5 2 2
🧠 GPT-5.1 (Polaris Alpha) — новая топовая LLM модель (и её можно попробовать бесплатно):
Сейчас в комьюнити активно обсуждают новую модель Polaris Alpha. Многие уже шепчутся, что это "по ощущениям как GPT-5.1" — и, честно, после тестов я понимаю, откуда этот хайп.
Самое главное: её уже можно нормально потестить бесплатно через OpenRouter. Если вы работаете с данными, кодом, текстами или готовитесь к собесам — очень рекомендую не затягивать.
Почему Polaris Alpha меня впечатлила:🔵
• Очень точно понимает формулировки задач
• Отлично держит контекст
• Хорошо пишет технический контент: SQL, Python, аналитика
• Следует стилю
• и т.п.
Где попробовать:🔵
Polaris Alpha доступна через OpenRouter, вот ссылка на модель
Совет от меня:🔵
Не ограничивайтесь "дай мне код".
Попросите:
• разобрать ваши SQL-запросы
• переписать посты под ваш стиль
• сгенерировать кейсы под собесы
• объяснить сложную тему простым языком.
По таким задачам лучше всего видно, насколько модель "понимает, что вы от неё хотите".
Итог:
🍸 Если такой формат разборов про ИИ-модели вам заходит — дайте знать реакциями, буду делиться новыми находками.
❤️ Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
❓ Уже пробовали Polaris Alpha или другие модели через OpenRouter? Какие впечатления? Пишите в комментариях.
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.
Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации
@dima_sqlit
Сейчас в комьюнити активно обсуждают новую модель Polaris Alpha. Многие уже шепчутся, что это "по ощущениям как GPT-5.1" — и, честно, после тестов я понимаю, откуда этот хайп.
Самое главное: её уже можно нормально потестить бесплатно через OpenRouter. Если вы работаете с данными, кодом, текстами или готовитесь к собесам — очень рекомендую не затягивать.
Почему Polaris Alpha меня впечатлила:
• Очень точно понимает формулировки задач
• Отлично держит контекст
• Хорошо пишет технический контент: SQL, Python, аналитика
• Следует стилю
• и т.п.
Где попробовать:
Polaris Alpha доступна через OpenRouter, вот ссылка на модель
Совет от меня:
Не ограничивайтесь "дай мне код".
Попросите:
• разобрать ваши SQL-запросы
• переписать посты под ваш стиль
• сгенерировать кейсы под собесы
• объяснить сложную тему простым языком.
По таким задачам лучше всего видно, насколько модель "понимает, что вы от неё хотите".
Итог:
Сделал сайт - оцените:
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳13🔥8❤🔥6
Запросы в SQL бывают громоздкими (много условий в блоке where, много полей в блоке select), а отладка — сплошная головная боль. Сегодня разберем два простых трюка, которые позволят отлаживать и писать код гораздо быстрее:
Условие 1=1 — это всегда "правда".
Добавим в начало WHERE, и все условия дальше пишем через AND.
Закомментируем любое — синтаксис не сломается.
SELECT
order_id,
amount
FROM orders
WHERE
1=1
AND amount > 1000 -- опечатка: amount, не mount
AND order_date >= '2025-01-01'
AND status = 'completed';
SELECT
order_id,
amount
FROM orders
WHERE
1=1
-- AND amount > 1000 -- убрали, и всё ок
AND order_date >= '2025-01-01'
AND status = 'completed';
Запрос будет работать, а если бы не было условия 1=1, то так бы сделать не получилось.
Фишка заключается в том, что ставить запятую нужно слева от каждого поля после первого, чтобы тоже было удобно комментировать код.
SELECT
order_id
, customer_id
, order_date
, amount
FROM orders
WHERE 1=1
AND order_date >= '2025-01-01';
SELECT
order_id
-- , customer_id -- закомментировали, запятая ушла
, order_date
, amount
FROM orders
WHERE 1=1
AND order_date >= '2025-01-01';
Всё хорошо — получаем результат без ошибок.
Итог:
WHERE 1=1 и запятые слева в SELECT — фишки, которые ускоряют работу с SQL в разы. Попробуйте внедрить к себе эти фишки и вы заметите, как начали быстрее писать код.
Сделал сайт - оцените:
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41❤🔥11🐳3
This media is not supported in your browser
VIEW IN TELEGRAM
Привет!
Как аналитик данных, я часто взаимодействую с дата-инженерами: они строят витрины, настраивают пайплайны для данных и помогают с инфраструктурой, а иногда приходится самому разбираться в ETL-процессах.🤩
Поэтому хочу посоветовать канал @etl_kitchen от Руслана — практика с большим опытом в Дата-Инженерии. Он собирает открытую базу знаний, где собирает гайды и туториалы по популярным технологиям — https://etl-kitchen-book.ru
А в своем канале он делится полезными гайдами, например:👀
1️⃣ Как поставить Airflow за 15 минут к себе на компьютер
2️⃣ Как читать и анализировать запросы через EXPLAIN и EXPLAIN ANALYZE
3️⃣ Что такое Docker простыми словами
4️⃣ Рассказал, что такое dbt и как он изучал его
5️⃣ Рассказал про бесплатный сервис, который поможет вам понять, что такое API
😋 Помимо технических гайдов, он любит готовить. Можете приготовить по его рецептам:
1️⃣ Блины с ветчиной и сыром за 30 минут
2️⃣ Вкуснейший наполеон
3️⃣ На ужин можно приготовить - курицу на игле
Рекомендую подписаться на его канал, там еще много интересного😨
Как аналитик данных, я часто взаимодействую с дата-инженерами: они строят витрины, настраивают пайплайны для данных и помогают с инфраструктурой, а иногда приходится самому разбираться в ETL-процессах.
Поэтому хочу посоветовать канал @etl_kitchen от Руслана — практика с большим опытом в Дата-Инженерии. Он собирает открытую базу знаний, где собирает гайды и туториалы по популярным технологиям — https://etl-kitchen-book.ru
А в своем канале он делится полезными гайдами, например:
Рекомендую подписаться на его канал, там еще много интересного
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥9 6 4
Иногда на собеседовании спрашивают:
"Вот у тебя есть таблица транзакций за день. Для каждого дня посчитай произведение значений. Что будешь делать?"
Это решается чисто через математику и стандартные агрегаты. Сейчас разберёмся по шагам.
Представим таблицу transactions:
| tx_date | value |
|------------|-------|
| 2025-10-01 | 2 |
| 2025-10-01 | 3 |
| 2025-10-01 | 5 |
| 2025-10-02 | 4 |
| 2025-10-02 | 2 |
Задача: для каждого дня посчитать произведение всех value.
То есть:
• для 2025-10-01 должно получиться 2⋅3⋅5=30
• для 2025-10-02 должно получиться 4⋅2=8
Как из суммы сделать произведение? 🧠
Вспоминаем школьную математику:
• log(a⋅b)=log(a)+log(b)
Переводя на человеческий язык, чтобы получить произведение, можно:
• взять логарифм каждого числа
• сложить
• применить экспоненту и получить итоговый результат
Решение в SQL
SELECT
tx_date,
EXP(SUM(LN(value))) AS product_value
FROM transactions
GROUP BY tx_date
ORDER BY tx_date;
Что тут происходит:
• LN(value) — считаем натуральный логарифм каждого значения.
• SUM(LN(value)) — агрегируем по дню.
• EXP(...) — возвращаемся из логарифмического мира к исходному числу.
В итоге получаем то самое произведение.
Важные нюансы, о которых любят спрашивать
• Если есть хотя бы один 0, то произведение за день должно быть 0.
• Но ln(0) не существует — будет ошибка.
• Как обойти:
— либо заранее проверять наличие нулей
— либо аккуратно обрабатывать условием
• ln(x) определён только для x>0.
• Если в данных возможны отрицательные значения — задача усложняется:
— нужно отдельно считать знак (чётность количества отрицательных)
— логарифм брать от модуля
— восстанавливать знак в конце.
• На собеседованиях чаще всего ожидают решение для положительных чисел и аккуратную оговорку про этот кейс — если вы про него скажете, это плюс.
Итог:
Такое решение показывает на собеседовании не только знание SQL, но и умение опираться на математику и аккуратно думать про крайние случаи — нули и отрицательные значения.
Сделал сайт - оцените:
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21🐳9 4 3❤🔥2 2
📚 Бесплатные материалы для изучения статистики и проведения A/B тестов:
В одном из постов у меня спросили про изучения статистике, есть много платных и бесплатных материалов и как правило бесплатные материалы ничем не уступают платным.
Я собрал видеокурсы и книги, которые можно найти в интернете абсолютно бесплатно и делюсь с вами, чтобы вы могли себе сохранить этот список:
Видеокурсы (видеоматериалы):🔵
1) Основы статистики Ч.1 и Основы статистики Ч.2
2) Бесплатный курс «Основы статистики и A/B-тестирования»
3) Интенсив A/B Week от Яндекса
4) Вероятность и статистика с Глебом Михайловым
5) Введение в статистику от SophiStat
6) Прикладная статистика от Академии Аналитиков Авито
Книги:🔵
1) Владимир Савельев — Статистика и котики
2) Дарелл Хафф — Как лгать при помощи статистики
3) Эндрю Сигел — Практическая бизнес-статистика
4) Чарльз Уилан — Голая стаистика
5) Сара Бослаф — Статистика для всех
Итог:
🍸 Если хотите, чтобы я собрал аналогичную подборку по Python, SQL или другим темам, напишите об этом в комментариях!
❤️ Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
❓ Пользовались какими-то из этих материалов? Что бы добавили в подборку?
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.
Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации
@dima_sqlit
В одном из постов у меня спросили про изучения статистике, есть много платных и бесплатных материалов и как правило бесплатные материалы ничем не уступают платным.
Я собрал видеокурсы и книги, которые можно найти в интернете абсолютно бесплатно и делюсь с вами, чтобы вы могли себе сохранить этот список:
Видеокурсы (видеоматериалы):
1) Основы статистики Ч.1 и Основы статистики Ч.2
2) Бесплатный курс «Основы статистики и A/B-тестирования»
3) Интенсив A/B Week от Яндекса
4) Вероятность и статистика с Глебом Михайловым
5) Введение в статистику от SophiStat
6) Прикладная статистика от Академии Аналитиков Авито
Книги:
1) Владимир Савельев — Статистика и котики
2) Дарелл Хафф — Как лгать при помощи статистики
3) Эндрю Сигел — Практическая бизнес-статистика
4) Чарльз Уилан — Голая стаистика
5) Сара Бослаф — Статистика для всех
Итог:
Сделал сайт - оцените:
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤🔥27🔥8 4 1
Группировка в SQL: по именам и по номерам столбцов
В SQL при группировке часто повторяешь длинные названия столбцов. Можно проще — использовать номера столбцов из списка SELECT.
Пример с именами столбцов:
SELECT order_date, customer_city, COUNT(*)
FROM orders
GROUP BY order_date, customer_city
То же самое с номерами столбцов:
SELECT order_date, customer_city, COUNT(*)
FROM orders
GROUP BY 1, 2 -- 1 и 2 — это первый и второй столбцы в SELECT
Так код короче и удобнее править, особенно если поле одно или много.
Правильное деление: избегаем целочисленного деления
SQL часто делит целые числа и отбрасывает дроби — 5/2 = 2, а не 2.5. Чтобы получить правильный процент, нужно привести числитель или знаменатель к дробному типу.
Способы:
• Умножить числитель на 100.0 (не на 100, а именно с точкой)
• Привести к float (через CAST)
Пример:
SELECT
category,
SUM(sales) AS total_sales,
SUM(sales) * 100.0 / SUM(all_sales) AS percent -- 100.0 заставит SQL считать дроби
FROM sales
GROUP BY category
Или через CAST:
SELECT
category,
SUM(sales) AS total_sales,
CAST(SUM(sales) * 100 AS DECIMAL(5,2)) / SUM(all_sales) AS percent
FROM sales
GROUP BY category
Итог:
Группировка по номерам столбцов (GROUP BY 1, 2) и явное указание дробного типа при делении (100.0 вместо 100 или через CAST) — два простых приёма, которые экономят время и избавляют от ошибок. Номера столбцов делают код компактнее и удобнее для правок, а правильное деление гарантирует точные проценты и метрики.
Сделал сайт - оцените:
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥29🐳5 3❤🔥1
Привет!
У всех бывала ситуация: один и тот же скрипт (типа подключения к БД) перекочевывает из проекта в проект. А потом хост меняется или параметры — и бегаешь по всем файлам править. Звучит знакомо? Есть идея получше: создадим свой модуль, который импортируется в любом проекте. Один раз обновил — везде сработало. Разберём на примере с подключением к PostgreSQL, но подойдёт для любых задач.
Представим модуль
connections.py
с функцией подключения:
# connections.py
pg_url = 'postgresql://user:pass@old_host/db'
def connect_db():
import psycopg2
return psycopg2.connect(pg_url)
Чтобы импортировать, файл должен лежать в проекте. Но давайте сделаем универсально: положим его в общую папку и используем sys.path.append. Это добавит путь в список поиска модулей Python — и импорт заработает везде.
Шаги:
connections.py
import sys
sys.path.append('/home/dima_sqlit/modules') # Ваш путь к общей папке
from connections import connect_db
conn = connect_db()
cursor = conn.cursor()
cursor.execute("SELECT * FROM data LIMIT 10")
data = cursor.fetchall() # Готово для анализа!
Итог:
Универсальный скрипт — один файл, импорт везде, обновления без хлопот. Идеально для утилит, которые часто применяются.
Внедрите — сэкономите часы своего времени!
Сделал сайт - оцените:
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26❤🔥5🐳4 3 1
Сегодня мой первый раз, как я побывал на Матемаркетинге.
Что успел сделать:
• Посмотреть несколько выступлений (ниже написал, какое зашло больше всего)
• Набрать мерча и походить по стендам (смотрим фото в комментариях)
• Пообщаться
• И просто хорошо провести время
Какое выступление зашло больше всего?
Выступление Алёны Артемьевой с темой "Как рационально использовать нерациональное поведение клиентов и повысить эффективность маркетинга, продукта и продаж".
Почему именно оно:
• Мысли которые доносила Алёна я тоже разделяю, она говорила о том, что аналитикам нужно изучать психологию, чтобы понимать, как люди принимают решение.
• Она рассказала про когнитивные искажения, про то, что человеческий мозг не любит тяжелые системы и именно по этому когда люди видят большой выбор теряются. Лучше сделать маленький ассортимент, а не раздувать предложения.
• Про легкость восприятия тоже согласен. Продукт должен быть интуитивно понятным, так человек видит легкость и скорее купит, чем нет.
• Ну и показ случаев, когда мы ловим когнитивные искажения и как они влияют на наш выбор, например, какой текст вас цепляет больше:
— 80% наших пользователей ощутили результат уже в первую неделю.
— только 20% пользователей не ощутили на себе никаких изменений в первую неделю.
Думаю, что все однозначно выбрали первый вариант. В общем я с ней полностью солидарен, чтобы качественно выстраивать продукт и аналитику нужно изучать нейромаркетинг.
Завтра будет второй день, посмотрим, что будет еще интересного)
Ну и отдельное спасибо моей компании за предоставленную возможность
Сделал сайт - оцените:
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🐳6 4 2
📊 Бесплатные материалы для изучения визуализации данных:
Недавно в комментариях меня спросили про ресурсы для изучения визуализации. Материалов много — и платных, и бесплатных — и, как это часто бывает, бесплатные ничем не уступают платным.
Я собрал набор видеокурсов и книг, которые можно найти в открытом доступе. Сохраняйте себе, чтобы не потерять 👇
Видеокурсы (видеоматериалы):🔵
Python (matplotlib):
1) Практикум по математике и Python
2) Deep Learning (семестр 1, осень 2025)
3) Готовые notebook на kaggle
Системы BI:
1) DataLens: анализ и визуализация данных
2) Симулятор SQL (от Карпова) [там есть отдельный блок про визуализацию в Redash]
Excel:
1) БАЗА. Основы визуализации данных в Excel
Книги:
1) Графики, которые убеждают всех (Александр Богачёв)
🤔 Подборку бесплатных материалов по статистике смотрите в этом посте
Итог:
🍸 Если хотите, могу собрать аналогичные подборки по Python, SQL или другим темам — просто напишите в комментариях!
❤️ Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
❓ Пользовались ли вы этими материалами? Что посоветуете добавить?
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.
Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации
@dima_sqlit
Недавно в комментариях меня спросили про ресурсы для изучения визуализации. Материалов много — и платных, и бесплатных — и, как это часто бывает, бесплатные ничем не уступают платным.
Я собрал набор видеокурсов и книг, которые можно найти в открытом доступе. Сохраняйте себе, чтобы не потерять 👇
Видеокурсы (видеоматериалы):
Python (matplotlib):
1) Практикум по математике и Python
2) Deep Learning (семестр 1, осень 2025)
3) Готовые notebook на kaggle
Системы BI:
1) DataLens: анализ и визуализация данных
2) Симулятор SQL (от Карпова) [там есть отдельный блок про визуализацию в Redash]
Excel:
1) БАЗА. Основы визуализации данных в Excel
Книги:
1) Графики, которые убеждают всех (Александр Богачёв)
Итог:
Сделал сайт - оцените:
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22❤🔥9 5
📚 Бесплатные материалы для изучения SQL — от азов до продвинутых тем:
Продолжаю делиться бесплатными материалами.
Сегодня на очереди SQL.
Видеокурсы (видеоматериалы):🔵
1) Интерактивный тренажер по SQL
2) Симулятор SQL (от Карпова)
3) ClickHouse с нуля (Курс - чтобы понять особенности ClickHouse от других СУБД)
4) Тестовые по SQL (Глеб Михайлов) [для насмотренности]
5) Бесплатный курс «Основы SQL» (от Simulative)
Итог:
🍸 По каким инструментам вам хочется увидеть ещё бесплатные подборки? Просто напишите в комментариях!
❤️ Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
❓ Пользовались ли вы этими материалами? Что ещё добавить в подборку?
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.
Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации
@dima_sqlit
Продолжаю делиться бесплатными материалами.
Сегодня на очереди SQL.
Видеокурсы (видеоматериалы):
1) Интерактивный тренажер по SQL
2) Симулятор SQL (от Карпова)
3) ClickHouse с нуля (Курс - чтобы понять особенности ClickHouse от других СУБД)
4) Тестовые по SQL (Глеб Михайлов) [для насмотренности]
5) Бесплатный курс «Основы SQL» (от Simulative)
Итог:
Сделал сайт - оцените:
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15 10❤🔥3🐳3
В ад-хоке мы часто делаем одно и то же: выгрузили данные → отфильтровали → построили график → отправили.
Каждый раз заново.
И именно на это уходит больше всего времени.
Python позволяет автоматизировать почти любую рутину, но запуск скриптов — это всегда не самый удобный формат. Что если сделать проще: добавить к вашему Python-коду фильтры, селекторы, кнопки и всё это завернуть в аккуратный UI?
Streamlit ровно для этого и нужен — он позволяет превращать обычный код в небольшой аналитический инструмент, который экономит время и ускоряет ad-hoc аналитику без BI-систем
Если вы ещё не пробовали, я нашёл одно максимально понятное видео, которое позволит быстро освоить данный инструмент 👇
Что полезного разберёте:
• как запустить Streamlit и превратить скрипт в веб-интерфейс
• как добавить кнопки, селекторы
• как выводить графики
• как бесплатно задеплоить инструмент в общий доступ
• прийдет понимание как использовать Streamlit именно для аналитики
Итог:
Streamlit — отличный способ перестать делать ad-hoc «вручную» и собрать быстрый инструмент под любую задачу.
Видео — хороший старт, сохранить точно стоит.
🎁 Бонус:
Оставил вам готовый Python-файл и CSV-пример, чтобы вы могли сразу попробовать Streamlit и повторить инструмент с картинки из поста (смотрим комментарии и ставим много реакций).
Сделал сайт - оцените:
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤🔥9 3 1
🐍 Бесплатные материалы для изучения Python — базовый минимум для аналитики:
Продолжаю делиться бесплатными материалами.
Сегодня на очереди Python — язык, который нужен всем: аналитикам, дата-сайентистам, инженерам и просто тем, кто хочет автоматизировать рутину.
Курсы по Python:
1) Поколение Python: курс для начинающих
2) Поколение Python: курс для продвинутых
3) Бесплатный курс по Pandas (от Simulative)
4) Анализ Данных на Python и Pandas (Глеб Михайлов)
Итог:
🍸 Вроде рассмотрел все что просили или есть еще какие-то предложения? Напишите в комментариях!
❤️ Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
❓ Пользовались ли вы этими материалами? Что посоветуете добавить?
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.
Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации
@dima_sqlit
Продолжаю делиться бесплатными материалами.
Сегодня на очереди Python — язык, который нужен всем: аналитикам, дата-сайентистам, инженерам и просто тем, кто хочет автоматизировать рутину.
Курсы по Python:
1) Поколение Python: курс для начинающих
2) Поколение Python: курс для продвинутых
3) Бесплатный курс по Pandas (от Simulative)
4) Анализ Данных на Python и Pandas (Глеб Михайлов)
Итог:
Сделал сайт - оцените:
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤🔥8🐳3
На собеседованиях часто спрашивают:
«Какие методы оптимизации SQL-запросов вы знаете?»
И спрашивают не зря. При работе с большими объёмами данных с этим сталкиваешься постоянно. В этом посте разберём базовые вещи — что такое партиционирование и индексирование и как они работают на уровне идеи. Практические примеры будут во второй части.
1) Что такое партиции?
• Представим таблицу, в которой хранятся списания клиентов банка. Объём данных там огромный. Часто кажется, что достаточно просто написать фильтр по дате, и всё будет быстро. Но если таблица большая, SQL начнёт читать её целиком — строка за строкой, проверяя условие у каждой записи. Это полный скан таблицы, и он дорогой.
• Теперь представим жизненный пример. У вас есть тысячи фотографий. Обычно люди раскладывают их по годам. И если нужно посмотреть фотографии за конкретный год, вы не открываете все остальные — сразу идёте в нужную папку и экономите время.
• Партиционирование работает точно так же. Таблица физически делится на части — партиции. Чаще всего это делают по дате. В итоге, когда мы хотим посчитать списания клиента за конкретный месяц, запрос сразу идёт только в нужный диапазон дат и не читает всё остальное. На больших объёмах данных это даёт очень ощутимый прирост.
2) Что такое индексы?
• Продолжим аналогию с фотографиями. Мы уже разложили фото по годам — стало быстрее. Но допустим, в одном году фотографий всё равно очень много, и мы хотим найти конкретные — например, с дня рождения.
• Было бы удобно иметь файл с описанием, где написано:
фото 1–10 — путешествие
фото 20–25 — день рождения
фото 40–50 — работа
По сути, это содержание книги. Именно так работают индексы.
• Индекс — это отдельная структура, которая хранит значения столбца и знает, где физически лежат строки с этими значениями. Когда в запросе используется условие в WHERE или JOIN, база данных сначала смотрит в индекс, а затем читает только нужные строки, а не всю таблицу.
• Важно понимать: индекс не уменьшает объём данных, он ускоряет поиск внутри них.
3) Партиции и индексы вместе:
• Теперь картинка складывается полностью.
Партиционирование помогает не читать лишние данные.
Индексы помогают быстро находить нужные строки.
• На практике часто делают так: таблицу партиционируют, например, по дате, а внутри каждой партиции создают индексы.
Итог:
Партиционирование физически делит большую таблицу на части.
Индексы ускоряют поиск данных внутри таблицы или партиции.
Это разные инструменты, которые дополняют друг друга.
Провожу консультации (подробности здесь):
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29❤🔥6🐳4
🎉 Итоги года и большое спасибо вам:
Хочу подвести итоги года и просто сказать спасибо.
Канал я начал активно вести с начала июля этого года.
Цель была максимально простая и понятная — набрать 1000 подписчиков до конца года.
И мы с вами эту цель перевыполнили.🚬
Почему вы не видели постов про 500 или 1000 подписчиков?🤩
Я сознательно их пропускал и ждал одно конкретное число.
📊 1106 человек. Почему именно оно для меня важно:
• По данным на 1 декабря 2025 года, именно столько населения в поселении, откуда я родом
• И получается, что мы с вами здесь собрали больше людей, чем живёт в месте, где я вырос
Если честно — это просто вау.
Очень сильное ощущение масштаба и ценности того, что происходит.
Отдельно хочу отметить, что результат был достигнут:💡
• без рекламы
• только взаимный пиар, комментарии и контент
Для меня это показатель, что формат и темы действительно вам откликаются.
Что дальше?☺️
Хочется развивать канал и делать его ещё полезнее, поэтому очень важно ваше мнение.
Что бы вы хотели видеть больше:🔨
• больше SQL / Python / аналитики
• больше разборов задач и собесов
• больше life-контента
• или есть другие идеи — пишите, всё читаю
Ну и, конечно, поздравляю вас с наступающим Новым годом 🎄
Спасибо, что читаете, комментируете и поддерживаете — это реально мотивирует продолжать.
🍆 Принимаю поздравления в комментариях — считаю, что результат действительно хороший.
❤️ Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.
Провожу консультации (подробности здесь):
🚬 Вопросы, обучение, консультации
@dima_sqlit
Хочу подвести итоги года и просто сказать спасибо.
Канал я начал активно вести с начала июля этого года.
Цель была максимально простая и понятная — набрать 1000 подписчиков до конца года.
И мы с вами эту цель перевыполнили.
Почему вы не видели постов про 500 или 1000 подписчиков?
Я сознательно их пропускал и ждал одно конкретное число.
📊 1106 человек. Почему именно оно для меня важно:
• По данным на 1 декабря 2025 года, именно столько населения в поселении, откуда я родом
• И получается, что мы с вами здесь собрали больше людей, чем живёт в месте, где я вырос
Если честно — это просто вау.
Очень сильное ощущение масштаба и ценности того, что происходит.
Отдельно хочу отметить, что результат был достигнут:
• без рекламы
• только взаимный пиар, комментарии и контент
Для меня это показатель, что формат и темы действительно вам откликаются.
Что дальше?
Хочется развивать канал и делать его ещё полезнее, поэтому очень важно ваше мнение.
Что бы вы хотели видеть больше:
• больше SQL / Python / аналитики
• больше разборов задач и собесов
• больше life-контента
• или есть другие идеи — пишите, всё читаю
Ну и, конечно, поздравляю вас с наступающим Новым годом 🎄
Спасибо, что читаете, комментируете и поддерживаете — это реально мотивирует продолжать.
Провожу консультации (подробности здесь):
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥35❤🔥15🐳8 3 3
Мало кто понимает, что OR — ленивый оператор, который проверяет условия слева направо и останавливается на первом истинном.
Звучит как оптимизация, но может сыграть злую шутку, если этого не знать.
Как работает ленивое вычисление?
Когда Python или SQL видит OR, он работает так:
• Проверяет первое условие слева
• Если оно истинно — возвращает результат и останавливается
• Если ложно — идёт проверять второе условие
Простыми словами: как только нашёл хоть одну правду — всё, дальше не смотрит. Это экономит ресурсы, но может пропустить важную логику.
Пример проблемы в Python:
Представим: мы проверяем пользователя — есть ли у него права админа или он прошёл дополнительную проверку безопасности.
def is_admin(user):
print("Проверяем права админа")
return user == 'admin'
def security_check(user):
print("Запускаем проверку безопасности")
# Тут могла быть запись в лог, отправка в аналитику и т.д.
return True
# Проверяем пользователя
user = 'admin'
access = is_admin(user) or security_check(user)
print(f"Доступ: {access}")
Вывод:
Проверяем права админа
Доступ: True
Проблема: Функция security_check() вообще не запустилась. Python увидел, что is_admin() вернул True, и дальше не пошёл. А там могла быть важная логика — запись в лог, отправка метрики, валидация. Всё это пропустилось из-за особенности работы оператора OR.
Пример проблемы в SQL:
Представим таблицу users с миллионом записей. Хотим найти пользователей, которые либо из Москвы, либо потратили больше 100 тысяч рублей.
SELECT
user_id,
city,
total_spent
FROM users
WHERE
1=1
AND (calculate_total_spent(user_id) > 100000 -- Тяжёлая функция
OR city = 'Moscow');
Проблема: Функция calculate_total_spent() очень дорогая — считает сумму по всем заказам пользователя. Если поставить её первой, она будет вычисляться для каждой строки. А если бы мы поставили city = 'Moscow' первым — для москвичей функция могла бы не считаться.
Важно: В SQL такая логика оператора OR не гарантирована стандартом. PostgreSQL и другие СУБД могут переставить условия или выполнить их параллельно. Оптимизатор сам решает, в каком порядке проверять.
Итог:
Оператор OR останавливается на первом истинном условии. В Python это гарантировано и работает всегда. В SQL — не гарантировано, оптимизатор может переставить условия.
Обучаю АНАЛитике и Провожу консультации (подробности здесь):
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19🐳3❤🔥2
Ребята, приглашаю на бесплатный вебинар, где Андрон Алексанян - эксперт в области аналитики и CEO школы аналитики Simulative — в прямом эфире разберет все важные аспекты в работе аналитика, а также расскажет как получить оффер быстрее других.
Это очень полезное событие для тех кто только зашел в аналитику и для тех, кто хочет в нее зайти в ближайшее время. Особенно если вы не понимаете, какие навыки действительно важны или боитесь, что без опыта вас не возьмут на работу. Кстати тут разберут и возрастной аспект: как стать аналитиком в 30/40/50 лет и т.д.
На вебинаре будет:
— Покажем реальные примеры, как оформить резюме и портфолио, чтобы привлекать внимание;
— Обсудим какие отклики работают, а какие сразу отправляют в корзину;
— Изнанка найма: инсайдерский взгляд на процессы отбора
💬 Всем зарегистрировавшимся Simulative пришлют полезный материал — карту компетенций аналитика данных со всеми нужными инструментами для освоения.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥10🔥10 8 2
Слышал от многих, что на hh.ru нужно отправлять по 50+ откликов в день и даже скрипты для этого пишут.
Но давайте честно: массовые отклики — это ,большая потеря энергии. Лучше точечно находить компании, где действительно хочется работать.
Разберёмся пошагово, как это делать правильно.
Возьмите ручку и листок (или заметки в телефоне — не важно) и напишите, что для вас критично:
• Выдача техники (MacBook, монитор)
• Наличие IT-аккредитации у компании
• Конкретные технологии: SQL, Python, Superset, Redash, А/Б-тесты
• Полная удалёнка или гибрид
• ДМС и другие плюшки
Большинство ищет просто «аналитик данных» — и получает сотни нерелевантных вакансий.
А можно искать точечно, используя логические операторы прямо в строке поиска hh.ru.
Пример запроса:
Python AND Superset
Вернёт только те вакансии, где упоминаются оба инструмента.
Ещё круче:
SQL AND Python AND (ДМС OR удалённо)
Найдёт вакансии, где обязательно есть SQL и Python, плюс либо ДМС, либо удалёнка.
Это работает как WHERE в SQL — комбинируйте условия под себя.
Нашли интересную вакансию — не отправляйте просто резюме.
Напишите короткое сопроводительное письмо:
• Приветствие
• Почему вам интересна эта вакансия (технологии, продукт, команда)
• Какой релевантный опыт у вас есть
• Контакты для связи
• И т.д.
Это займёт 10 минут, но выделит вас среди сотни откликов с пустым полем.
Даже крутое сопроводительное не спасёт, если резюме составлено плохо.
Обновляйте его регулярно — это поднимает его в поиске у работодателей.
Если нужна помощь с составлением резюме / сопроводительного — можете обратиться ко мне @catdem, помогу разобраться.
Полный список c чем я могу помочь — mentor.dima-sqlit.ru
Итог:
@dima_sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥19🔥16🐳10 2
Начнем сразу с ТОП 3 поста по реакциям:
Для тех кто вкатывается в IT (Аналитика данных), серия постов про бесплатные материалы:
ТОП 5 - Полезных постов по моему мнению:
@dima_sqlit
#winter #winter2025 #итогигода #итоги2025 #christmas #NY #newyear
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥13🔥12 7