Дата аналитикс
1.9K subscribers
206 photos
21 videos
3 files
45 links
Здесь про IT не душным языком, Data Science, аналитику и жизнь внутри бигтехов

• истории из [ жизни | работы | карьеры ]
• тестовые из бигтехов
• полезные рекомендации и советы
• учебные материалы

Сотрудничество @Sounds_like_a_plan

Inst: chto_za_nikita
Download Telegram
Опыт увольнений

Многие говорят как устроиться быстрее и лучше, но мало кто говорит о теме увольнения.
Недавно у меня вышла интереснейшая беседа с HR-ом в одном из чатов.

Сначала небольшая МОЯ предыстория:
Я проработал небольшое количество времени в Озоне и все было супер... Ровно до тех пор пока ко мне не пришел рук и не сказал: "Никит, у нас оптимизация, сверху пришли и сказали сократить штат" (Это правда)

Мне предлагают 2 варианта:
1 - ротация
2 - 2 оклада и полюбовно распрощаемся

Я решил не торопиться со вторым и собесился в разные команды, куда хотел - не получилось, куда получилось - понял, что не будет интересно в длительной перспективе. И выбрал 2 вариант. Хотя озон мега хорош(

Далее советы начинающим и уже опытным ребятам тусующимся в этой кухне:
1. Если работодатель предлагает уволится «давайте по соглашению сторон в зубы стандартно 2 оклада» - всегда торгуйтесь, законом не оговорены никакие стандартные 2 оклада. Но многое зависит от причин.

• Если Ваше место сокращают, но не хотят это проводить как сокращение, то торговаться можно легко.
• Если Вас "просят" уйти (doesnt matter как вы работаете), то тоже можно торговаться, но надо понимать, что на Вас будут давить.
• Если вы хорошо работаете (по мнению обеих сторон), но, допустим, просто Ваше место нужно под другого, вы дорого обходитесь, у них есть вариант дешевле - это и используйте: "За два оклада уйду через три месяца. А за пять - сейчас"

Важные поинт.
Но вообще надо понимать, что всегда лучше расставаться красиво. Земля такая круглая, а бумеранг всегда возвращается)


