Программируете ли вы по вечерам? Или, может быть, даже ночью?

Программирование для меня хобби, а еще я немного сова, поэтому часто пишу код после рабочего дня и, бывает, засиживаюсь за полночь. И в любое время суток, столкнувшись с багом, я иду на Stack Overflow.

Это означает, что данные Stack Overflow могут дать нам представление о том, чем занимаются разработчики, которые пишут код вечером или ночью, и, наоборот, какие языки программирования используются только в течение рабочего дня. В этом посте мы рассмотрим, к каким тегам обращаются читатели в разное время суток, а также сравним данные по крупным городам, чтобы увидеть, как отличается в них рабочее время.



Трафик в течение дня


Для анализа почасовых посещений среди 250 тегов Stack Overflow с наибольшим количеством вопросов я взял отрезок в 4 недели — август 2016 года. Для каждого посещения мы устанавливали часовой пояс на основании IP-адреса и рассчитывали местное время. Этот метод не дает идеальных результатов, но исследование показывает, что в целом он работает.

Я выбрал август просто потому, что он свободен от большинства западных праздников и не затрагивает также учебный год, что помогает учитывать фактор студентов (ведь они могут выполнять домашнее задание по вечерам и использовать другие виды технологий). Я также попытался отдельно проанализировать посещения сайта только из США, и результаты были качественно похожи.

Начнем с простого вопроса: в какое время суток люди посещают Stack Overflow?


Stack Overflow помогает программистам выполнять свою работу, поэтому неудивительно, что пик нашего трафика приходится на рабочие часы: с 9 утра до 5 вечера сайт получает как минимум миллион посещений в час. Вы даже можете заметить спад в 12 часов, когда разработчики отлучаются на обед.

Как я говорил в предыдущем посте, Stack Overflow имеет значительно меньшую посещаемость по выходным дням. Особенно низок трафик по утрам, а вот в обеденное время провала в трафике не наблюдается (на выходных разработчики пользуются возможностью выспаться!). Мы также обратили внимание, что в пятницу трафик ниже, чем в другие будние дни, особенно днем и вечером.

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

Различия между тегами


Мы увидели, в какое время люди просматривают ответы на вопросы на Stack Overflow, но работают ли эти закономерности для программистов, которые используют определенные языки программирования?

Рассмотрим ежедневную тенденцию посещений для четырех популярных языков программирования: C, Python, Javascript и C#. Обратите внимание, что мы берём «процент посещений» для этого тега, так чтобы большие теги можно было сравнить с меньшими.


Мы видим, что общая тенденция схожа по всем языкам: программисты всех типов используют Stack Overflow на работе, идут спать ночью, делают перерыв на обед и так далее. Однако:

  • Программисты на C# начинают и завершают свой день раньше и, как правило, вечером на этом языке пишут меньше (обратите внимание на разницу в активности с другими языками между 6 и 11 вечера). Это может быть связано с тем, что C # часто используется в компаниях по разработке финансового и корпоративного программного обеспечения, где рабочий день обычно начинается раньше и график у работников жёстче.

  • Программисты на C начинают свой день позже, продолжают использовать язык вечером и бодрствуют дольше всех. Это говорит о том, что C, вероятно, особенно популярен среди программистов-любителей, которые пишут код в своё свободное время (или, возможно, среди учащихся летних школ, выполняющих домашнее задание).

  • Python и Javascript находятся где-то посередине: разработчики Python и Javascript начинают и заканчивают свой день немного позже, чем пользователи C#, и немного менее склонны засиживаться по вечерам, чем программисты на C.

Если вы хотите самостоятельно сравнить данные по интересующим вас языкам, мы выложили интерактивное приложение.

Какие языки используются больше всего в промежутке между 9 утра и 5 вечера?


Вышеприведенный рисунок показывает, что одной из самых отличительных особенностей языка является процентное соотношение всего трафика к тому, который поступает в течение рабочего дня, особенно с 9 до 17 часов по местному времени. Из четырех языков на приведенном выше графике C# в наибольшей степени «следует расписанию», а С — в наименьшей.

У каких из 250 наиболее распространенных тегов пик приходился на рабочие часы, а у каких наоборот?


Технологии, которые используются преимущественно в течение рабочего дня, включают в себя многие инструменты от Microsoft, такие как SQL Server, Excel, VBA и Internet Explorer, а также такие технологии, как SVN и Oracle, которые часто используются в компаниях по производству программного обеспечения.

С другой стороны, технологии, применяемые вне рабочего времени, включают веб-фреймворки, например, Firebase, Meteor и Express, а также графические библиотеки, такие как OpenGL и Unity. Функциональный язык Haskell — это тег, наиболее популярный вне рабочего времени: только половина посещений у него приходится на промежуток между 9 утра и 5 вечера.

Вы можете заметить, что многие из этих технологий совпадают с результатами нашего предыдущего анализа на тему того, какие технологии используются в будние и выходные дни, вплоть до того, как Haskell, assembly и OpenGL стали «наиболее часто используемыми в нерабочее время». Похоже, эти два исследования очень близки по сути.

Вместо того, чтобы смотреть на крайности, давайте сравним языки с их относительной частотой трафика.


Мы видим, что из самых популярных технологий программирования на Stack Overflow (более 100 000 посещений в день) C#, SQL, SQL Server и Excel выделяются как преимущественно использующиеся с 9 до 5, в то время как Android, iOS, Swift, Node. JS, C++ и C больше востребованы за пределами рабочего времени.

