Стандартизация SQL
SQL — один из самых старых языков программирования, но мало кто знает, как он менялся за 40 лет. Сегодня разберём стандартизацию SQL.
История SQL берёт начало в 1974 году, когда в лабораториях IBM в рамках проекта System R началась разработка экспериментальной реляционной СУБД. Изначально язык носил название SEQUEL (Structured English Query Language), но потом слово «English» пропало из этого словосочетания, а аббревиатура приобрела тот вид, к которому мы давно уже привыкли.
Бурное развитие коммерческих реализаций SQL и появление множества диалектов могло привести к серьёзным проблемам совместимости. Однако процесс стандартизации начался своевременно - уже в 1982 году ANSI (Американский национальный институт стандартов) поручил своему комитету по базам данных разработать единую спецификацию реляционного языка запросов, что позволило сохранить целостность экосистемы.
Основные стандарты SQL
➖ SQL-86. Первый вариант стандарта, принятый институтом ANSI и одобренный ISO в 1987 году. Базовые операции: SELECT, INSERT, UPDATE, DELETE, CREATE TABLE.
➖ SQL-89. Незначительные доработки предыдущего стандарта.
➖ SQL-92. Существенные изменения. Уровень Entry Level. JOIN-синтаксис (INNER /LEFT /RIGHT JOIN), ALTER TABLE, ограничения (CHECK, FOREIGN KEY), подзапросы. Стандартизировал поведение NULL и агрегатные функции. Золотой стандарт до сих пор.
➖ SQL:1999. Добавлены: регулярные выражения, рекурсивные запросы, триггеры, процедурные расширения, нескалярные типы данных, ООП-возможности.
➖ SQL:2003. Расширения для XML, оконные функции (OLAP), MERGE (UPSERT-операция), генераторы последовательностей.
➖ SQL:2006. Улучшена работа с XML, интеграция SQL и XQuery в запросах.
➖ SQL:2008. Устранены неоднозначности SQL:2003. TRUNCATE TABLE, улучшенные оконные функции (OVER, PARTITION BY). Пагинация через FETCH FIRST n ROWS ONLY (аналог LIMIT).
➖ SQL:2011. Поддержка временных данных (PERIOD FOR), уточнение ACID-транзакций для распределенных систем.
➖ SQL:2016. Защита на уровне строк, JSON-функции (JSON_ARRAY, JSON_OBJECT), ROW PATTERN MATCHING (поиск шаблонов в данных), полиморфные табличные функции.
➖ SQL:2023. Операции над графами, ANY_VALUE(), поддержка шестнадцатеричных/двоичных литералов, GREATEST/LEAST - функции для выбора max/min из списка значений, улучшенный MERGE - контроль над конфликтами при вставке, улучшения JSON - новые операторы для работы с JSON.
Куда движется SQL?
Современные стандарты SQL развиваются в сторону гибридных моделей данных (JSON, графы, векторы для AI) и глубокой аналитики – в будущем появятся встроенные ML-функции и улучшенная обработка временных рядов. Упор делается на безопасность (динамическое маскирование, аудит) и производительность (оптимизация JOIN, распределённые транзакции).
Постепенно стираются границы между SQL и NoSQL: новые версии стандарта добавляют поддержку полуструктурированных данных. Главный тренд – универсальность: один язык для OLTP, OLAP и даже машинного обучения.
Ни одна СУБД не поддерживает стандарты SQL полностью — все они используют собственные расширения и модификации.
Зачем тогда нужны стандарты?
Стандарты SQL служат универсальным ориентиром, задающим общую логику языка и основные принципы работы с данными. Хотя ни одна СУБД не реализует стандарт полностью, именно благодаря ему разные системы сохраняют базовую совместимость - например, все понимают запросы SELECT, WHERE или JOIN. Это позволяет разработчикам легче осваивать новые СУБД и переносить знания между проектами.
Кроме того, стандарт выступает "дорожной картой" развития - новые функции (вроде работы с JSON или оконных функций) сначала появляются в спецификации, а затем постепенно внедряются производителями СУБД. Без единого стандарта различия между диалектами были бы гораздо более радикальными, что затруднило бы работу с базами данных.
#sql
SQL — один из самых старых языков программирования, но мало кто знает, как он менялся за 40 лет. Сегодня разберём стандартизацию SQL.
История SQL берёт начало в 1974 году, когда в лабораториях IBM в рамках проекта System R началась разработка экспериментальной реляционной СУБД. Изначально язык носил название SEQUEL (Structured English Query Language), но потом слово «English» пропало из этого словосочетания, а аббревиатура приобрела тот вид, к которому мы давно уже привыкли.
Бурное развитие коммерческих реализаций SQL и появление множества диалектов могло привести к серьёзным проблемам совместимости. Однако процесс стандартизации начался своевременно - уже в 1982 году ANSI (Американский национальный институт стандартов) поручил своему комитету по базам данных разработать единую спецификацию реляционного языка запросов, что позволило сохранить целостность экосистемы.
Основные стандарты SQL
Куда движется SQL?
Современные стандарты SQL развиваются в сторону гибридных моделей данных (JSON, графы, векторы для AI) и глубокой аналитики – в будущем появятся встроенные ML-функции и улучшенная обработка временных рядов. Упор делается на безопасность (динамическое маскирование, аудит) и производительность (оптимизация JOIN, распределённые транзакции).
Постепенно стираются границы между SQL и NoSQL: новые версии стандарта добавляют поддержку полуструктурированных данных. Главный тренд – универсальность: один язык для OLTP, OLAP и даже машинного обучения.
Ни одна СУБД не поддерживает стандарты SQL полностью — все они используют собственные расширения и модификации.
Зачем тогда нужны стандарты?
Стандарты SQL служат универсальным ориентиром, задающим общую логику языка и основные принципы работы с данными. Хотя ни одна СУБД не реализует стандарт полностью, именно благодаря ему разные системы сохраняют базовую совместимость - например, все понимают запросы SELECT, WHERE или JOIN. Это позволяет разработчикам легче осваивать новые СУБД и переносить знания между проектами.
Кроме того, стандарт выступает "дорожной картой" развития - новые функции (вроде работы с JSON или оконных функций) сначала появляются в спецификации, а затем постепенно внедряются производителями СУБД. Без единого стандарта различия между диалектами были бы гораздо более радикальными, что затруднило бы работу с базами данных.
#sql
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3🥴1🤓1
🔹Задача на схлопывание строк🔹
Есть данные привязки абонентов к базовым станциям оператора, необходимо схлопнуть строки, если дата окончания привязки абонента = дате начала следующей.
Для упрощения будем считать так:
📌Есть таблица, в которой три колонки - номер телефона, дата начала действия строки, дата окончания.
Если дата окончания текущей строки одного номера телефона = дате начала действия следующей строки этого же номера телефон, то мы должны схлопнуть эти строки в одну.
Пример:
Должны схлопнуть в одну строку:
А строки
Должны схлопнуть в:
(обратите внимание как 7 строк каскадно схлопнулись в одну)
Прикреплю скрин данных до обработки и после.
Также в комменты прикреплю скрипты создания таблицы и наполнения данными (для постгри).
Это реальный рабочий кейс и в целом типичная задача на схлопывание строк, которые дают на собесах.
Присылайте решения😊
Свои я опубликую в понедельник ближе к вечеру💅
#sql #задача
Есть данные привязки абонентов к базовым станциям оператора, необходимо схлопнуть строки, если дата окончания привязки абонента = дате начала следующей.
Для упрощения будем считать так:
📌Есть таблица, в которой три колонки - номер телефона, дата начала действия строки, дата окончания.
Если дата окончания текущей строки одного номера телефона = дате начала действия следующей строки этого же номера телефон, то мы должны схлопнуть эти строки в одну.
Пример:
88001153535 01.11.2024 13:23 01.11.2024 13:24
88001153535 01.11.2024 13:24 01.11.2024 13:25
Должны схлопнуть в одну строку:
88001153535 01.11.2024 13:23 01.11.2024 13:25
А строки
88001264545 01.11.2024 11:15 01.11.2024 11:24
88001264545 01.11.2024 12:00 01.11.2024 12:01
88001264545 01.11.2024 12:01 01.11.2024 12:08
88001264545 01.11.2024 12:15 01.11.2024 12:26
88001264545 01.11.2024 12:26 01.11.2024 12:35
88001264545 01.11.2024 12:35 01.11.2024 12:45
88001264545 01.11.2024 12:45 01.11.2024 13:14
88001264545 01.11.2024 13:14 01.11.2024 13:21
88001264545 01.11.2024 13:21 01.11.2024 13:26
88001264545 01.11.2024 13:26 01.11.2024 13:28
Должны схлопнуть в:
88001264545 01.11.2024 11:15 01.11.2024 11:24
88001264545 01.11.2024 12:00 01.11.2024 12:08
88001264545 01.11.2024 12:15 01.11.2024 13:28
(обратите внимание как 7 строк каскадно схлопнулись в одну)
Прикреплю скрин данных до обработки и после.
Также в комменты прикреплю скрипты создания таблицы и наполнения данными (для постгри).
Это реальный рабочий кейс и в целом типичная задача на схлопывание строк, которые дают на собесах.
Присылайте решения
Свои я опубликую в понедельник ближе к вечеру
#sql #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥1
Разбор пятничной задачки.
Данные задачки решаются с помощью оконок и флагов (меток)🤓 ❗️
Главное не запутаться.
Предлагаю свое решение:
▪️Сначала проставляем флаги по нашей придуманной логике.
▪️Отрезаем лишние строки при помощи флагов.
▪️В последнем шаге правильно проставляем start_t и end_t.
В комментариях было выложено очень крутое правильное решение. Здесь классно используется накопительная сумма (оконка sum) и group by с min и max 👍
Решений таких задач можно много придумать. Полный разбор текстом не вижу смысла делать😄 💅
Все скрипты создания таблицы и наполнения данными есть. Решения тоже есть. Кому интересно, посидите покрутите, будет точно полезно👍 На собеседование на мидла подобную задачу могут дать💯
Если у кого еще появятся идеи, обязательно делитесь. Будем обсуждать😊
#sql #задача
Данные задачки решаются с помощью оконок и флагов (меток)
Главное не запутаться.
Предлагаю свое решение:
WITH t1 AS ( -- проставляем флаги
SELECT t.*,
CASE WHEN end_t = LEAD(start_t) OVER (PARTITION BY phone_number ORDER BY start_t) THEN 1 ELSE 0 END AS start_lead, -- если end_t равен start_t след строки , ставим флаг 1
CASE WHEN start_t = LAG(end_t) OVER (PARTITION BY phone_number ORDER BY start_t) THEN 1 ELSE 0 END AS end_lag -- если start_t равен end_t пред строки, ставим флаг 1
FROM test_table t
)
SELECT DISTINCT phone_number,
CASE WHEN end_lag = 1 THEN LAG(start_t) OVER (PARTITION BY phone_number ORDER BY start_t) ELSE start_t END AS start_t,
CASE WHEN start_lead = 1 THEN LEAD(end_t) OVER (PARTITION BY phone_number ORDER BY start_t) ELSE end_t END AS end_t
FROM t1
-- строки с двумя флагами 1 надо отрезать
WHERE start_lead = 0
OR end_lag = 0
ORDER BY phone_number;
▪️Сначала проставляем флаги по нашей придуманной логике.
▪️Отрезаем лишние строки при помощи флагов.
▪️В последнем шаге правильно проставляем start_t и end_t.
В комментариях было выложено очень крутое правильное решение. Здесь классно используется накопительная сумма (оконка sum) и group by с min и max 👍
with t1 as (
select phone_number, start_t, end_t,
case when start_t = lag(end_t) over (partition by phone_number order by start_t) then 0 else 1 end as metka
from test_table),
t2 as (
select phone_number, start_t, end_t,
sum(metka) over (partition by phone_number order by start_t) as shlop
from t1)
select phone_number, min(start_t) as start_t, max(end_t) as end_t
from t2
group by 1, shlop
order by 1, 2
Решений таких задач можно много придумать. Полный разбор текстом не вижу смысла делать
Все скрипты создания таблицы и наполнения данными есть. Решения тоже есть. Кому интересно, посидите покрутите, будет точно полезно👍 На собеседование на мидла подобную задачу могут дать
Если у кого еще появятся идеи, обязательно делитесь. Будем обсуждать
#sql #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2✍1🫡1
Привет, подписчики!😎
За 3,5 года работы в it у меня скопилось не мало интересной полезной информации.
Буду делиться ею с вами.
В комменты прикреплю две прикольных презенташки с классным дизайном:
1️⃣ - BigData 2021 (да, чуть старовата)
2️⃣ - Linux
Как по мне такое интересно полистать, сохранить и иногда возвращаться к основам.
Дайте обратную связи по презенташкам и интересно ли вам такое?
#полезная_инфа
За 3,5 года работы в it у меня скопилось не мало интересной полезной информации.
Буду делиться ею с вами.
В комменты прикреплю две прикольных презенташки с классным дизайном:
Как по мне такое интересно полистать, сохранить и иногда возвращаться к основам.
Дайте обратную связи по презенташкам и интересно ли вам такое?
#полезная_инфа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤5🤝4🔥2
🔹Задача🔹
Задача была дана на собеседовании в одном из банков. Собеседование было на middle+.
📌Имеется таблица остатков rest_history.
▫️id_dog - id договора
▫️dt - дата изменения остатка
▫️balance - остаток на конце дня dt (0 или положительный)
Условия:
▫️ в таблице для каждого договора первой строкой является строка с ненулевым остатком.
Необходимо написать SQL-запрос:
▫️для каждого договора вычислить периоды, когда он имел ненулевой остаток;
▫️период закрывается датой dt-1 строки с нулевым остатком;
▫️eсли ненулевой остаток остается, то период закрывается датой 31.12.2999.
Тестовые данные (см. скрин):
Результат после обработки скриптом:
111 | 10.07.2022 | 14.08.2022
111 | 20.09.2022 | 31.12.2999
222 | 15.07.2022 | 14.09.2022
222 | 03.03.2023 | 09.05.2023
Присылайте решения😊
Свои решения я опубликую на следующей недели💅
it пингвин | data engineer 🐧
#sql #задача
Задача была дана на собеседовании в одном из банков. Собеседование было на middle+.
📌Имеется таблица остатков rest_history.
▫️id_dog - id договора
▫️dt - дата изменения остатка
▫️balance - остаток на конце дня dt (0 или положительный)
Условия:
▫️ в таблице для каждого договора первой строкой является строка с ненулевым остатком.
Необходимо написать SQL-запрос:
▫️для каждого договора вычислить периоды, когда он имел ненулевой остаток;
▫️период закрывается датой dt-1 строки с нулевым остатком;
▫️eсли ненулевой остаток остается, то период закрывается датой 31.12.2999.
Тестовые данные (см. скрин):
with rest_history (id_dog, dt, balance) as (
select 111, to_date('10.07.2022', 'dd.mm.yyyy'), 10 union all
select 111, to_date('15.08.2022', 'dd.mm.yyyy'), 0 union all
select 111, to_date('20.09.2022', 'dd.mm.yyyy'), 15 union all
select 111, to_date('15.07.2022', 'dd.mm.yyyy'), 25 union all
select 111, to_date('15.07.2022', 'dd.mm.yyyy'), 35 union all
select 222, to_date('15.07.2022', 'dd.mm.yyyy'), 5 union all
select 222, to_date('15.08.2022', 'dd.mm.yyyy'), 7 union all
select 222, to_date('15.09.2022', 'dd.mm.yyyy'), 0 union all
select 222, to_date('03.03.2023', 'dd.mm.yyyy'), 33 union all
select 222, to_date('04.04.2023', 'dd.mm.yyyy'), 44 union all
select 222, to_date('10.05.2023', 'dd.mm.yyyy'), 0
) select * from rest_history
Результат после обработки скриптом:
111 | 10.07.2022 | 14.08.2022
111 | 20.09.2022 | 31.12.2999
222 | 15.07.2022 | 14.09.2022
222 | 03.03.2023 | 09.05.2023
Присылайте решения
Свои решения я опубликую на следующей недели
it пингвин | data engineer 🐧
#sql #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥1
Буллинг от руководителя
Осень 2021 года. Мое первое место работы в it было в суппорте BI портала одной большой телеком компании.
Это был очень важный проект для компании и его только разработали.
Набрали инженеров в суппорт, в том числе и меня. Их было четверо, четыре пацана. Кхм.. Нет. Нас было восемь, восемь джунов.
Работали мы 2/2 по 12 часов. Раскиданы по всей территории РФ, по разным часовым поясам. Таким образом наша команда дежурила 24/7.
Мы следили за дашбордами, если находили косяки заводили заявки на разработку или эксплуатацию, делали какие-то пересчеты, проводили консультации.
Мы были все джунами, примерно одного уровня. Знали sql, немного архитектуру. Кто-то имел опыт программирования в прошлом. У меня хардскиллы были средние, но я был очень ответственный. Все почему-то боялись брать задачки в работу. А я сразу понял что их все равно надо делать. И в итоге в конце года у меня было закрытых задач столько же сколько у остальной команды в сумме. Но эта история не обо мне.
Среди нас был один инженер более слабый. Он плохо знал sql и вообще не особо понимал, что от него хотят. И наша руководитель (недавно была обычным инженером и ее только повысили до руководителя) как-то быстро поняла, что он слабоват и начала его буллить. Она при всех часто подкалывала его, что он что-то не знает. Давала ему отдельные стремные задачи по sql, найти какие-то страницы в конфе и сделать из них доки, пересказать статьи, которые она сама присылала. То есть, когда у остальных инженеров было свободное время на работе, мы или кайфовали или занимались саморазвитием, а этот инженер делал бессмысленные задачки руководителя.
Самое неприятное когда она его чмырила за спиной. У нас созвон - я, два инженера и руководитель. И она его прям сильно обсирала - какой он ТУПОЙ (прям так и говорила), ничего не знает, не понимает. НЕ ПОМОГАЙТЕ ему выполнять задачи, пусть сам разбирается. На корпоративах точно также подкалывала, унижала. Этот инженер рассказывает какую-то историю, руководитель перебивает его и рассказывает свое. И такие вещи были во всем, лишь бы найти повод.
С остальными руководитель, наоборот, была доброжелательна, мило разговаривала и помогала.
И хочу уточнить - мы все были джунами, он не особо от нас отличался. Грубо говоря, ему нужно было просто подтянуть sql и чуть подробнее узнать про DWH.
Мне это все как-то сразу не очень понравилось. И этот инженер со мной общался лучше всех, я ему часто помогал и что-то объяснял. Мы решали sql задачки, лазили по процедурам, смотрели как работает Oracle BI и тд.
*Справедливости ради хочу отметить, иногда он сам даже особо не разбирался в вопросах/задачах, а сразу приходил ко мне. Я сначала в таких ситуациях помогал ему, потом стал пресекать и говорил, посмотри сначала вот это, сделай это и только потом возвращайся.
Что интересно, спустя почти 4 года из 8 инженеров в том суппорте работает только этот инженер, которого буллили. И как я знаю, его отношения с руководителем нормализовались.
Я об этом размышлял и мне кажется, что это тоже херовый показатель. Многие знают, что в суппорте работают или джуны или уходят на пенсию. А этот инженер до сих пор там сидит. Может быть ему там все нравится, может быть у него просто нет амбиций. А может он до сих пор добивается одобрения своего руководителя.
Такая вот маленькая история.. Что думаете по этому поводу? Интересно, были ли у вас подобные случаи?
it пингвин | data engineer 🐧
#трустори
Осень 2021 года. Мое первое место работы в it было в суппорте BI портала одной большой телеком компании.
Это был очень важный проект для компании и его только разработали.
Набрали инженеров в суппорт, в том числе и меня. Их было четверо, четыре пацана. Кхм.. Нет. Нас было восемь, восемь джунов.
Работали мы 2/2 по 12 часов. Раскиданы по всей территории РФ, по разным часовым поясам. Таким образом наша команда дежурила 24/7.
Мы следили за дашбордами, если находили косяки заводили заявки на разработку или эксплуатацию, делали какие-то пересчеты, проводили консультации.
Мы были все джунами, примерно одного уровня. Знали sql, немного архитектуру. Кто-то имел опыт программирования в прошлом. У меня хардскиллы были средние, но я был очень ответственный. Все почему-то боялись брать задачки в работу. А я сразу понял что их все равно надо делать. И в итоге в конце года у меня было закрытых задач столько же сколько у остальной команды в сумме. Но эта история не обо мне.
Среди нас был один инженер более слабый. Он плохо знал sql и вообще не особо понимал, что от него хотят. И наша руководитель (недавно была обычным инженером и ее только повысили до руководителя) как-то быстро поняла, что он слабоват и начала его буллить. Она при всех часто подкалывала его, что он что-то не знает. Давала ему отдельные стремные задачи по sql, найти какие-то страницы в конфе и сделать из них доки, пересказать статьи, которые она сама присылала. То есть, когда у остальных инженеров было свободное время на работе, мы или кайфовали или занимались саморазвитием, а этот инженер делал бессмысленные задачки руководителя.
Самое неприятное когда она его чмырила за спиной. У нас созвон - я, два инженера и руководитель. И она его прям сильно обсирала - какой он ТУПОЙ (прям так и говорила), ничего не знает, не понимает. НЕ ПОМОГАЙТЕ ему выполнять задачи, пусть сам разбирается. На корпоративах точно также подкалывала, унижала. Этот инженер рассказывает какую-то историю, руководитель перебивает его и рассказывает свое. И такие вещи были во всем, лишь бы найти повод.
С остальными руководитель, наоборот, была доброжелательна, мило разговаривала и помогала.
И хочу уточнить - мы все были джунами, он не особо от нас отличался. Грубо говоря, ему нужно было просто подтянуть sql и чуть подробнее узнать про DWH.
Мне это все как-то сразу не очень понравилось. И этот инженер со мной общался лучше всех, я ему часто помогал и что-то объяснял. Мы решали sql задачки, лазили по процедурам, смотрели как работает Oracle BI и тд.
*Справедливости ради хочу отметить, иногда он сам даже особо не разбирался в вопросах/задачах, а сразу приходил ко мне. Я сначала в таких ситуациях помогал ему, потом стал пресекать и говорил, посмотри сначала вот это, сделай это и только потом возвращайся.
Что интересно, спустя почти 4 года из 8 инженеров в том суппорте работает только этот инженер, которого буллили. И как я знаю, его отношения с руководителем нормализовались.
Я об этом размышлял и мне кажется, что это тоже херовый показатель. Многие знают, что в суппорте работают или джуны или уходят на пенсию. А этот инженер до сих пор там сидит. Может быть ему там все нравится, может быть у него просто нет амбиций. А может он до сих пор добивается одобрения своего руководителя.
Такая вот маленькая история.. Что думаете по этому поводу? Интересно, были ли у вас подобные случаи?
it пингвин | data engineer 🐧
#трустори
5😢10👍9❤2😱2✍1🔥1🤬1😭1
Привет, подписчики!😎
Выкладываю решения по пятничной задачки.
Данные:
1)
2)
3)
Позапускайте решения, сравните разные реализации 👍
it пингвин | data engineer 🐧
Выкладываю решения по пятничной задачки.
Данные:
with rest_history (id_dog, dt, balance) as (
select 111, to_date('10.07.2022', 'dd.mm.yyyy'), 10 union all
select 111, to_date('15.08.2022', 'dd.mm.yyyy'), 0 union all
select 111, to_date('20.09.2022', 'dd.mm.yyyy'), 15 union all
select 111, to_date('15.07.2022', 'dd.mm.yyyy'), 25 union all
select 111, to_date('15.07.2022', 'dd.mm.yyyy'), 35 union all
select 222, to_date('15.07.2022', 'dd.mm.yyyy'), 5 union all
select 222, to_date('15.08.2022', 'dd.mm.yyyy'), 7 union all
select 222, to_date('15.09.2022', 'dd.mm.yyyy'), 0 union all
select 222, to_date('03.03.2023', 'dd.mm.yyyy'), 33 union all
select 222, to_date('04.04.2023', 'dd.mm.yyyy'), 44 union all
select 222, to_date('10.05.2023', 'dd.mm.yyyy'), 0
) select * from rest_history
1)
SELECT
id_dog, dt, new_dt
FROM
(
SELECT
id_dog, dt, balance,
COALESCE((LEAD(dt) OVER(PARTITION BY id_dog ORDER BY dt) - INTERVAL '1 day'),
to_date('31.12.2999', 'DD.MM.YYYY')) AS new_dt
FROM
(
SELECT
id_dog, dt, balance,
CASE WHEN COALESCE(LAG(balance) OVER(PARTITION BY id_dog ORDER BY dt), 0) = 0
THEN 1
ELSE 0
END AS bal_flg
FROM rest_history
) t1
WHERE bal_flg = 1 OR balance = 0
) t2
WHERE balance != 0
ORDER BY id_dog, dt
2)
,rest_history_l AS (
SELECT
ID_DOG,
DT,
BALANCE,
lag(BALANCE, 1, 0) OVER (PARTITION BY ID_DOG ORDER BY DT) AS BALANCE_L
FROM rest_history
)
SELECT
rl.ID_DOG,
to_char(rl.DT, 'DD.MM.YYYY') AS DATE_BEG,
COALESCE(
to_char(
(SELECT MIN(rl1.DT) - INTERVAL '1 day'
FROM rest_history_l rl1
WHERE rl1.BALANCE = 0 AND rl1.BALANCE_L <> 0
AND rl1.DT > rl.DT
AND rl1.ID_DOG = rl.ID_DOG),
'DD.MM.YYYY'),
'31.12.2999'
) AS DATE_END
FROM rest_history_l rl
WHERE BALANCE > 0 AND BALANCE_L = 0
ORDER BY ID_DOG, DT
3)
SELECT id_dog,
MIN(dt_start) AS dt_start,
COALESCE(dt_end, TO_DATE('31.12.2999', 'DD.MM.YYYY')) AS dt_end
FROM (
SELECT id_dog,
dt AS dt_start,
MIN(CASE WHEN balance = 0 THEN dt - INTERVAL '1 day' END)
OVER(PARTITION BY id_dog ORDER BY dt
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS dt_end
FROM rest_history
) t
GROUP BY id_dog, dt_end
ORDER BY id_dog, dt_end
Позапускайте решения, сравните разные реализации 👍
it пингвин | data engineer 🐧
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥6👍4✍1🥰1🤬1
Друзья, я получил обратную связь, что даю сложные задачки🫠
Я с этим согласен 🤝👍
Скоро я сделаю краткий обзор собеседования с Газпромбанком✍️
После собеса мне прилетела положительная обратная связь и оффер 325к.💰
На одном из этапов мне давали легкие задачки (скорее загадки). По ним сделаю пост, вам должно понравиться 😁
Я с этим согласен 🤝👍
Скоро я сделаю краткий обзор собеседования с Газпромбанком
После собеса мне прилетела положительная обратная связь и оффер 325к.
На одном из этапов мне давали легкие задачки (скорее загадки). По ним сделаю пост, вам должно понравиться 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍4✍3🤬1👌1
Стало интересно🤔 , какой для вас идеальный вариант работы? Даже если вы еще только вкатываетесь, то к чему вы стремитесь?
Anonymous Poll
35%
Работать в РФ на полной удаленке
20%
Гибрид в РФ - 2 дня в неделю офис, 3 удаленка
4%
Работать в РФ в комфортном офисе
11%
Работать из РФ на валютной удаленке
9%
Совмещать две работы. Жестко пахать (от 12 часов в день) и много зарабатывать
18%
Жить и работать за границей, получать в валюте
4%
Свой вариант
1🔥4👍3😱1🤬1
Вакансия: Старший ETL разработчик
Компания: IT_One (Проект Газпромбанка)
Предполагаемая вилка: 325к net (можно было 350 выбить)
Период собеседования:
Февраль 2025
Формат работы: Удаленка из РФ
Этапы собеседований:
HR-> Tech interview -> Tech interview -> Offer -> Rejected
Что будет на проекте:
Разработка sql в КХД банка на старой СУБД Sybase, отчетность для BI. В перспективе участие в миграции КХД на современный стек - S3, GP, ClickHouse, DBT, Spark/Flink, Airflow.
Краткая справка о процессе интервью:
Было два тех интервью - с руководством dwh банка и с командой.
На первом интервью в основном я рассказывал о своем опыте, потом дали несколько простых задач по sql (например, была задачка на накопительную сумму).
Второе интервью я запомню надолго:
Эта был вечер пятницы. Я говорил 1 на 1 с тимлидом команды. Исходя из разговора я понял, что интервьюер лежал в темноте на диване, говорил по телефону. Задавал мне загадки про вероятности(по ним сделаю пост) и болтал со мной о разных технологиях.
Диалог был максимально странный, но мне понравился😅
Позже подключился главный разработчик команды, и мы начали говорить про архитектуру dwh, про оптимизацию, разницу исторических и фактовых таблиц, задачка на self join. Моделировали таблицы - разраб спросил как мы будем хранить паспортные данные?
Еще был вопрос - Как работает накопительная сумма если встречается null?
Через 3 дня прислали оффер на 325к, я отказался, тк не захотел работать с СУБД Sybase (после работы на таком проекте моя ценность особо не выросла б). *+ уже был на руках более привлекательный оффер в другой банк.
Если бы я принял оффер, то был бы еще один этап - проверка психологом🤡
Как вам собеседование? Приняли бы оффер😁?
it пингвин | data engineer 🐧
#Собес
Компания: IT_One (Проект Газпромбанка)
Предполагаемая вилка: 325к net (можно было 350 выбить)
Период собеседования:
Февраль 2025
Формат работы: Удаленка из РФ
Этапы собеседований:
HR-> Tech interview -> Tech interview -> Offer -> Rejected
Что будет на проекте:
Разработка sql в КХД банка на старой СУБД Sybase, отчетность для BI. В перспективе участие в миграции КХД на современный стек - S3, GP, ClickHouse, DBT, Spark/Flink, Airflow.
Краткая справка о процессе интервью:
Было два тех интервью - с руководством dwh банка и с командой.
На первом интервью в основном я рассказывал о своем опыте, потом дали несколько простых задач по sql (например, была задачка на накопительную сумму).
Второе интервью я запомню надолго:
Эта был вечер пятницы. Я говорил 1 на 1 с тимлидом команды. Исходя из разговора я понял, что интервьюер лежал в темноте на диване, говорил по телефону. Задавал мне загадки про вероятности(по ним сделаю пост) и болтал со мной о разных технологиях.
Диалог был максимально странный, но мне понравился😅
Позже подключился главный разработчик команды, и мы начали говорить про архитектуру dwh, про оптимизацию, разницу исторических и фактовых таблиц, задачка на self join. Моделировали таблицы - разраб спросил как мы будем хранить паспортные данные?
Еще был вопрос - Как работает накопительная сумма если встречается null?
Через 3 дня прислали оффер на 325к, я отказался, тк не захотел работать с СУБД Sybase (после работы на таком проекте моя ценность особо не выросла б). *+ уже был на руках более привлекательный оффер в другой банк.
Если бы я принял оффер, то был бы еще один этап - проверка психологом
Как вам собеседование? Приняли бы оффер😁?
it пингвин | data engineer 🐧
#Собес
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥8🌚7👍4🤣2🤬1
Выкладываю долгожданные задачки с собеса на 325к😁
И это всё!🤣
Чтоб вы понимали, на собесе я впервые слышал эти и задачки/загадки и даже не сразу решил. Немного потупил, но все в слух рассуждал и решил. Интервьюеру понравилось, как я рассуждал, не зная ответ.
Можете в комменты выкладывать свои решения😄 ( ток скройте их)
Ии если у кого-то есть подобные задачки, скидывайте😊
К такому тоже нужно быть готовым на собеседовании ✊💯
it пингвин | data engineer 🐧
#Собес #задачи
1. Бросаем две игральные кости (6 граней). С какой вероятностью выпадет две одинаковых цифры?
2. В комнате находится 3 человека. С какой вероятностью в этой комнате есть хотя бы два человека одного пола?
И это всё!🤣
Чтоб вы понимали, на собесе я впервые слышал эти и задачки/загадки и даже не сразу решил. Немного потупил, но все в слух рассуждал и решил. Интервьюеру понравилось, как я рассуждал, не зная ответ.
Можете в комменты выкладывать свои решения😄 ( ток скройте их)
Ии если у кого-то есть подобные задачки, скидывайте😊
К такому тоже нужно быть готовым на собеседовании ✊💯
it пингвин | data engineer 🐧
#Собес #задачи
👍14🤣7❤2🔥1🤬1 1
Привет, подписчики!😎
Сейчас расскажу про полезные источники информации (темки)
*Скорее всего пост через время дропну.
1) Слив курсов🥳 🤩
https://s1.sharewood.co/
На шердвуде есть много сливов курсов. Видео все в хорошем качестве, теория и задания тоже есть (с ними бывают косяки). Но в любом случае вместо 100к за курс, можно бесплатно скачать😊
Точнее бесплатно можно скачивать 1 раз в 3 дня вроде бы или купить недорогую подписку и скачивать все без ограничений (не вижу в этом смысла). Так что халявим по полной🤑
Там есть курсы Яндекса, Карпова, Нетологии и тд.
Я сам скачивал несколько курсов по дата инженерии.
И супер удобно у них есть бот @sharewood_bot. Можно искать по названиям курсов или по источникам.
В общем, разберетесь😁
Пользуйтесь и оставьте обратную связь здесь плз. Интересно как вам.
2) Слив it книг🤩
Вот несколько каналов где выкладывают книги.
▪️https://news.1rj.ru/str/book_sbornik
▪️https://news.1rj.ru/str/dbbooks и https://news.1rj.ru/str/readandget
▪️https://news.1rj.ru/str/dsbookru
Ставим реакции, если понравились темки⬇️
И оч важно, если у вас есть свои "интересные" источники делитесь в комментах.
it пингвин | data engineer 🐧
#полезная_инфа
Сейчас расскажу про полезные источники информации (темки)
*Скорее всего пост через время дропну.
1) Слив курсов
https://s1.sharewood.co/
На шердвуде есть много сливов курсов. Видео все в хорошем качестве, теория и задания тоже есть (с ними бывают косяки). Но в любом случае вместо 100к за курс, можно бесплатно скачать
Точнее бесплатно можно скачивать 1 раз в 3 дня вроде бы или купить недорогую подписку и скачивать все без ограничений (не вижу в этом смысла). Так что халявим по полной
Там есть курсы Яндекса, Карпова, Нетологии и тд.
Я сам скачивал несколько курсов по дата инженерии.
И супер удобно у них есть бот @sharewood_bot. Можно искать по названиям курсов или по источникам.
В общем, разберетесь😁
Пользуйтесь и оставьте обратную связь здесь плз. Интересно как вам.
2) Слив it книг🤩
Вот несколько каналов где выкладывают книги.
▪️https://news.1rj.ru/str/book_sbornik
▪️https://news.1rj.ru/str/dbbooks и https://news.1rj.ru/str/readandget
▪️https://news.1rj.ru/str/dsbookru
Ставим реакции, если понравились темки
И оч важно, если у вас есть свои "интересные" источники делитесь в комментах.
it пингвин | data engineer 🐧
#полезная_инфа
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥29❤7👍6 3👎1👀1 1
Продолжим историю с полезными презенташками 😎
Прошлые презентации можете взять здесь
Сегодня прикреплю следующий материал(продолжу нумерацию с прошлого поста):
3️⃣ Введение в Python
4️⃣ Python Advanced
5️⃣ MapReduce
6️⃣ HDFS
3,4 - люблю готовые ноутбуки, где можно идти по порядку запускать код, при желании что-то менять и сразу смотреть результат.
Открывайте с помощью jupyter notebook. *Если не знаете как это сделать, пишите, на след недели сделаю инструкцию 🤝
5 - презентация + программы + данные. Здесь нужно разбираться как все работает.
6 - просто классная презентация по hdfs
Совет по всем материал - при возможности изучайте все сразу. Иначе все будет складивароваться и только расти. У меня сейчас так. Стараюсь все разгребать😁
Дайте обратную связь, как вам материал?⬇️ 😊
it пингвин | data engineer 🐧
#полезная_инфа
Прошлые презентации можете взять здесь
Сегодня прикреплю следующий материал(продолжу нумерацию с прошлого поста):
3,4 - люблю готовые ноутбуки, где можно идти по порядку запускать код, при желании что-то менять и сразу смотреть результат.
Открывайте с помощью jupyter notebook. *Если не знаете как это сделать, пишите, на след недели сделаю инструкцию 🤝
5 - презентация + программы + данные. Здесь нужно разбираться как все работает.
6 - просто классная презентация по hdfs
Совет по всем материал - при возможности изучайте все сразу. Иначе все будет складивароваться и только расти. У меня сейчас так. Стараюсь все разгребать😁
Дайте обратную связь, как вам материал?
it пингвин | data engineer 🐧
#полезная_инфа
Please open Telegram to view this post
VIEW IN TELEGRAM
1 6🔥3❤2👎2 2👍1
Как удалить дубли из таблицы?
Это очень популярный вопрос на собеседовании lvl jun.
И это сложнее вопроса, где нужно просто найти дубли😄
📌Допустим у нас есть таблица:
И нам нужно из 5 строк оставить только 2 уникальные.
Очень популярный НЕВЕРНЫЙ ответ:
Нумеруем оконкой все строки, оставляем все строки с номером 1:
Такой код удалит все строки!
Объясняю. В cte нумируем строки оконкой ROW_NUMBER().
Далее в delete мы хотим удалить все, где row_num > 1. Но под это условие попадают id=1 и id=2. Следовательно, delete удаляет все id с такими значениями. Таблица теперь пустая.
Нам нужно как-то разделить полностью уникальные строки.
В этом нам поможет скрытое системное поле, которое уникально идентифицирует строки и есть в каждой таблице. Такие поля есть во всех СУБД (возможны исключения 🤷♂️). В Oracle это поле называется rowid, в Postgresql - ctid.
Чуть переделаем предыдущий код:
Теперь удалится только 3 строки, вместо 5.
Останется две уникальные.
Или же можно удалить таким образом:
Если дальше разгонять, то на самом деле можно придумать еще много способов для удаления дублей.
Например, таблицу с дублями переименовать в table_1_old. Создать новую таблицу table_1 и залить в нее данные из table_1_old без дублей (в select добавить distinct). После дропаем table_1_old.
Если таблица очень большая и партицированная, можно пробегаться по всем партициям в цикле и чистить каждую партицию отдельно.
* У меня есть оракловый pl sql cкрипт, который удаляет дубли в таблице через курсор и коллекции. Такой вариант на больших данных будет быстрее работать и не будет блочить всю таблицу. Кому нужен скрипт пишите, пришлю.
Также на собеседовании (да и на реальных кейсах) будет полезно упомянуть, что перед удалением нужно сделать бэкап и сохранить, что мы удаляем, для дальнейшего разбора. Нужно понять почему эти дубли вообще появились.
Как вам инфа? Пишите свои варианты удаления дублей или какие-то еще тонкости и уточнения по данному вопросу? Жду реакций⬇️ 😊
it пингвин | data engineer 🐧
#sql #база #jun #Вопросы_с_собесов
Это очень популярный вопрос на собеседовании lvl jun.
И это сложнее вопроса, где нужно просто найти дубли
📌Допустим у нас есть таблица:
create table table_1
(id numeric,
name varchar(32));
insert into table_1 values(1, 'Jon');
insert into table_1 values(1, 'Jon');
insert into table_1 values(1, 'Jon');
insert into table_1 values(2, 'Sam');
insert into table_1 values(2, 'Sam');
commit;
select * from table_1;
id name
1 "Jon"
1 "Jon"
1 "Jon"
2 "Sam"
2 "Sam"
И нам нужно из 5 строк оставить только 2 уникальные.
Очень популярный НЕВЕРНЫЙ ответ:
Нумеруем оконкой все строки, оставляем все строки с номером 1:
WITH cte AS (
SELECT
id,
name,
ROW_NUMBER() OVER (PARTITION BY id,name ORDER BY id,name ) AS row_num
FROM
table_1
)
----
id name row_num
1 "Jon" 1
1 "Jon" 2
1 "Jon" 3
2 "Sam" 1
2 "Sam" 2
----
DELETE FROM table_1
WHERE id IN (
SELECT id FROM cte WHERE row_num > 1
);
Такой код удалит все строки!
Объясняю. В cte нумируем строки оконкой ROW_NUMBER().
Далее в delete мы хотим удалить все, где row_num > 1. Но под это условие попадают id=1 и id=2. Следовательно, delete удаляет все id с такими значениями. Таблица теперь пустая.
Нам нужно как-то разделить полностью уникальные строки.
В этом нам поможет скрытое системное поле, которое уникально идентифицирует строки и есть в каждой таблице. Такие поля есть во всех СУБД (возможны исключения 🤷♂️). В Oracle это поле называется rowid, в Postgresql - ctid.
Чуть переделаем предыдущий код:
WITH cte AS (
SELECT
id,
name,
ctid,
ROW_NUMBER() OVER (PARTITION BY id,name ORDER BY id,name ) AS row_num
FROM
table_1
)
----
id name ctid row_num
1 "Jon" "(0,41)" 1
1 "Jon" "(0,42)" 2
1 "Jon" "(0,43)" 3
2 "Sam" "(0,44)" 1
2 "Sam" "(0,45)" 2
----
DELETE FROM table_1
WHERE ctid IN (
SELECT ctid FROM cte WHERE row_num > 1
);
Теперь удалится только 3 строки, вместо 5.
Останется две уникальные.
id name
1 "Jon"
2 "Sam"
Или же можно удалить таким образом:
DELETE FROM table_1
WHERE ctid NOT IN (
SELECT MIN(ctid)
FROM table_1
GROUP BY id,name
);
Если дальше разгонять, то на самом деле можно придумать еще много способов для удаления дублей.
Например, таблицу с дублями переименовать в table_1_old. Создать новую таблицу table_1 и залить в нее данные из table_1_old без дублей (в select добавить distinct). После дропаем table_1_old.
Если таблица очень большая и партицированная, можно пробегаться по всем партициям в цикле и чистить каждую партицию отдельно.
* У меня есть оракловый pl sql cкрипт, который удаляет дубли в таблице через курсор и коллекции. Такой вариант на больших данных будет быстрее работать и не будет блочить всю таблицу. Кому нужен скрипт пишите, пришлю.
Также на собеседовании (да и на реальных кейсах) будет полезно упомянуть, что перед удалением нужно сделать бэкап и сохранить, что мы удаляем, для дальнейшего разбора. Нужно понять почему эти дубли вообще появились.
Как вам инфа? Пишите свои варианты удаления дублей или какие-то еще тонкости и уточнения по данному вопросу? Жду реакций
it пингвин | data engineer 🐧
#sql #база #jun #Вопросы_с_собесов
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍16🔥5 3✍2❤2
Привет, подписчики!😎
Хочу порекомендовать вам несколько каналов по нашей тематике - "data".
Каналы интересные, я на них давно подписан и постоянно что-то комментирую)
Пройдите по ссылочкам, изучите и кому что-нибудь понравится обязательно подписываемся 😁
📌 Data Brew: личный блог продуктового аналитика на пути к позиции лида, про софты и харды,иногда помогает найти работу.
📌 Из юриста в аналитики: канал джуна риск-аналитика, в котором я рассказываю о сложностях смены профессии и своём пути в аналитике.
📌 АННА В ДАННЫХ: заглянуть в жизнь опытного продуктового аналитика - искренние истории и проверенные временем рекомендации для вашей карьеры.
📌 Data Engineer lab: канал про обзор инструментов и технологий Data Engineering и Data Science с типичными вопросами по ним на собеседованиях.
📌 Бегущий по лезвию данных: снятся ли тридцатилетним вкатунам офферы?
it пингвин | data engineer 🐧
#полезная_инфа
Хочу порекомендовать вам несколько каналов по нашей тематике - "data".
Каналы интересные, я на них давно подписан и постоянно что-то комментирую)
Пройдите по ссылочкам, изучите и кому что-нибудь понравится обязательно подписываемся 😁
📌 Data Brew: личный блог продуктового аналитика на пути к позиции лида, про софты и харды,иногда помогает найти работу.
📌 Из юриста в аналитики: канал джуна риск-аналитика, в котором я рассказываю о сложностях смены профессии и своём пути в аналитике.
📌 АННА В ДАННЫХ: заглянуть в жизнь опытного продуктового аналитика - искренние истории и проверенные временем рекомендации для вашей карьеры.
📌 Data Engineer lab: канал про обзор инструментов и технологий Data Engineering и Data Science с типичными вопросами по ним на собеседованиях.
📌 Бегущий по лезвию данных: снятся ли тридцатилетним вкатунам офферы?
it пингвин | data engineer 🐧
#полезная_инфа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😁5 5🔥2🤬2🤣1
ПОСТЫ В АПРЕЛЕ ✍️
Привет, товарищи🤝 Всех с праздником⭐️ !
Попробую тоже подводить дайджест постов в конце месяца:
📌 Полезное:
➖ Обход замедления ютуба
➖ Презенташки 1, 2
➖ Слив курсов и книг 🤑
➖ Презенташки 3, 4, 5, 6
📌 Вопросы/задачи:
➖ Что такое хранилище данных?
➖ Задача на схлопывание строк и разбор
➖ Сложная задача на периоды и разбор
➖ Как удалить дубли из таблицы?
📌 Разное:
➖ Стандартизация SQL
➖ Буллинг от руководителя
➖ Опрос про идеальный вариант работы в it
➖ Обзор собеседования в Газпромбанк на 325к
➖ Загадки с собеса 😁
Как вам посты? Что больше всего понравилось?
Вроде бы в апреле я был продуктивен😄
Реакций⬇️ 😊
it пингвин | data engineer 🐧
#посты_месяца
Привет, товарищи
Попробую тоже подводить дайджест постов в конце месяца:
📌 Полезное:
📌 Вопросы/задачи:
📌 Разное:
Как вам посты? Что больше всего понравилось?
Вроде бы в апреле я был продуктивен
Реакций
it пингвин | data engineer 🐧
#посты_месяца
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍10 4🐳2❤1💅1
Всем привет 👋
Я же сейчас на испытательном сроке, второй месяц заканчивается. И вот наконец-то я получил доступы и мне дали задачи.. Теперь нужно работать🤡 😩
Как у вас проходит рабочий понедельник после майских выходных?)
Кстати нас уже 500 человек🎉 ❤️
Я же сейчас на испытательном сроке, второй месяц заканчивается. И вот наконец-то я получил доступы и мне дали задачи.. Теперь нужно работать
Как у вас проходит рабочий понедельник после майских выходных?)
Кстати нас уже 500 человек
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣25🔥9❤3👍3
🔹Задача🔹
Пусть существует таблица exam, в котором указаны:
- student_id (идентификатор студента)
- exam_id (идентификатор экзамена)
- mark (оценка)
Таблица exam
Необходимо вывести всех студентов, у которых за все время не было оценки ниже 4.
Задачи я беру из заметок и все они были на собеседованиях (необязательно у меня). Эта задачка lvl jun.
Присылайте решения😊 ⬇️
it пингвин | data engineer 🐧
#sql #задача
Пусть существует таблица exam, в котором указаны:
- student_id (идентификатор студента)
- exam_id (идентификатор экзамена)
- mark (оценка)
Таблица exam
student_id exam_id mark
1 1 4
1 2 3
1 3 5
2 1 5
2 2 5
2 3 5
3 1 4
3 2 4
3 3 3
Необходимо вывести всех студентов, у которых за все время не было оценки ниже 4.
Задачи я беру из заметок и все они были на собеседованиях (необязательно у меня). Эта задачка lvl jun.
Присылайте решения
it пингвин | data engineer 🐧
#sql #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2❤1✍1💅1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
5🎉23❤7👍4🫡3🙏2🔥1
Привет, подписчики!😎
Лично я ни разу не покупал платных курсов. Да и вообще всю жизнь получаю бесплатное образование (в ВУЗе тоже был на бюджете). Считаю, что вся информация есть открытом доступе. Есть куча статей, книг, roadmap-ов, пет проектов, лекций топ ВУЗ-ов, интерактивных курсов в БЕСПЛАТНОМ доступе.
НО! Я не против платных курсов. В целом если у кого-то нет проблем с деньгами, то почему бы не заплатить. Там все будет на блюдечке структурировано лежать. Будут преподы и менторы, которые тоже хорошо помогают.
Кому-то легче учиться, когда были заплачены деньги. Становится жалко потраченных денег и это заставляет/мотивирует учиться.
А бесплатный материал откладывается в долгий ящик. Нужны дисциплина, самоконтроль и ответственность, чтоб самому что-то изучить. Но опять же, в it ты постоянно чему-то учишься, поэтому эти качества тебе в любом случае нужно развивать.
Еще кто-то покупает платные материалы, в целях экономии времени на поиске самому информации. А время = деньги.
В общем, есть много плюсов в покупке платных материалов.
И вот мне стало интересно, что вы думаете по поводу платного обучения?🤔
Кто-нибудь из моих подписчиком покупал платные курсы в онлайн школах? Расскажите, плз, как вам опыт? Можете кого-то захейтить или наоборот порекомендовать😁 Дайте честную обратную связь, возможно это кому-то поможет🤝
✅ - за платное обучение
❌ - против
it пингвин | data engineer 🐧
#просто_мысли
Лично я ни разу не покупал платных курсов. Да и вообще всю жизнь получаю бесплатное образование (в ВУЗе тоже был на бюджете). Считаю, что вся информация есть открытом доступе. Есть куча статей, книг, roadmap-ов, пет проектов, лекций топ ВУЗ-ов, интерактивных курсов в БЕСПЛАТНОМ доступе.
НО! Я не против платных курсов. В целом если у кого-то нет проблем с деньгами, то почему бы не заплатить. Там все будет на блюдечке структурировано лежать. Будут преподы и менторы, которые тоже хорошо помогают.
Кому-то легче учиться, когда были заплачены деньги. Становится жалко потраченных денег и это заставляет/мотивирует учиться.
А бесплатный материал откладывается в долгий ящик. Нужны дисциплина, самоконтроль и ответственность, чтоб самому что-то изучить. Но опять же, в it ты постоянно чему-то учишься, поэтому эти качества тебе в любом случае нужно развивать.
Еще кто-то покупает платные материалы, в целях экономии времени на поиске самому информации. А время = деньги.
В общем, есть много плюсов в покупке платных материалов.
И вот мне стало интересно, что вы думаете по поводу платного обучения?
Кто-нибудь из моих подписчиком покупал платные курсы в онлайн школах? Расскажите, плз, как вам опыт? Можете кого-то захейтить или наоборот порекомендовать😁 Дайте честную обратную связь, возможно это кому-то поможет
it пингвин | data engineer 🐧
#просто_мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
Вчера поймал какую-то дизмораль.
В последнее время я ленюсь и почти не занимаюсь самообразованием. В хроме открыто около 30 вкладок с обучающими материалами и их количество только увеличивается. На компе появляются новые папки, пет проекты, книги, презентации, которые нужно разобрать.
Вчера в очередной раз нашел интересный материал (по докеру) и я опять тупо его сохраняю и думаю "надо будет разобрать"... И так уже давно продолжается. Отложенные материалы и задачи растут и растут. Из-за этого постоянное внутреннее чувство, что я что-то должен.
Мне нужно разобрать весь отложенный материал и больше столько я не буду откладывать. Но заставить не могу себя. В последнее время я расслабился. Теперь нужно снова вспомнить что такое дисциплина.
Я хочу хорошо изучить python. Я его знаю на около джуновом уровне, год назад проходил классный Инди курс по Python на степике, решал задачки по алгоритмам от Яндекса. На собесах легкие задачи по питону тоже решал. Но когда по работе с ним мало работаю, как-то все забывается.
Если конкретнее что мне нужно - разобрать все свои закладки, задротить python до мидлового уровня, spark и airflow, докер, клик, dbt. Я про многое знаю, но нужно углубляться. По работе сейчас с этими инструментами не работаю. На проекте сейчас informatica для озера данных, Hadoop, постгря и oracle.
В этом году я вышел на уровень дохода в 300к+. С такой зп, конечно, психологически комфортнее. Вроде все отлично, можно спокойно работать работу и после кайфовать. Но нет, что-то мне не спокойно..
Я по прежнему не чувствую себя топовым спецом🤡 . А для меня важно быть востребованным профессионалом. В идеале научиться пользоваться всем зоопарком технологий в DE + уметь хорошо прогать, чтоб я мог на изи с ноги залететь в топ компании, типа Яндекс/Авито.
У меня есть несколько веток развития:
• Расти по должности в нынешнем банке до лида. Здесь есть стопер, что я живу в Краснодаре, а основная команда, как обычно, в мск. Конкретно в моей компании почти все руководители часто работают из офиса. И еще все руки достаточно возрастные. По ощущениям чтобы стать лидом должен здесь работать 3+ года. Это долго.
• Работать на двух работах. Пока хз мог бы я совмещать вторую работу с нынешним местом или нет. Во-первых по загрузке пока не пойму что у меня будет, во-вторых я вроде бы подписывал доку что у меня нет второго места работы или даже не могу работать в другой компании (плохо помню, но вроде что-то подобное было).
• Продолжить менять компании раз в год. Думаю ближе к зиме выйду на рынок, промониторю какие вообще будут предложения.
• Перейти в ML. Вот это кажется очень интересным, но скорее всего придется устроиться на меньшую зп, тк нет рабочего опыта в ML. А терять в деньгах я скорее всего не захочу.
• Активно развивать тг канал, попробовать устроиться в какую-то онлайн школу преподом (сомнительно), расти в скиллах как ментор. Этим планирую параллельно заниматься, но это не приоритетная задача.
В общем начинаю разгребать все свои закладки (не в ущерб работе), буду периодически рассказывать что изучил. Как закрою все долги, устрою челлендж по каждодневному решению алгосов с литкода и буду делать обзоры. Но пока не заглядываю вперёд.
Этот пост будет как мотивация и напоминание, что нужно херачить. Я еще не достаточно поработал, как-то быстро все стало слишком комфортным. Отговорки не принимаются, что нужно нормально отдыхать, иметь worklife balance и тд.
Выполню все свои задачи и с этого будет большая польза, это я уже точно знаю. Все усилия награждаются.
Такая вот история. Надеюсь кому-то еще поднял мотивацию. Работаем, друзья✊
it пингвин | data engineer 🐧
#просто_мысли
В последнее время я ленюсь и почти не занимаюсь самообразованием. В хроме открыто около 30 вкладок с обучающими материалами и их количество только увеличивается. На компе появляются новые папки, пет проекты, книги, презентации, которые нужно разобрать.
Вчера в очередной раз нашел интересный материал (по докеру) и я опять тупо его сохраняю и думаю "надо будет разобрать"... И так уже давно продолжается. Отложенные материалы и задачи растут и растут. Из-за этого постоянное внутреннее чувство, что я что-то должен.
Мне нужно разобрать весь отложенный материал и больше столько я не буду откладывать. Но заставить не могу себя. В последнее время я расслабился. Теперь нужно снова вспомнить что такое дисциплина.
Я хочу хорошо изучить python. Я его знаю на около джуновом уровне, год назад проходил классный Инди курс по Python на степике, решал задачки по алгоритмам от Яндекса. На собесах легкие задачи по питону тоже решал. Но когда по работе с ним мало работаю, как-то все забывается.
Если конкретнее что мне нужно - разобрать все свои закладки, задротить python до мидлового уровня, spark и airflow, докер, клик, dbt. Я про многое знаю, но нужно углубляться. По работе сейчас с этими инструментами не работаю. На проекте сейчас informatica для озера данных, Hadoop, постгря и oracle.
В этом году я вышел на уровень дохода в 300к+. С такой зп, конечно, психологически комфортнее. Вроде все отлично, можно спокойно работать работу и после кайфовать. Но нет, что-то мне не спокойно..
Я по прежнему не чувствую себя топовым спецом
У меня есть несколько веток развития:
• Расти по должности в нынешнем банке до лида. Здесь есть стопер, что я живу в Краснодаре, а основная команда, как обычно, в мск. Конкретно в моей компании почти все руководители часто работают из офиса. И еще все руки достаточно возрастные. По ощущениям чтобы стать лидом должен здесь работать 3+ года. Это долго.
• Работать на двух работах. Пока хз мог бы я совмещать вторую работу с нынешним местом или нет. Во-первых по загрузке пока не пойму что у меня будет, во-вторых я вроде бы подписывал доку что у меня нет второго места работы или даже не могу работать в другой компании (плохо помню, но вроде что-то подобное было).
• Продолжить менять компании раз в год. Думаю ближе к зиме выйду на рынок, промониторю какие вообще будут предложения.
• Перейти в ML. Вот это кажется очень интересным, но скорее всего придется устроиться на меньшую зп, тк нет рабочего опыта в ML. А терять в деньгах я скорее всего не захочу.
• Активно развивать тг канал, попробовать устроиться в какую-то онлайн школу преподом (сомнительно), расти в скиллах как ментор. Этим планирую параллельно заниматься, но это не приоритетная задача.
В общем начинаю разгребать все свои закладки (не в ущерб работе), буду периодически рассказывать что изучил. Как закрою все долги, устрою челлендж по каждодневному решению алгосов с литкода и буду делать обзоры. Но пока не заглядываю вперёд.
Этот пост будет как мотивация и напоминание, что нужно херачить. Я еще не достаточно поработал, как-то быстро все стало слишком комфортным. Отговорки не принимаются, что нужно нормально отдыхать, иметь worklife balance и тд.
Выполню все свои задачи и с этого будет большая польза, это я уже точно знаю. Все усилия награждаются.
Такая вот история. Надеюсь кому-то еще поднял мотивацию. Работаем, друзья
it пингвин | data engineer 🐧
#просто_мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥34 11👍9❤7🤣3✍1🙏1 1