• если вы проработали меньше 3-х месяцев, то торговаться вряд ли получится(
Важные момента для аргументации:
• в нашей сфере поиск работы с моим стажем в среднем занимает N (Если N > 2) месяцев, поэтому 2 оклада меня не спасут
• короткий срок работы вызовет вопросы у будущего работодателя (все равно не прикольно, можно указать этот момент)
• при устройстве опять проходить тучу собеседований и тестовых - не хотелось бы, а вот получается придется(

Итог:
Вот поэтому мне надо не 2 , а N окладов и я без вопросов уйду.


Самый важный поинт:
Не наглеть на пустом месте. Мир очень маленький и никогда не знаешь как сыграет та или иная ситуация в будущем.
32👏7🔥6
Совместно с каналом Ани решили сделать ответы на одни из самых часто задаваемых вопросов ребят, которые хотят вкатиться, но те кто уже в профессии, хотелось бы услышать ваше мнение по поводу вопросов.

1. У меня нет высшего технического образования. Это будет проблемой, нужна ли она вообще?
• Критически - не важна.
• Но для многих HR это важный поинт, если вы залетаете в IT специальность.
• У меня лично специальность Информационая Безопасность

Могу сказать что например экономисты вообще норм заходят в аналитику из-за понимания юнит экономики.

2. Как долго готовиться к собесам?
В зависимости от того, насколько хорошо вы знаете ту или иную предметную область.

В интернете куча роадмэпов по всем направлениям, но вот мой стартер пак для начинающих:
• Leetcode 30 первых задачек уровня easy по алгоритмам Python
• Leetcode 30 первых задачек по SQL + Обязательное решение не только на [ MySQL | PostreSQL ], но и решить эти задачки через Pandas (там есть такая возможность)
• SQL: подзапросы, CTE, сложные запросы, все типы оконок (агрегирующие - маст хэв) [ ранжирующие, смещения ] - обязательно потрогать и понять назначение, все джоины и порядок выполнения операторов, индексы
• По возможности парочку пару пет проектов на гитхабе с полным цикла анализа данных (Очистка, заполнение, обработка данных - тот же parse dates, визуализация, создание новых фич, label encoding, one hot encoding)
• Юнит экономика (понимание различных метрик в разных сферах)
• Шарить за колоночные бд, PySpark, HDFS

Крайне рекомендую использовать для подготовки бот Ани @DataismPrepBot, которым пользуюсь сам
Там собраны все необходимые темы для подготовки в виде квиза. Очень крутой интерфейс с гибкой настройкой тем под вас!

Еще важный поинт:
Половина из того, что я рекомендовал может и не понадобиться как и куча рекомендаций других людей, все зависит от собеседования и компании куда устраиваетесь.
Ничто не может претендовать на истину в первой инстанции


3. Мое мнение о стажировках

Если честно это очень щекотливая тема, я считаю пробоваться - стоит всегда. Но делать ставку только на них - не стоит. Вот куча других каналов как можно попасть на работу
• Подаваться на джуновские вакансии (от вас не убудет, а если хоть одна компания ответит из 20, это реальная возможность)
• Писать на почту самим в небольшие компании
• Мониторить чатики по типу: Джуниор вакансии
• Качать нетворкинг, просить знакомых рекомендовать вас в стажерские / джуновские позиции.

Сразу отвечу на вопрос: откуда брать знакомых?
• Вы можете обратиться ко мне и я вас порекомендую на доступные вакансии в МТС, не бойтесь стучаться в личку
LinkedIn


Вторую часть ответов на интересеные вопросы вы можете увидеть на канале Ани которая уже 5 лет работает в аналитике и помогает развивать ее в компании недвижимости М2
23👍73❤‍🔥2🔥2🤩1
Сравнение синтаксиса [ Pandas | Polars | PySpark] ч.2

Ранее на канале мы уже сравнивали синтаксис этих инструментов:

Сегодня посмотрим на более продвинутые методы в данных инструментах
👍962❤‍🔥1
Шардирование и партиционирование

Оооочень часто эти понятия путают. Давайте разберемся, в чем же отличие!

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

Шардирование - это разделение данных между разными серверами (или базами данных). Каждый шард хранит часть данных, и вместе они образуют полное хранилище. Это позволяет горизонтально масштабировать систему — при увеличении объема данных можно добавлять новые шарды и распределять нагрузку между ними.

В чем разница?

• Партиционирование — это способ оптимизации внутри одного хранилища данных, когда данные делятся на части, но остаются в одной таблице.

• Шардирование — это распределение данных между разными физическими серверами, чтобы избежать перегрузки одного сервера при большом объеме данных.

Закрепим:
Шардирование обычно используется в масштабируемых системах с большими объемами данных, тогда как партиционирование чаще применяется для оптимизации запросов в одной базе.
👍224🔥1
BI инструменты

В аналитике, в большинстве своем необходим навык построения дашбордов.

"А где получить навыки работы с ними?"

1. Superset
• легко настраивается, приятный туториал для новичков внутри приложения
• совместимость с Python: интеграция с Python требует дополнительных настроек, но возможна, что удобно для кастомного анализа (Привет Jinja...)
• популярен на рынке

2. Tableau
• легко настраивается
• совместимость с Python: интеграция с Python через Tableau Extensions API, что добавляет гибкость для анализа данных
• интуитивный интерфейс: идеален для пользователей с небольшим опытом в визуализации.
• популярен на рынке

3. Power BI
• интеграция с продуктами Microsoft: идеально для пользователей Microsoft Office.
• интеграция с Python и R
• менее популярен на рынке

4. Datalens
• интеграция с Яндекс Облаком: легко получает данные, хранящиеся в экосистеме Яндекса.
• поддержка Python: пока ограничена, но доступно взаимодействие с некоторыми скриптами через API.
• подходит для компаний с локальными данными: особенно удобен для тех, кто пользуется Яндекс.Облаком.
• набирает популярность на рынке

Все перечисленные на мой взгляд инструменты являются:
• актуальными и востребованными
• бесплатными
• поддерживают подключение данных из: PostgreSQL, MySQL, CSV и XLSX
❤‍🔥11🙏4
Способы оптимизирования запросов

Один из любимых вопросов от работодателей на собеседовании.

Чтож давайте разберемся, что от вас желают услышать интервьюеры

1. Уменьшение объема данных
• Используйте SELECT только нужные столбцы, вроде база, но так и тянет многих обычно нажать на любимую всеми звездочку.
• Ограничьте выборку по строкам, используя фильтры и лимиты.

2. Оптимизация функций и выражений
• Как можно меньшее использование LIKE, SUBSTRING, и преобразования типов, особенно в WHERE-условиях.
• Эти операции очень тяжелые в обработке и могут замедлить запрос (особенно с большими данными).

3. Выбор правильных индексов
• Индексирование наиболее используемых полей (часто используемых в WHERE, JOIN, и ORDER BY).
• Индексы ускоряют доступ к данным, но важно понимать меру и не лепить их 50 штук.

4. Агрегации и подзапросы
• Для оптимизации избегайте агрегаций и подзапросов, когда это возможно.
• Вместо них старайтесь использовать JOIN и WITH (CTE) для промежуточных результатов, если они приводят к меньшему объему данных на выходе.

5.Оптимизация JOIN и порядка соединений
• Порядок JOIN-ов важен: сначала соединяйте таблицы с меньшим количеством строк, чтобы уменьшить объем промежуточных данных.
• По возможности, оптимизируйте порядок с учетом индексированных полей.

6. Анализ планов выполнения (EXPLAIN)
• Используйте EXPLAIN для понимания, как база данных выполняет запрос.
• Смотрите на узкие места, как последовательность сканирования таблиц, индексы, и перезаписывайте запрос при необходимости.
• Поддерживается в: PostgreSQL, MySQL, SQL Server, Oracle (храни его господь) и другие...

7. Кэширование результатов
• Если один и тот же запрос крутите 10 раз, рассмотрите кэширование результатов в материальном представлении (materialized view) или временной таблице, чтобы не рассчитывать их каждый раз заново.

8. Использование партицирования (Partitioning)
• Разделение больших таблиц на разделы (partitioning) по датам или регионам (или другому подходящему полю)
• Позволяет базе данных обращаться только к нужному разделу, ускоряя запросы.

9. Выбор правильного типа данных
• Использование INT вместо BIGINT или VARCHAR(100) вместо TEXT экономит место и снижает объем данных, с которыми работают запросы, ускоряя их выполнение.

Очень важный поинт:
Кириллица кодируется 2мя байтами, в отличии от латиницы, то есть varchar(10) может содержать 5 ру символов, либо 10 en символов


Какие способы вы бы еще добавили сюда?
❤‍🔥25👍145🔥1🫡1
Квиз! Какое [ min | max ] количество строк вернет CROSS JOIN для таблицы в 3 и 4 записи? (дублей нет)
Anonymous Quiz
6%
[ 0 | 3 ]
4%
[ 3 | 4 ]
16%
[ 3 | 12 ]
74%
[ 12 | 12 ]
👍6
Квиз! Какое [ min | max ] количество строк вернет INNER JOIN для таблицы в 3 и 4 записи? (Дублей нет)
Anonymous Quiz
19%
[ 0 | 4 ]
40%
[ 0 | 3 ]
19%
[ 3 | 4 ]
22%
[ 3 | 3 ]
👍4
Квиз! Какое [ min | max ] количество строк вернет ANTI LEFT для таблицы в 3 и 4 записи? (Дублей нет)
Anonymous Quiz
34%
[ 0 | 3 ]
37%
[ 0 | 4 ]
13%
[ 3 | 3 ]
17%
[ 3 | 4 ]
👍3
HDFS (Hadoop Distributed File System) и его компоненты

Давайте разберемся, что же это за популярный инструмент и почему с его владением быстрее берут на работу.

HDFS — это распределенная файловая система, которая позволяет хранить и обрабатывать огромные объемы данных, разделяя их на блоки и распределяя по кластерам.

Основные компоненты:

1. YARN (Yet Another Resource Negotiator)
Это система управления ресурсами в Hadoop. YARN отвечает за распределение вычислительных мощностей между различными задачами. Он управляет ресурсами кластера и следит за тем, чтобы каждая задача получила нужное количество процессорных и оперативных ресурсов.

2. NameNode
Это "голова" системы HDFS, которая управляет всей файловой системой. NameNode отвечает за метаданные — информацию о том, где хранится каждый блок данных. Он также следит за здоровьем DataNode'ов и решает, куда переместить данные при сбоях.

3. DataNode
DataNode — это рабочие узлы, которые хранят фактические данные. Каждый DataNode получает инструкции от NameNode и выполняет операции по хранению, чтению и записи данных. Если один DataNode выходит из строя, система автоматически восстанавливает данные, используя реплики на других узлах.

Владение HDFS и его компонентами — это навык, который быстро выделит вас на фоне других кандидатов, так как системы Big Data продолжают набирать популярность во многих компаниях!
👍136💅3🤯2❤‍🔥1
Достигаторство и быстрый рост.

Сейчас модно быть продуктивным и показывать какой ты классн[ый | ая]
Но не все задумываются, что за этим скрывается.

Часть людей в IT (и не только) действительно добивается успеха потому что искренне любят это дело и просто спокойно развиваются. Но не подавляющее большинство.

- Многие из этих людей страдали и страдают от синдрома самозванца
- Кто-то был недолюблен в детстве или в отношениях и пытается доказать, что он более чем способный. Закрывая свои психологические потребности.
- Кто-то подвержен влиянию соц. сетей и если видит, что кто-то работает и развивается, начинает делать также - так работает отрицательная мотивация (Если я не сделаю что-то, я буду хуже других)
- Кто-то добивался всего начиная с общепита или разгребая проблемы семьи и родных
- Кому-то повезло или помогли знакомства
- А кто-то выгрызал себе путь с достаточно раннего возраста, гоняя по олимпиадам и соревнуясь в вечно конкурентной среде с такими же умными и перспективными ребятами.

У каждого свой путь - каждая продуктивность имеет обратную сторону. Не стоит делать ранние выводы о человеке, что ему это легко досталось. Часто самые успешные люди имеют весьма большой бэкграунд с трудностями за спиной.

Я рос в достаточно бедной семье и не самой крепкой. Чуть не пошел по другой дороге (хотел после школы пойти работать экспертом-криминалистом) Окончательно нашел себя, когда было 22.

Моей мотивацией в свое время было: не будешь работать над собой и своими будущим - тебе будет пиздец и этот мир съест тебя.

Кого-то похожие ситуации закаляют, а кого-то выбивают из колеи и держат в стрессе.

Не страшно не найти себя в 20, страшно понять, что ты себя не нашел к 35-40.

Я считаю что важно понимать, почему ты продуктивный и быстро всего добиваешься, так ТЫ будешь владеть ситуацией, а не она тобой. Главное не обманывать себя)

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

Что вы думаете по этому поводу?
41👍14❤‍🔥8🤔3🗿2
Опыт взаимодействий с [ коллегами | руководителями ]

Очень хочу разогнать именно эту тему.

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

Начну с руководителей.
Я считаю, что руководитель - это человек пример высокой организованности, скиллованности, софтово развит и в целом является лидером.

С чем уже успел столкнуться я?

1. Собес. Тимлид общается на чистом мате на первой же встрече со мной. Я не неженка и тоже иногда матерюсь, но такое поведение на старте - ред флаг. Забавно что он же мне сказал: если хочешь расти в команде - надо выделяться, заниматься проактивностью. Проактивность = ты будешь оставаться после работы, чтобы дай бог на перфоманс ревью тебя повысили на 10%. Думаю тут и комментарии не нужны.

2. Собес в крупный банк. Рук спрашивает третьим вопросом при 4х людях: "ты купил военник или собираешься покупать?" Я отказался отвечать на этот вопрос, раз он их интересует в первую очередь. Мне сразу прилетело: думаю мы не сработаемся)))) Почти сразу мы закончили интервью.

