Цель нового исследования-изучить, как навыки разработчиков программного обеспечения меняются с течением времени. Растет ли опыт программирования, плато или начинает снижаться? Ответ довольно неожиданный.
Новое исследование, проведенное Университетом штата Северная Каролина, показывает, что знания и навыки программистов со временем улучшаются и что пожилые программисты знают столько же (или больше), чем молодые, о современных программных платформах.
Авторы Патрик Моррисон и Эмерсон Мерфи-Хилл из Университета штата Северная Каролина в тезисе доклада, который будет представлен 18 мая на 10-й Рабочей конференции по репозиториям программного обеспечения для майнинга:
Существует множество мнений по этому вопросу, но многие, похоже, считают, что старение приводит к снижению принятия и усвоения новых знаний по программированию.
Исследование, направленное на проверку восприятия того, что старые программисты не в состоянии идти в ногу с быстро меняющимися технологиями, включало изучение профилей более 80 000 программистов на StackOverflow и сравнение их оценок репутации, что является отражением качества их ответов на вопросы и, следовательно, их знаний в области программирования.
Эта цифра из статьи Связана Ли Знание Программирования С Возрастом? показывает, как репутация увеличивается с возрастом, по крайней мере, до 40 лет программиста:
Затем исследователи изучили количество различных предметов, которые пользователи задавали и отвечали на вопросы, и обнаружили, что пожилые программисты демонстрируют широту знаний по сравнению с молодыми, причем диапазон предметов неуклонно увеличивается в течение 30 лет и в начале 50-х годов.
Конкретный вопрос, на который исследование хотело ответить, в какой степени старые программисты изучают новые технологии.
Исследователи выдвинули гипотезу:
Если старые программисты изучают новые технологии, мы можем ожидать, что у них будут такие же или более высокие оценки ответов, как у молодых программистов для этих технологий. Чтобы проверить это понятие, мы группируем программистов как «старых» и «молодых» программистов и применяем односторонний т-тест Уэлча с двумя выборками для набора новых технологий.
Для этого теста «старшими программистами» были люди в возрасте 37 лет и старше, а предварительно выбранными тегами для «новых технологий» были clojure, django, git, ios, jquery, linq, mongodb, ruby-on-rails, silverlight и windows-phone-7.
Два из них оказались статистически значимыми, ios и windows-phone-7. И авторы комментируют:
Они могут указывать на места, где знание старых технологий, например, 20-летней основы Objective-C «ios», дает старым программистам преимущество.
Это вполне может быть правдой, но обратите внимание на то, как количество тегов уменьшается примерно до 25 — предположительно, это означает, что программисты изначально специализируются и хотят быть на вершине небольшого круга тем. После 25 лет кажется, что программисты распространяют свои таланты на более широкий круг тем. Может ли это быть веком разочарования — когда единственная истинная технология не дает результатов, и они начинают искать альтернативы?
Если вы посмотрите на графики более внимательно, то увидите более интересную историю. Первая диаграмма показывает очень большое увеличение дисперсии примерно в 45 лет. До этого возраста дисперсия невелика и лежит вокруг линии регрессии, которая указывает на резкое увеличение репутации. Вы могли бы почти назвать период с 20 по 45 «управляемым» периодом, когда все яростно конкурируют за репутацию и накапливают ее, как подобает их возрасту и статусу.
Что происходит в 45 лет?
Это как если бы вся динамика изменилась. Вы можете видеть это очень ясно на первом графике, и это все еще видно на втором.
Может ли быть так, что после 45 лет наступает старость, и зрелость, которую она приносит, означает, что программисты не так стремятся получить репутацию? Это хорошая идея, что часть программистов просто теряют стремление накапливать репу.
Что не вызывает сомнений, судя по обеим диаграммам. разве что что — то происходит примерно в 25 и в 45 лет-что именно заслуживает большего изучения.