Вот вам проект: ставим на комп специальную программу, которая будет следить за тем, на что вы отвлекаетесь от работы. И потом рисуем красивый график, чтобы увидеть это и сильно удивиться.
График будет примерно такой. Его можно будет настроить по вкусу:
Идея и предыстория
Рассказывает Максим Ильяхов, главред «Кинжала».
У меня однажды на целый час отключился интернет. И за этот час я переделал больше дел, чем за весь следующий день. Оказалось, что причина бешеной продуктивности — отсутствие Ютуба и активного Телеграма.
Дальше у меня возникли вопросы:
- Есть ли связь между тем, как часто я отвлекаюсь на Ютуб, и временем суток?
- А с днём недели?
- Когда у меня самые продуктивные часы?
- Сколько я реально провожу времени за работой, а сколько отвлекаюсь?
Что-то из этого можно посмотреть в программе RescueTime, но непонятно, как за неё сейчас платить. Ну и хотелось своё, чтобы можно было как угодно настроить и докрутить.
Я пошёл в «Практикум» за помощью. Меня познакомили с экспертом курса «Визуализация данных и введение в BI-инструменты» Таней Цвировой. Она написала код, который превращает сырые данные в полезную визуализацию. Сейчас я вам покажу, как этим пользоваться.
Зачем это?
Три цели:
- Стать продуктивнее.
- Ощутить кайф визуализации собственных данных.
- Лишний раз прорекламировать вам курсы про анализ данных и визуализацию.
Про рекламу курсов серьёзно: «Кинжал» существует благодаря людям, которые учатся в «Практикуме». Если тема визуализации и анализа вам интересна, посмотрите на эти курсы.
Видео для наглядности
Если не хотите читать статью, вот видеоинструкция. Приключение на 20 минут, русское, с разговорами:
Общий план
Вот общий план того, что надо сделать:
- Установите программу ActivityWatch.
- Дайте ей поработать несколько дней или недель. Она будет собирать данные.
- Экспортируйте сырые данные из ActivityWatch в формате CSV.
- Заходите в «Гугл-колаб»: https://colab.research.google.com.
- Импортируйте ваш файлик csv.
- Прогоните части кода про библиотеки и анализ исходного файла.
- В середине кода настройте названия приложений, которые вы считаете рабочими и нерабочими; укажите, что будет какого цвета.
- Прогоните остальной код и получите визуализацию.
- Если что-то получилось коряво, возвращаетесь на предыдущие шаги в коде и выполняете их заново.
Установка ActivityWatch и встроенные средства визуализации
ActivityWatch — это простой открытый тайм-трекер. Скачивается тут: https://activitywatch.net/. Программа сидит в фоне и собирает статистику, что у вас открыто, какие вкладки на переднем плане и сколько времени вы проводите за компьютером.
Программа умеет показывать вашу продуктивность за какой-то промежуток времени, но не слишком удобно. Например, вот моя разбивка продуктивности с начала июля. Не слишком информативно. Мы будем делать свою визуализацию.
Экспорт сырых данных для визуализации
Мы выгрузим сырые данные из ActivityWatch в формате CSV. Это делается на экране Raw Data (кнопка вверху справа). Из того, что там представлено, нам нужна только первая строка с ключевыми словами watcher-window:
Получившийся файлик сохраните с каким-то простым названием, чтобы потом не путаться. У меня так:
«Гугл-колаб»: проверяем, что всё работает
Дальше нужно зайти в Google Colab, который нам написала Таня из Практикума. Colab — это среда разработки, которую можно использовать прямо в браузере. Сейчас мы будем исполнять в колабе код на языке Python — на нём пишут программы для анализа данных, визуализации, нейросетей и много другого.
Когда зайдёте в Colab, найдите слева вкладку «Файлы» и загрузите туда свой csv-файлик.
Теперь нужно по очереди запустить ячейки с кодом, который делает разные вещи. Что именно он делает — написано зелёненьким. Чтобы запустить кусок кода, жмите на треугольный значок Run.
На очередном этапе вам нужно будет ввести название своего csv-файлика. Вводите и запускайте:
Теперь запустите все остальные ячейки, чтобы получить хоть какую-то визуализацию в конце. Так мы убедимся, что всё работает.
Настройка визуализации
Мы проверили, что всё работает. Теперь настроим, чтобы визуализация была нам полезной. Для этого:
- Найдите ячейку «Функция для категоризации приложений». Проверьте, что там в нужные категории записаны ваши рабочие и развлекательные программы. Если нужно, скопируйте нужные программы из списка сразу над этой ячейкой.
- То же самое с ячейкой «Функция для категоризации заголовков браузера». Проверьте, чтобы YouTube был написан с заглавными буквами. Названия вкладок разделяйте вертикальной чертой |, как в примере
- В разделе «Задаём цвета для категорий» распишите, что каким цветом красить
Когда всё вписали, заново выполните все ячейки. Если что-то сломалось, откатите изменения. В результате ваша визуализация станет более полезной за счёт детализации и цветового кодирования.
Если захотите вывести не только числа месяца, но и дни недели, замените одну строку и выполните код заново.
Было: число и месяц. data['yticks'] = pd.to_datetime(data['timestamp']).apply(lambda x: (f'{x.day} {x.month_name()}'))
Стало: число, месяц и день недели. data['yticks'] = pd.to_datetime(data['timestamp']).apply(lambda x: (f'{x.day} {x.strftime("%B")} {x.strftime("%A")}'))
Как на это смотреть
В своём случае я хотел узнать, где у меня больше всего Ютуба, на который я отвлекаюсь. Это у меня выводится красным. Видно, что самые обширные красные области у меня по вечерам, а самое продуктивное время — по утрам.
Видны дни, когда я засиделся до ночи. А ночью надо спать, а то буду жирным.
Видно время, когда я постоянно переключался с Телеграма на работу и обратно. Это может быть хорошо, а может быть признаком постоянного отвлечения. Ну и вообще хорошо видно, когда меня дёргают, а когда удаётся спокойно поработать безотрывно.
По-хорошему нужно набрать побольше данных — например за месяц-полтора. И это должны быть данные со всех рабочих компьютеров, собранные в одном файле.
Про обучение, работу и карьеру в этой сфере
Вообще это дико интересно — как из сырых данных можно получать знания и делать выводы. Это нужный навык для компаний и хорошая карьера, если вас зажигает магия визуализаций. Посмотрите вот эти курсы:
- Основы анализа на Python — полностью бесплатный навыковый курс для тех, кто хочет попробовать Python с нуля.
- Аналитик данных — длинный курс, профессия с нуля, старт бесплатно, помощь в трудоустройстве
- Визуализация данных — короткий навыковый курс, тоже с нуля, старт бесплатно, потом карьерный центр.
В «Практикум» нужно идти за четырьмя вещами: тренажёрами, практикой, наставниками и сообществом.
Тренажёры — это интерактивные песочницы типа «Гугл-колаб»: там можно сразу писать код и видеть результат.
Практика — это вы выполняете задания, а не только смотрите лекции. Лекций в «Практикуме» нет вообще, есть только интерактивные объяснения.
Наставники помогают преодолеть сложности: когда общаешься с живым человеком, это намного эффективнее, чем просто сидение перед экраном.
Сообщество — это ваш поток студентов, которые проходят курс параллельно с вами и поддерживают друг друга.
У всех платных курсов есть бесплатный старт, чтобы понять, ваше это или нет. И есть прямо конкретно бесплатные курсы. Инджой.
А сколько получают аналитики и датавизы — вы и так знаете.