3. Общение с руком из другого отдела. Мне необходима была его [ консультация | помощь ]. После того как я представился был диалог:
- Ты знаешь кто я?
- да, знаю
- Ты думаешь Я, БУДУ ТРАТИТЬ НА ТЕБЯ СВОЕ ВРЕМЯ? (Важное уточнение, вопрос касался его бизнес юнита, я не мог не спросить его мнения) Дальше не вижу смысл описывать диалог.
Даже если ты тимлид, общаться так с человеком - непозволительно ни в одной ситуации. Как только у человека начинает развиваться синдром вахтера - это знак бить тревогу.

4. Собес. Общение с юнит хедом. Мужик преподает в ШАДе параллельно. Маааксимально добрейший и светлый человек. Задавал грамотные вопросы, где-то помогал с ответами и наводил на верные мысли. Вот просто по таким людям видно, у него в жизни все хорошо и работу он свою любит. И общается наравне. Огромный респект и лайк таким людям.

5. Один из моих руков был безумно классным. Мало того, что общение было всегда на одной волне (казалось бы уже все должны к этому прийти, но нет) Было максимальное понимание бизнесовой составляющей и когда приходили заказчики, половина задач отсеивалась и всякой дичью не грузили членов команды.
Мне безумно импонирует, когда твой capacity адекватно оценивают и дают только годные задачи, которые не окажутся бесполезными.

А с какими вы ситуациями сталкивались на работе?

Если вам понравился этот пост и вам интересно было читать, поставьте 👀, чтобы я понимал)
👀7916
Квиз! Обязательные омпоненты Hadoop Cluster-а
Anonymous Quiz
25%
[ NameNode, DataNode ]
59%
[ NameNode | DataNode | YARN ]
16%
[ NameNode | DataNode | YARN | Zookeeper ]