🔋 Труба данных – Telegram
🔋 Труба данных
3.99K subscribers
330 photos
5 videos
9 files
449 links
Авторский канал обо всем, что происходит в мире работы с данными: хранение, обработка, визуализация, как мы принимаем решения и как мы становимся профессионалами в работе с данными.

Автора канала - @SimonOsipov
Download Telegram
A data janitor is a person who works to take big data and condense it into useful amounts of information. Also known as a "data wrangler," a data janitor sifts through data for companies in the information technology industry. A multitude of start-ups rely on large amounts of data, so a data janitor works to help these businesses with this basic, but difficult process of interpreting data.

Ну все, так и буду себя именовать теперь 😂

https://en.wikipedia.org/wiki/Data_janitor
Вредные советы 8. Как не надо сравнивать с None
Если посмотреть в PEP, то нам скажут, как надо сравнивать с None и это будет if Cond is None. "Но ведь PEP это только гайдлайны, их можно нарушать!", скажете вы мне. Некоторые да, а вот некоторые не надо, потому что это нарушает читабельность кода.

Антипаттерн
Как не надо сравнивать с None:

number = None
if number == None:
print("Работает!")


А как надо?
Все просто и по гайдлайну:

number = None

if number is None:
print("Теперь хорошо")


Тут используется identity operator или оператор тождественности. Он вернет True только в том случае, если обе переменные указывают на один и тот же объект.

#ВредныеСоветы
Построение высокоэффективной Agile команды

1.5 года назад в моем продукте было 4 человека: product owner, delivery manager, один разработчик и один DS. Ребята получили в нагрузку от консультантов большой четверки код в Юпитере без описания работы и обещания, что вот эта методология принесет миллиарды миллиардов.😂

На сегодняшний момент нас почти 25, со своим собственным архитектором, бизнес и системными аналитиками, тестировщиками, фронт и бек разработчиками, DE, DS разной направленности. И мы несемся в светлое будующее.

Да, не без провалов.
Да, не без ошибок.
Да, не без фейлов.

Но весь проект начинался как перебрасывание csv файлов между DS и виртуальной машиной, на которой простой бек рендерил Excel-like табличку.
Сейчас это полноценные команды разработки и аналитики, CI/CD, трекинг метрик, мониторинги и, господи прости, кубернетес и автодеплой.

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

Команды не сразу строятся и не сразу становятся rockstars, и мы сами еще в середине пути. Поэтому ребятам, которым приходится немножко управлять другими и процессами постоянно изучают и подсматривают про организацию команд. Сегодня одно из таких видео - Асхат Уразбаев из ScrumTrack про построение команд.😄

https://www.youtube.com/watch?v=MEJgZpHBSDY

#пятничныйYoutube
Глобальный эксперимент по удалённой работе

Шутка уже бородатая, но все же. Каждый день мы слышим как ещё одна компания отправила своих сотрудников на WFH или work from home.

Рассказывать про правила, лайфаки и фишки работы из дома не буду, их и так на каждом шагу, тема же горячая, трафик и вот это все. Главное, помните: удалённая работа это все ещё та же работа. На пляже с ноутом не получится посидеть, и не только из-за запрета на перелёты, но и потому, что солнце бликует на не матовых экранах и песок забивается в кулеры😂😂

В связи со всей этой паникой, вот вам тред из твиттера, в котором люди показывают свои необычные рабочие места дома:

https://twitter.com/julesforrest/status/1238526424719355904?s=19

Выглядит крайне смешно и забавно =)
#НамДжунаБы

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

Погнали!
#НамДжунаБы

Очень давно наблюдаю за Иваном и его крутым проектом про психологию и тут, неожиданно, оказалось, что им нужен part-time junior разработчик. Why not?
Зачем нужен персональный бренд?

Для чего это нужно?
Личный бренд позволяет не проходить собеседования, а приходить работать над интересными тебе проектами по знакомствую
Личный бренд позволяет тебе получать больше компенсацию в деньгах.
И еще кучу всякого разного.
Лучшее из того, что я видел и слышал за последнее время на эту тему - доклад Баруха Садогурский на последнем Mobius.

