Это с определенной точки зрения «священная война» среди разработчиков программного обеспечения, эта тема стала предметом множества дебатов и шуток. Я использую пробелы и никогда не задумывался о важности этого момента. Но сегодня мы публикуем исходные данные опроса разработчиков Stack Overflow 2017 и некоторые аналитики считают, что этот выбор имеет большее значение, чем я ожидал.
Пробелы приносят больше денег чем табы
Было опрошено 28 657 респондентов, которые выразили свое предпочтение табам или пробелам и считали себя профессиональным разработчиками (ученики и бывшие программисты не учитывались). В этой группе 40,7% используют табы и 41,8% пробелы (17,5% используют оба метода). Из них 12 426 оставили информацию о своей зарплате.
Анализ данных приводит нас к интересному выводу. Разработчики которые используют пробелы для отступов, зарабатывают больше денег, чем те, кто используют табы, даже если они имеют такой же объем опыта:
Среднестатистический разработчик, который использует пробелы, имеет зарплату в 59 140 долларов, в то время как разработчик использующий табы имеет зарплату в 43 750 долларов. (Обратите внимание, что все результаты были конвертированы в доллары США из валюты респондента). Результаты разработчиков, которые выбрали вариант «Оба», как правило, неотличимы от тех, кто выбрал «Табы».
Это забавный результат, но конечно же он не является итоговым. Когда я впервые это обнаружил, я предположил, что результат может быть другим, если отсортировать по странам или языкам программирования. Например, вполне возможно, что разработчики в странах с низким ВВП на душу населения могут с большей вероятностью использовать табы и поэтому у таких разработчиков, как правило, более низкая заработная плата.
Мы решили узнать, имеет ли место данный эффект в каждой из стран по отдельности. Выбраны страны с наибольшим количеством респондентов участвующих в опросе:
Данный эффект наблюдался в наименьшей степени в Европе, а наибольший разрыв был зафиксирован в Индии, но, тем не менее, он проявляется в каждой стране.
В качестве другой гипотезы мы знаем, что разработчики из разных сфер часто используют разные пробелы (например, разработчики DevOps с большей вероятностью используют пробелы, а мобильные разработчики более вероятно используют табы), часто потому что они используют разные редакторы и языки. Участвующие в опросе, также оставили информацию о том, какие языки программирования они используют (Python, Javascript и т. Д.) и в какой сфере работают (web developer, embedded developer и т. д.).
Как видно выше, данный эффект наблюдается в каждой подгруппе разработчиков. Мы получили аналогичный результат даже при фильтрации разработчиков по странам или по определенному диапазону опыта. Обратите внимание, что респонденты могут выбирать несколько языков, поэтому часть из этих групп накладываются друг на друга.
Я сделал ряд других осмотров возможных причин (таких как уровень образования или размер компании) и увидел те же результаты: пробелы били табы в каждой группе. Теперь, когда исходные данные доступны, я призываю вас проверить возможные факторы самостоятельно.
Если мы проверили все факторы, которые, как мы подозреваем, могли бы повлиять на зарплату, какой эффект в реальности будет иметь выбор табов/пробелов?
Чтобы ответить на этот вопрос, я подхожу к линейной регрессии, прогнозируя зарплату на основе следующих факторов:
Использование пробелов вместо табов приводит к увеличению зарплаты на 8,6% (доверительный интервал (6%, 10,4%), P-значение <10 ^ -10). Иными словами, использование пробелов вместо табов приравнивается дополнительным 2.4 годам опыта.
Итак… это, безусловно, удивительный результат, который я не ожидал увидеть. И это впечатляюще устойчиво даже при сортировке по множеству сегментов. В качестве упражнения я попытался изучить данные по множеству других факторов, упущенных в данной статье, но данный эффект присутствовал везде.
Корреляция не является причинно-следственной связью и мы никогда не можем быть уверены, что мы учли все факторы в наборе данных. Если вы статистик или аналитик, я рекомендую вам загрузить исходные данные опроса и изучить их самостоятельно. Здесь вы найдете код для воспроизведения анализа. В любом случае нам было бы интересно услышать ваши гипотезы.
Пробелы приносят больше денег чем табы
Было опрошено 28 657 респондентов, которые выразили свое предпочтение табам или пробелам и считали себя профессиональным разработчиками (ученики и бывшие программисты не учитывались). В этой группе 40,7% используют табы и 41,8% пробелы (17,5% используют оба метода). Из них 12 426 оставили информацию о своей зарплате.
Анализ данных приводит нас к интересному выводу. Разработчики которые используют пробелы для отступов, зарабатывают больше денег, чем те, кто используют табы, даже если они имеют такой же объем опыта:
Среднестатистический разработчик, который использует пробелы, имеет зарплату в 59 140 долларов, в то время как разработчик использующий табы имеет зарплату в 43 750 долларов. (Обратите внимание, что все результаты были конвертированы в доллары США из валюты респондента). Результаты разработчиков, которые выбрали вариант «Оба», как правило, неотличимы от тех, кто выбрал «Табы».
Это забавный результат, но конечно же он не является итоговым. Когда я впервые это обнаружил, я предположил, что результат может быть другим, если отсортировать по странам или языкам программирования. Например, вполне возможно, что разработчики в странах с низким ВВП на душу населения могут с большей вероятностью использовать табы и поэтому у таких разработчиков, как правило, более низкая заработная плата.
Мы решили узнать, имеет ли место данный эффект в каждой из стран по отдельности. Выбраны страны с наибольшим количеством респондентов участвующих в опросе:
Данный эффект наблюдался в наименьшей степени в Европе, а наибольший разрыв был зафиксирован в Индии, но, тем не менее, он проявляется в каждой стране.
В качестве другой гипотезы мы знаем, что разработчики из разных сфер часто используют разные пробелы (например, разработчики DevOps с большей вероятностью используют пробелы, а мобильные разработчики более вероятно используют табы), часто потому что они используют разные редакторы и языки. Участвующие в опросе, также оставили информацию о том, какие языки программирования они используют (Python, Javascript и т. Д.) и в какой сфере работают (web developer, embedded developer и т. д.).
Как видно выше, данный эффект наблюдается в каждой подгруппе разработчиков. Мы получили аналогичный результат даже при фильтрации разработчиков по странам или по определенному диапазону опыта. Обратите внимание, что респонденты могут выбирать несколько языков, поэтому часть из этих групп накладываются друг на друга.
Я сделал ряд других осмотров возможных причин (таких как уровень образования или размер компании) и увидел те же результаты: пробелы били табы в каждой группе. Теперь, когда исходные данные доступны, я призываю вас проверить возможные факторы самостоятельно.
Если мы проверили все факторы, которые, как мы подозреваем, могли бы повлиять на зарплату, какой эффект в реальности будет иметь выбор табов/пробелов?
Чтобы ответить на этот вопрос, я подхожу к линейной регрессии, прогнозируя зарплату на основе следующих факторов:
- Табы/пробелы
- Страна
- Годы опыта
- Тип разработчика и язык программирования
- Уровень образования (бакалавриат, магистр, докторантура)
- Вносят ли они вклад в открытый исходный код
- Будут ли они программировать в качестве хобби
- Размер компании
Использование пробелов вместо табов приводит к увеличению зарплаты на 8,6% (доверительный интервал (6%, 10,4%), P-значение <10 ^ -10). Иными словами, использование пробелов вместо табов приравнивается дополнительным 2.4 годам опыта.
Заключение
Итак… это, безусловно, удивительный результат, который я не ожидал увидеть. И это впечатляюще устойчиво даже при сортировке по множеству сегментов. В качестве упражнения я попытался изучить данные по множеству других факторов, упущенных в данной статье, но данный эффект присутствовал везде.
Корреляция не является причинно-следственной связью и мы никогда не можем быть уверены, что мы учли все факторы в наборе данных. Если вы статистик или аналитик, я рекомендую вам загрузить исходные данные опроса и изучить их самостоятельно. Здесь вы найдете код для воспроизведения анализа. В любом случае нам было бы интересно услышать ваши гипотезы.
Only registered users can participate in poll. Log in, please.
Какой способ создания отступов вы предпочитаете?
45.08% Табуляция229
43.5% Пробелы221
11.42% Оба58
508 users voted. 67 users abstained.