[Из песочницы] Как мы отранжировали девять миллионов разработчиков на Github
Источник изображения: beta.gitlance.net/top/javascript
Оценивая разработчика ПО в качестве потенциального партнера, работника или подрядчика, многим доводилось в какой-то момент потратить время на копание в его репозиториях на Github, пытаясь понять, что за проекты тот пишет и какого качества у него код. Это занятие малоэффективно, к тому же еще сопряжено с определенными трудностями как оценивание степени вклада разработчика в тот или иной репозиторий, качества его кода; можно гадать о том, действительно ли это его код, и так далее.
Разработчикам же, со своей стороны, трудно преподнести свой талант в доступной и наглядной форме. Многие в итоге создают собственные веб-сайты с перечислением интересных проектов, в которых участвовали или сами являются их авторами, что, конечно, дает результат, но тоже с переменным успехом.
Мы же верим, что есть способ получше, и именно поэтому создали GitLance. По сути своей, коммиты в Git подобно бухгалтерской книге надежно фиксируют вклад каждого из участников, а на Github находится огромное множество публичных репозиториев Git вместе с их разработчиками, а также сравнимое количество их взаимных оценок в виде звёздочек на репозиториях и форков, идущих от них. Так почему бы не воспользоваться этим для генерации кодового графа?
Это и представляет собой основу GitLance: кодовый граф из более чем 500 миллионов коммитов и звездочек от более чем 9 миллионов разработчиков по 39 миллионам репозиториев на более чем 350 разных языках программирования. Поскольку отдельные коммиты могут появляться в нескольких репозиториях (в частности, в их форках) и содержать в себе более одного файла (а, значит, и языка программирования), то на выходе получается довольно большой граф: около 15 миллиардов ребер в несжатом виде, плюс-минус миллиард или два.
Если кому любопытно, то граф целиком загружается в память, а сам хранится на шардах с базой данных MongoDB. Наш проект написан на Go, а алгоритм оценки по сути похож на PageRank, с репозиториями и пользователями как основными типами вершин, а рёбра в нем определяются коммитами, звездочками и форками.
В конечном счете, все сводится примерно к 23 миллионам рейтингов по языкам программирования, из которых мы и вывели те самые рейтинги программистов. На сегодняшний день, мировой ТОП-200 лучших JavaScript-разработчиков доступен по адресу: beta.gitlance.net/top/javascript. Если вас нет в этом списке, то можете ввести свой логин Github в поиск и посмотреть на какой позиции находитесь вы.
GitLance существует для того, чтобы привлечь внимание и дать признание талантам и вкладам лучших мировых разработчиков. Мы будем выпускать ТОП-списки и для других языков программирования в ближайшие дни и недели, а также разные фичи, в том числе личные профили разработчиков, и со временем появится фриланс-биржа профессионалов высшего класса. Оставайтесь на связи!
Послесловие переводчика
Несмотря на то, что в оригинальной статье не раскрыты потенциально интересные для технической аудитории детали, на мой взгляд, сам продукт получился весьма любопытным и, возможно, одним из первых в своем роде, потому я решил собрать и перевести ту немногую информацию, что о нем есть.
Если же вы до этого слышали о подобных проектах, занимающихся выведением критериев «программист X лучше программиста Y» на основе разной статистики, поделитесь в комментариях, пожалуйста. Также интересно, что вы думаете об этом направлении анализа? Может ли автоматизированный анализ профессиональных навыков стать в рекрутинге чем-то самим собой разумеющимся, и не будет ли от этого больше вреда, чем пользы?
В любом случае, GitLance представляет лишь одну из возможных систем оценок профессионализма разработчика, и пока что очень ограниченную — анализируется популярность ваших продуктов с открытым исходным кодом среди других разработчиков. Чем это может быть для вас: очередным ненужным продуктом, линейкой для замеров достоинства несомненно, профессионального у себя и у коллег, либо инструментом мониторинга широкой известности в узких кругах — тут уже решать вам.
P. S. По личным наблюдениям, данные там обновляются около раза в месяц, так что иной раз туда можно наведываться за свежими рейтингами.
Оригинал статьи
Комментарии (7)
8 марта 2017 в 11:40
0↑
↓
Теперь кроме строчек кода (LOC) в процессе работы нас HR будут мерить по GitLance до найма за деньги работодателей…8 марта 2017 в 11:50
+2↑
↓
Это неплохая метрика, но не идеальная. Есть очень крепкие разработчики, которые просто не пишут в open source — другое хобби, частный проект, просто не пользуются гитхабом:)
8 марта 2017 в 12:01
+2↑
↓
Пролистал первую сотню, встретил DmitryBaranovskiy на 87 месте. Так держать!8 марта 2017 в 12:39
0↑
↓
Это, конечно, приятно, но пролистав ту же сотню без удивления обнаружил многие несоответствия. Это как по рейтингу певцов оценивать их голосовые данные. Популярность песен и уровень вокала совсем не обязательно находятся в зависимости.Если твоя песня называется React, то знать что такое замыкание не обязательно.
8 марта 2017 в 12:26 (комментарий был изменён)
+1↑
↓
Такие рейтинги бессмысленны, т.к. обычно приходится сравнивать не XXX с TJ, а XXX и YYY которые в хвостике. И вот подобные рейтинги не гаратируют ничего. А то что TJ крутой ноджсер, итак все знают.
1. TJ .... 9900. XXX 10000. YYY
8 марта 2017 в 12:39
+1↑
↓
Посмотрел код нескольких, случайным образом, выбранных программистов… рад, что они в ТОПе, но работу я бы им ни за что не дал.
Вообще этот гитхаб все краски перемешал: реально крутые ребята зачастую выглядят в глазах HR никем из-за того, что не «прописались» на гитхабе, не делают по сто коммитов (коммиты ради коммитов), потому что тупо посвящяют себя работе, а не пиару.
8 марта 2017 в 12:59
0↑
↓
Cтартапы, новые клевые идеи и все такое это конечно прекрасно, но подобных рейтинговые проекты не должны выйти в массы, потому что тогда и так хромающая объективность HR будет ориентироваться еще и на эти субъективные ранжирования. Сами же рубите сук, на котором сидите.