https://www.youtube.com/watch?v=sEexbEv2iGc

#пятничныйYoutube
Щедрость от организаций конференций

Обычно таких подборок приходится ждать полгода+, но раз карантин, то Конференции Олега Бунина пошли на встречу и выложили записи последних 6 конференций, в том числе TeamLeadConf++ 2020.
Самое время подсмотреть для себя что-нибудь интересное

https://habr.com/ru/company/oleg-bunin/blog/497154/
Теперь я - тимлид, но почему мне так плохо?

Мой техлид говорит прекрасную фразу: "Нужен баланс в сложности задач и плавный рост, а не взрывное быстрое повышение до уровня некомпетентности". Очень много ребят рвутся скорей стать сеньорами и тимлидами, упуская возможность планомерного погружения в технологии, системный и архитектурный анализ.
Знаете, кто самый опасный на дороге? Водитель со стажем 1 год. Ему уже кажется, что он Шумахер, а на деле он еще и не побывал в большинстве ситуаций. Тоже самое с тимлидством и сеньорством: чтобы стать сеньором, нужно покодить всякий говнокод, понять почему он такой хреновый, обжечься об свой код на рефакторинге, вот это все.

- Как тебе этот кандидат?
- Выглядит как человек, который видел всякое дерьмо. Нам такие подходят.


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

Поэтому как говорят в анекдотах: "Мы спустимся медленно и возьмем все стадо"

#пятничныйYoutube

https://www.youtube.com/watch?v=7fnY8WVtElY
— Расскажите про Continuous Integration?
— Знаете, я эти времена английского ещё со школы не помню.
#НамДжунаБы

А вот прекрасная возможность начать свою карьеру в Data Engineering. SQL + Python, а HDFS можно догнать на курсе у Stepik https://stepik.org/course/150/syllabus

Ссылка на вакансию: https://hh.ru/vacancy/36724664
Forwarded from Mikhail Kumachev
Друзья!

4 мая в 18:00 MSK состоится наш второй митап сообщества DE or DIE.
В сложившейся мировой ситуации мы проведем мероприятие онлайн. Да, нам тоже будет не хватать живого общения, но зато в этот раз точно не будет ограничения по билетам и привязки к конкретной локации.

Узнать программу мероприятия и зарегистрироваться можно по ссылке: https://deordie.timepad.ru/event/1303716/
За час до мероприятия мы пришлем ссылку на трансляцию.

May the Fourth be with you!
Периодическая таблица инструментов DevOps

Если вы, как и я, вечно интересуетесь чем-то новым, то вот для вас интересный инструментарий: периодическая таблица DevOps инструментов. Как ее можно использовать? Смотрим на категорию и выбираем, какой-нибуд инструмент. Читаем его описание и назначение, смотрим применимость и пользу в своем продукте. Можно найти что-нибудь интересное, в том числе для дата инженера, например, управление БД и миграциями.

https://xebialabs.com/periodic-table-of-devops-tools/
Postgres. С чего начать?

Для тех, кто хочет стать Data Engineer, важно потрогать своими собственными руками Postgres, как самую распространенную СУБД. Как при этом не потеряться в UI какого-нибудь редактора в стиле Data Grip и при этом получить навыки как работы, так и администрирования?

https://learn.crunchydata.com/

Советую попробовать интерактивный курс PostgresQL for Application Developers. Просто и понятно .
Внимание, это не реклама, это бесплатно. Правда, на английском языке. Но это вас же не остановит?)😁
Продолжаем про БД

В прошлый раз кидал вам ссылку на туториал по Postgers, то в этот раз хорошая и простая лекция из Школы Бэкенд разработки Яндекс про базы данных: какие бывают, что такое нормализация и денормализация, как работает b-tree индекс и вот это все. Совсем не хардкорно и просто для понимания. За часик разжуют основы.

