Согласно закону Беттериджа, скорее всего, нет. Но давайте проверим данные и посмотрим, что мы можем найти.

В моем курсе по науке о данных от Udacity нас попросили использовать процесс CRISP-DM для изучения набора данных, задать некоторые вопросы, на которые, как мы думали, может ответить набор данных, и посмотреть, что нам говорят данные.

Первым шагом в CRISP-DM является «Бизнес-понимание». Хотя я работаю на федеральное правительство, и «понимание бизнеса» не совсем означает то же самое, что и в частном секторе, я хотел бы думать, что мой бизнес — это государственная политика, и что я постараюсь ответить на вопросы, которые может дать мне представление о государственной политике.

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

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

Я думал, что эти результаты были интересными, но они вызвали у меня больше вопросов, чем ответов. Мы знаем, что респонденты рекомендовали, но действительно ли менее формальные методы обучения привели к более высоким зарплатам (или большему «успеху») среди респондентов? А как насчет людей из менее обеспеченных групп?

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

Зарплата и образование

Поскольку в моем вопросе большое внимание уделяется образованию, я хотел сначала подтвердить, существует ли, как и ожидалось, тенденция к повышению заработной платы с повышением уровня образования. Хотя обычно вы можете предположить, что это так, мой собственный опыт показывает, что ученая степень (даже инженерная) — это не совсем то, чем они должны быть.

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

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

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

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

Преимущества поколений

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

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

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

Это не слишком удивительно, но мне было любопытно посмотреть, сохраняются ли одни и те же тенденции как в развивающемся, так и в развитом мире. Я использовал членство в Организации экономического сотрудничества и развития (ОЭСР) в качестве суррогата развитости — хотя оно и не идеально, я думаю, что оно довольно точно отражает общий уровень развития страны.

После того, как набор данных был разбит по членству в ОЭСР и сгруппирован по уровню образования родителей, я рассмотрел нормализованную меру того, насколько средняя зарплата каждой подгруппы отличается от средней зарплаты всей группы (ОЭСР или не ОЭСР).

Для развитых стран вообще лучше родиться от родителей с каким-то высшим образованием — хотя прямой зависимости по-прежнему нет.

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

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

Ниже приведен результат для данных по странам ОЭСР. Вы можете видеть, что вне зависимости от уровня образования респондента, заработная плата ниже средней по ОЭСР, если родители респондента не имели высшего образования.

Это интересно само по себе, но я думаю, что это еще более интересно по сравнению с результатами из развивающихся стран:

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

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

Х-фактор

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

Поскольку высшее образование явно играет важную роль в зарплате, я решил более подробно рассмотреть зарплату в разбивке по специальностям бакалавриата:

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

Важно отметить, что это, вероятно, довольно самостоятельный выбор — все респонденты опроса StackOverflow либо пытаются стать разработчиками, либо уже являются разработчиками, поэтому мы, вероятно, лишь мельком видим этих людей, не связанных с компьютерными науками. которые наиболее успешны в качестве разработчиков. Тем не менее, это показывает, что целеустремленные люди без технических степеней все еще могут быть очень успешными программистами, и, возможно, даже более успешными, чем разработчики со степенью в области компьютерных наук. В определенной степени это подтверждает выводы Джоша с другой точки зрения.

Эта общая тенденция подтверждается во множестве других ответов на опросы:

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

Собираем все вместе

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