Мы можем выбрать несколько интересных технологий и представить замеры по ним в виде анимации.


Обратите внимание, что скачок трафика для технологий Microsoft (Excel, VBA, C#) наблюдается по утрам и с девяти до пяти часов они остаются в активной фазе. Затем, около 5 часов вечера, происходит сдвиг в сторону на C / C++, мобильных технологий и особенно Haskell, который к позднему вечеру остаётся один.

Какие технологии используют «жаворонки» и «совы»?


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

Мы можем рассчитать соотношение «утро/день», посчитав относительный трафик между 9 и 12 часами утра и поделив его на трафик между 13 и 16 часами. Таким образом, высокий коэффициент (близкий к единице) означает, что инструмент использовался примерно в равной степени в утреннее и вечернее время, в то время как низкий коэффициент означает, что некоторые разработчики начинали работу попозже.


Мы можем наблюдать корреляцию с метрикой «с девяти до пяти», которую рассматривали раннее. Технологии, которые использовались в основном с девяти до пяти, также оказывались более популярны у «жаворонков». Мне это кажется логичным: разработчики, которые всегда начинают свой рабочий день в 9, чаще заканчивают его около 5 и не продолжают работать весь вечер.

Но это не точная корреляция. Например, давайте рассмотрим три технологии на экстремумах соотношения «утро/день».


Обратите внимание, что SVN и Haskell согласуются с гипотезой, что работники «с 9 до 5», как правило, «жаворонки» и наоборот. SVN сильно сдвинут в сторону с 9 до 5 и особенно высокий трафик наблюдается с 10 до 11 утра, в то время как трафик Haskell возрастает в течение рабочего дня и затем остается высоким в вечернее время. Matplotlib обнаруживает другую тенденцию: у него довольно стандартный коэффициент с 9 до 5, но во второй половине дня он используется гораздо больше, чем утром. Может быть, аналитики на Python просто не способны функционировать по утрам. (Я использую R вместо Python, но разделяю их чувства! Кстати, R тоже более «вечерняя» технология, чем большинство остальных).

Опять же, вы можете посмотреть другие технологии в интерактивном приложении.

Статистика по городам


До сих пор мы сравнивали технологии языков программирования. Но, как мы выяснили в другом посте, также интересно понаблюдать, как трафик на Stack Overflow отличается по разным географическим регионам.

В частности, давайте рассмотрим 50 городов с наибольшим трафиком на Stack Overflow (по данным текущего месяца). В каких городах разработчики обычно посещали сайт с 9 до 5, а в каких — часто заходили в нерабочее время?


Города, в которых придерживались строгого распорядка с 9 до 5, располагаются в основном в Западной Европе: Лондон, Париж, Мадрид, Амстердам. А вот многие из городов, в которых пользователи чаще посещали сайт в нерабочее время, находятся в Восточной Азии (Кесон-Сити, Токио, Сеул) или Восточной Европе (Москва, Киев), а также в калифорнийских городах Лос-Анджелес и Сан-Франциско. Мой родной Нью-Йорк хоть и считается «городом, который никогда не спит», но не отличается повальным программированием в ночное время — и в мировом масштабе, и в США он оказался в районе медианы графика.

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


Лондон и Париж оба показывают большие скачки трафика в течение дня и снижение в вечернее время, по образцу, примерно сопоставимому, например, со средним глобальным посетителем-пользователем C#.

Тенденции двух других городов, возможно, связаны с удалённой работой. Некоторые разработчики в Кесон-Сити могут работать в американских или европейских компаниях и использовать ночные часы для оптимальной организации совместной работы. То же объяснение, вероятно, работает и для Москвы: разработчики, которые сотрудничвают с американскими компаниями, начинают работать позже.

Мое заключительное (и самое любимое) наблюдение состоит в том, что у разработчиков из Парижа самые продолжительные и стабильные обеденные перерывы. Что ж, если бы я жил в Париже, я бы последовал их примеру.

Заключение


Этот анализ того, в какое время разработчики посещают Stack Overflow, показывает, насколько полезными могут быть данные по трафику, будь то различия в географии или различия по языкам программирования. Мы, команда Stack Overflow, используем данные трафика именно для того, чтобы отвечать на вопросы клиентов, принимающих важные бизнес-решения. Просмотрите статистику Stack Overflow, чтобы узнать, как мы можем использовать полученные данные, чтобы помочь вам принимать более взвешенные решения.
Поделиться с друзьями
-->

Комментарии (6)


  1. AlexMal
    28.04.2017 13:08

    Сразу видно, что на Haskell пишут фанатики, для которых программирование не просто работа, а жизнь.
    Респект таким.


    1. saw_tooth
      28.04.2017 21:29
      +2

      Просто ночью хочется, как никогда, приобщиться к запретному


  1. EndUser
    28.04.2017 15:28
    +3

    Чем-то напоминает https://habrahabr.ru/post/327026/


    1. YourChief
      29.04.2017 11:06

      Оно и есть, на тех же данных. Чукча не читатель, чукча писатель.


  1. Im1x
    30.04.2017 14:36
    +1

    Так, вроде, было же https://habrahabr.ru/post/327026/


  1. GLMichael
    30.04.2017 14:36

    видно что в Москве многие обедают за рабочим столом :)