https://www.youtube.com/watch?v=YjSIdz8DnAo
#НамДжунаБы
Позиция: Junior / Middle ETL developer в WildBerries
Вилка: 60 000 - 120 000 рублей

Чем предстоит заниматься:
- Разрабатывать процессы по автоматическому сбору, обработке и очистке данных и их загрузке в хранилищ
- Обеспечивать качество данных в хранилище
- Проектировать модели и структуры Хранилища Данных и витрин
- Проектировать потоки загрузки / трансформации данных

Что для нас важно:
- Понимаете принципы работы Airflow
- Уверенные знания SQL, навыки чтения планов запросов
- Умение и желание решать технические проблемы
- Желание совершенствовать свои навыки и способности
- Понимание важности документирования проделанной работы

Что кроме зарплаты:
- Бесплатное безлимитное питание в офисе (контейнеры, фрукты, кофе машины, автоматы)
- Большие скидки на продукцию компании + кешбек ~20% - 30%
- Возможность отложенной покупки
- Поездки команд в Европу и по России - "отдохнуть и поработать" (последние локации были Кипр и Сочи)
- Спортивные мероприятия (футбол, волейбол, йога)
- Скидки на английский (онлайн и с преподавателем в офисе) и в фитнес-клубы рядом с офисом
- Широкий пакет плюшек для детей сотрудников: подарки на праздники, детские корпоративы в офисе, курсы для детей по ИТи т.д.)
- Скидка на паркинг 30% (в районе 5300 получается со скидкой)
- Железо на выбор (Mac, iMaс, PC)

Контакт для связи: @avelestat
#НамДжунаБы

Есть возможность 1) на удаленке 2) part-time 3) небольшие требования 4) даже платят поработать DE. Далее по тексту:

Мы в xO Analytics ищем data engineer на разработку аналитического продукта. Продукт обеспечивает клиентам понятные им ответы на вопросы о состоянии дел в их компании для того, чтобы принимать управленческие решения на основании этих ответов. Наша фишка в том, что у нас есть несколько своих компаний и выработанные подходы к работе с ними, поэтому мы знаем что нужно для управления бизнесом и как на основании этого принимать решения. Клиенты - венчурные фонды и их портфельные компании. Сейчас фокусируемся на рынке US.
Работаем с данными о движении средств по счетам, маркетинговыми показателями, данными о поведении пользователей, складскими остатками. У нас есть понимание того, что нужно получить и какова логика обработки данных. И мы уже реализуем эти алгоритмы. Но мы хотим двигаться быстрее, поэтому ищем ещё одну голову и пару рук, которые ускорят развитие нашей аналитической системы.
Требования:
- навык работы с данными на языке Python
- опыт работы большими объемами и сложными структурами данных
- готовность выделять минимум 4 часа в день на работу над проектом
Зарплата: от 20 до 40 тысяч рублей в зависимости от опыта и вовлечения.


Контакт: @antonkatkov
Разница между вертикальным и горизонтальным масштабированием...
Вредные советы 9. Как не надо сравнивать с True

Продолжая прошлый разговор про сравнения (тогда было про None), в этот раз говорим про True. Практически в любом языке программирования есть этот антипаттерн.

Антипаттерн
Как не надо сравнивать с True:

flag = True
if flag == True:
print("Вот так делать не надо!")


А как надо?
Тут есть два пути. Во-первых, обратите внимание на документацию Питончика:
In the context of Boolean operations, and also when expressions are used by control flow statements, the following values are interpreted as false: False, None, numeric zero of all types, and empty strings and containers (including strings, tuples, lists, dictionaries, sets and frozensets). All other values are interpreted as true. User-defined objects can customize their truth value by providing a __bool() method__

Что же это значит? А значит что для любого не из списка (False, None, нуля во всех числовых типах и пустых строках) выражение if flag: будет равно True.

Есть еще и другой вариант, но он похуже. Используется, когда вам нужно отличить True от другие True-like значений. Выглядит он как if flag is True:

#ВредныеСоветы