Как мы отранжировали девять миллионов разработчиков на Github

beta.gitlance.net/top/javascript


Источник изображения: 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. По личным наблюдениям, данные там обновляются около раза в месяц, так что иной раз туда можно наведываться за свежими рейтингами.


Оригинал статьи

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 36

    +2
    Теперь кроме строчек кода (LOC) в процессе работы нас HR будут мерить по GitLance до найма за деньги работодателей…
      +7

      Это неплохая метрика, но не идеальная. Есть очень крепкие разработчики, которые просто не пишут в open source — другое хобби, частный проект, просто не пользуются гитхабом:)

        –35

        Отмаза просто гениальная: "Я хорошие программист. Но работу свою не покажу. А если вы не верите или критикуете меня, то вы…! Я скозал!" Вы пытаетесь заставить людей играть по своим правилам. И недовольны, когда вам предлагают играть по своим. Лицемерие выше крыши. Ну ок, в таком случае будете получать тестовое задание "Закодить за 4 часа без ошибок". Хотели войну? Воюйте до конца.

          +4

          Вот как весна, так хоть блокируй себе хабр. Дорогое НЛО, удали, пожалуйста мой коммент и всю ветку.

            +3

            Войну это тут вы себе надумали. До конца еще воевать… что за мода?


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


            Лично забраковываю 90% предлагаемого в проекты опенсурса. Причина номер один: низкое качество. Причина номер 2: низкое качество. Причина номер 3: низкое качество.

              0
              «Приходите на пляж, а там станки, станки...»
              Данный рейтинг показывает не просто программистов, а программистов, имеющих программирование в качестве хобби. Это не делает их лучшими из лучших, просто позволяет заранее понять стоит/не стоит приглашать его на интервью.
              0
              Угу, а некоторые в битбакет коммитят. Боюсь, что идеальную метрику в принципе нельзя создать и поддерживать актуальной. А ранжирование по гитхабу дает неплохой охват.
                0
                Кодить за бесплатно вообще такое себе удовольствие.
                  +1

                  Я и говорю — разные у людей хобби.

                +2
                Пролистал первую сотню, встретил DmitryBaranovskiy на 87 месте. Так держать!
                  +13
                  Это, конечно, приятно, но пролистав ту же сотню без удивления обнаружил многие несоответствия. Это как по рейтингу певцов оценивать их голосовые данные. Популярность песен и уровень вокала совсем не обязательно находятся в зависимости.

                  Если твоя песня называется React, то знать что такое замыкание не обязательно.
                  +3

                  Такие рейтинги бессмысленны, т.к. обычно приходится сравнивать не XXX с TJ, а XXX и YYY которые в хвостике. И вот подобные рейтинги не гаратируют ничего. А то что TJ крутой ноджсер, итак все знают.


                  1. TJ
                  ....
                  9900. XXX
                  10000. YYY
                  0

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


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

                    0
                    но работу я бы им ни за что не дал.

                    Представил как tj или substack умоляют вас дать им работу… :)

                      0

                      Речь не шла о TJ. Но даже если бы и о нём: вы действительно думаете, что клиент платит за то, что кто-то там где-то там звезда?

                    +2
                    Cтартапы, новые клевые идеи и все такое это конечно прекрасно, но подобных рейтинговые проекты не должны выйти в массы, потому что тогда и так хромающая объективность HR будет ориентироваться еще и на эти субъективные ранжирования. Сами же рубите сук, на котором сидите.
                      +4
                      «Общество, в котором нет цветовой дифференциации штанов, лишено цели» — цитата
                        +5
                        Простите, но как могло получиться, что 11ая позиция досталась человеку с четыремя репозиториями, и все не про JS?
                          +3

                          Проплатил, стопудово. Исходники то этого gitlance не на github, перепроверить то нереально. Вообще все эти рейтинги — такая большая область для коррупции.

                            +4
                            Простите, но как могло получиться, что 11ая позиция досталась человеку с четыремя репозиториями, и все не про JS?

                            У него в followers много JS девелоперов. Видимо вся суть рейтинга (аля pagerank) берем все followers, берем их star в JS проектах, суммируем и получаем рейтинг разработчика. То есть по сути рейтинг разработчика строиться на основе дружеских связей, есть куча приятелей-звезд в opensource и у тебя будет высокий рейтинг.


                            человеку с четыремя репозиториями

                            Ладно 4 репозитория, у него со всех репозиториев 1 star и 1 fork. И в другие репозитории нет коммитов.


                            P.S. Вывод — В целом, рейтинг ерунда и накручивается легко за счет друзей и знакомых.

                              0
                              рейтинг высчитывается на основе «раскрученности» фолловеров. как вы «легко» уговорите раскрученные аккаунты подписаться на вас? у вас в друзьях вся первая десятка со списка?
                                0
                                рейтинг высчитывается на основе «раскрученности» фолловеров. как вы «легко» уговорите раскрученные аккаунты подписаться на вас?

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


                                Как-то же человек с 1 звездой во всех репозиториях получил 76 фоловеров.

                                  0
                                  У меня фолловеров в разы больше, чем звезд. А если посчитать, сколько у меня было фолловеров (то есть люди подписываются и отписываются с течением времени), то порядка 20 человек наверное наберется.
                                  Звезда на репозитории — это интересный реп/полезный реп.
                                  Фолловер — значит человек надеется увидеть что-то новое и полезное для себя в списке репов со временем.
                            +1
                            Надеялся что тут будет подробно раскрыт механизм ранжирования и подсчет рейтингов, а тут общие слова и в основном реклама сервиса, жаль что прочитал
                            +1
                            Для всех остальных ЯПов этот сервис пока не работает? Попробовал python / vb (да, вот такой вот я), говорит, пока нет данных. При попытке вбить php там все ломается)
                              0
                              В целом, подсчеты по другим ЯП у них уже есть (их можно увидеть в JSON API), но публичный доступ к ним организация пока не предоставляет. Сдается мне, что адекватность и точность выдачи там порядком ниже, чем для JS, и они хотят позаниматься тюнингом и дополнительной проверкой других ТОП-рейтингов, прежде чем их выкладывать в общий доступ.
                              +3
                              Судя по комментариям к статье, TypeScript (и все подобные компилируемые в JS языки) учитываются отдельно и поэтому не идут в рейтинг, что делает его (этот рейтинг) немного бессмысленным, поскольку любой TS-разработчик — он же JS-разработчик, просто предпочитающий статическую типизацию.
                                +1
                                Вы понимаете что количество звездочек и прочих фидбэков — это оценка вклада (полезности) в сообщество? И качество кода никак не коррелирует с количеством этих самых звездочек.В мире куча крутых программистов с идеальным кодом, которые не выложили в open source ничего, что подняло бы всеобщий хайп.
                                  +1
                                  Просто опишу пару ситуаций из жизни. Поработал с несколькими frontenderami за год и хочу поделиться с вами следующими воспоминаниями.
                                  1) Человек создаёт репозитории решений которые уже есть в достатке и просит своих коллег, друзей лайкать и фоловить.
                                  2) Работаем с человеком и у него множество вкладов в другие репозитории элементарно по той причине что их надо править, косяк на косяке и иногда даже владелец репозитория на 100+ звёзд пишет, что ошибка не у меня, а у сурца который я использую, пишите им. (Коммент выше про качество)
                                  3) Мой товарищ тоже frontend разработчик и как-то я завёл с ним разговор чувак зачем весь этот пиар, что если просто будут фермы и набивать звёздочки и т.д. А он говорит «да нет, ты чего, какая разница много или нет все равно можно посмотреть кто звёздочки ставит и какого уровень вклад и вообще есть ли смысл в том что он сделал»
                                  P.s. вообще к комментам выше присоединяюсь (по поводу может норм разработчик просто в закрытую пишет) и хочу добавить.
                                  В какой момент opensource стал инструментом пиара? Почему к его написанию просто нельзя логически подойти и подумать, а нужно ли это вообще, а не просто «я хочу весь такой разраб клац клац код звёздочки фоловерсы»? Личные наблюдение, что всё это твориться преимущественно в JS (возможно ещё в каких модных ЯП)
                                    0
                                    Странные результаты показывает этот сервис. У меня в репозитарии есть только три форнутых JS проекта, где я особо ничего не менял, а пишет что я в TOP 70% JS разработчиков, при том что я не считаю себя компетентным в этой области.
                                      0

                                      TOP 70% — это bottom 30%, так что все нормально :)

                                        0

                                        Как понять?

                                        0

                                        Я в топ 7%, но при этом бываю в гитхабе по коммиту раз в полгода (и то в проекты, которые широкому кругу неинтересны). Сомнительный, совсем сомнительный рейтинг.

                                      Only users with full accounts can post comments. Log in, please.