Источник изображения: 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. По личным наблюдениям, данные там обновляются около раза в месяц, так что иной раз туда можно наведываться за свежими рейтингами.
Комментарии (36)
k12th
08.03.2017 11:50+7Это неплохая метрика, но не идеальная. Есть очень крепкие разработчики, которые просто не пишут в open source — другое хобби, частный проект, просто не пользуются гитхабом:)
lookid
08.03.2017 15:27-35Отмаза просто гениальная: "Я хорошие программист. Но работу свою не покажу. А если вы не верите или критикуете меня, то вы…! Я скозал!" Вы пытаетесь заставить людей играть по своим правилам. И недовольны, когда вам предлагают играть по своим. Лицемерие выше крыши. Ну ок, в таком случае будете получать тестовое задание "Закодить за 4 часа без ошибок". Хотели войну? Воюйте до конца.
k12th
08.03.2017 15:30+4Вот как весна, так хоть блокируй себе хабр. Дорогое НЛО, удали, пожалуйста мой коммент и всю ветку.
greendimka
08.03.2017 15:41+3Войну это тут вы себе надумали. До конца еще воевать… что за мода?
Если вы не работали в серьёзных проектах, зачастую подкреплённых исследованиями, то не беритесь утверждать. Большинство крутых, не помешанных на пиаре, ребят за пояс затыкают опенсурсников.
Лично забраковываю 90% предлагаемого в проекты опенсурса. Причина номер один: низкое качество. Причина номер 2: низкое качество. Причина номер 3: низкое качество.
Pakos
09.03.2017 10:52«Приходите на пляж, а там станки, станки...»
Данный рейтинг показывает не просто программистов, а программистов, имеющих программирование в качестве хобби. Это не делает их лучшими из лучших, просто позволяет заранее понять стоит/не стоит приглашать его на интервью.
Kroid
08.03.2017 23:02Угу, а некоторые в битбакет коммитят. Боюсь, что идеальную метрику в принципе нельзя создать и поддерживать актуальной. А ранжирование по гитхабу дает неплохой охват.
za90
08.03.2017 12:01+2Пролистал первую сотню, встретил DmitryBaranovskiy на 87 месте. Так держать!
DmitryBaranovskiy
08.03.2017 12:39+13Это, конечно, приятно, но пролистав ту же сотню без удивления обнаружил многие несоответствия. Это как по рейтингу певцов оценивать их голосовые данные. Популярность песен и уровень вокала совсем не обязательно находятся в зависимости.
Если твоя песня называется React, то знать что такое замыкание не обязательно.
deniskreshikhin
08.03.2017 12:26+3Такие рейтинги бессмысленны, т.к. обычно приходится сравнивать не XXX с TJ, а XXX и YYY которые в хвостике. И вот подобные рейтинги не гаратируют ничего. А то что TJ крутой ноджсер, итак все знают.
1. TJ .... 9900. XXX 10000. YYY
zharikovpro
08.03.2017 13:17+1Что примечательно, TJ уже два года как попрощался с экосистемой Node.js в пользу Go. Так что он крутой, но замотивировать его вернуться к JS будет теперь отдельной задачей))))
deniskreshikhin
08.03.2017 13:41Да, но что еще более примечательно, в Go он такой же популярности добиться не смог)
greendimka
08.03.2017 12:39Посмотрел код нескольких, случайным образом, выбранных программистов… рад, что они в ТОПе, но работу я бы им ни за что не дал.
Вообще этот гитхаб все краски перемешал: реально крутые ребята зачастую выглядят в глазах HR никем из-за того, что не "прописались" на гитхабе, не делают по сто коммитов (коммиты ради коммитов), потому что тупо посвящяют себя работе, а не пиару.
f0rk
08.03.2017 13:19но работу я бы им ни за что не дал.
Представил как tj или substack умоляют вас дать им работу… :)
greendimka
08.03.2017 13:28Речь не шла о TJ. Но даже если бы и о нём: вы действительно думаете, что клиент платит за то, что кто-то там где-то там звезда?
tentakle
08.03.2017 12:59+2Cтартапы, новые клевые идеи и все такое это конечно прекрасно, но подобных рейтинговые проекты не должны выйти в массы, потому что тогда и так хромающая объективность HR будет ориентироваться еще и на эти субъективные ранжирования. Сами же рубите сук, на котором сидите.
sbnur
08.03.2017 13:20+4«Общество, в котором нет цветовой дифференциации штанов, лишено цели» — цитата
lexasss
08.03.2017 15:31+5Простите, но как могло получиться, что 11ая позиция досталась человеку с четыремя репозиториями, и все не про JS?
madkite
08.03.2017 16:36+3Проплатил, стопудово. Исходники то этого gitlance не на github, перепроверить то нереально. Вообще все эти рейтинги — такая большая область для коррупции.
vedenin1980
08.03.2017 17:33+4Простите, но как могло получиться, что 11ая позиция досталась человеку с четыремя репозиториями, и все не про JS?
У него в followers много JS девелоперов. Видимо вся суть рейтинга (аля pagerank) берем все followers, берем их star в JS проектах, суммируем и получаем рейтинг разработчика. То есть по сути рейтинг разработчика строиться на основе дружеских связей, есть куча приятелей-звезд в opensource и у тебя будет высокий рейтинг.
человеку с четыремя репозиториями
Ладно 4 репозитория, у него со всех репозиториев 1 star и 1 fork. И в другие репозитории нет коммитов.
P.S. Вывод — В целом, рейтинг ерунда и накручивается легко за счет друзей и знакомых.
NeXTs_od
09.03.2017 01:53рейтинг высчитывается на основе «раскрученности» фолловеров. как вы «легко» уговорите раскрученные аккаунты подписаться на вас? у вас в друзьях вся первая десятка со списка?
vedenin1980
09.03.2017 04:40рейтинг высчитывается на основе «раскрученности» фолловеров. как вы «легко» уговорите раскрученные аккаунты подписаться на вас?
Например, можно работать вместе с теми у кого есть раскрученные аккаунты. Либо банально дать денег, если этот рейтинг будет на что-то влиять при поиске работы. Либо просто знать людей в оффлайне. При этом твой личный вклад на гитхаб может быть нулевым. То есть вообще ни одного не пустого репозитория, ни одного коммита.
Как-то же человек с 1 звездой во всех репозиториях получил 76 фоловеров.
Areso
09.03.2017 05:41У меня фолловеров в разы больше, чем звезд. А если посчитать, сколько у меня было фолловеров (то есть люди подписываются и отписываются с течением времени), то порядка 20 человек наверное наберется.
Звезда на репозитории — это интересный реп/полезный реп.
Фолловер — значит человек надеется увидеть что-то новое и полезное для себя в списке репов со временем.
anton_slim
08.03.2017 20:41+1Надеялся что тут будет подробно раскрыт механизм ранжирования и подсчет рейтингов, а тут общие слова и в основном реклама сервиса, жаль что прочитал
markhor
08.03.2017 20:51+1У нашей компании похожий алгоритм, хотя мы не стрeмимся ко всяким этим рейтингам: https://blog.sourced.tech/post/handshakes_pagerank/
Areso
09.03.2017 05:47+1Для всех остальных ЯПов этот сервис пока не работает? Попробовал python / vb (да, вот такой вот я), говорит, пока нет данных. При попытке вбить php там все ломается)
noomorph
09.03.2017 12:39В целом, подсчеты по другим ЯП у них уже есть (их можно увидеть в JSON API), но публичный доступ к ним организация пока не предоставляет. Сдается мне, что адекватность и точность выдачи там порядком ниже, чем для JS, и они хотят позаниматься тюнингом и дополнительной проверкой других ТОП-рейтингов, прежде чем их выкладывать в общий доступ.
inker
09.03.2017 10:09+3Судя по комментариям к статье, TypeScript (и все подобные компилируемые в JS языки) учитываются отдельно и поэтому не идут в рейтинг, что делает его (этот рейтинг) немного бессмысленным, поскольку любой TS-разработчик — он же JS-разработчик, просто предпочитающий статическую типизацию.
Cnfc19932
09.03.2017 10:09+1Вы понимаете что количество звездочек и прочих фидбэков — это оценка вклада (полезности) в сообщество? И качество кода никак не коррелирует с количеством этих самых звездочек.В мире куча крутых программистов с идеальным кодом, которые не выложили в open source ничего, что подняло бы всеобщий хайп.
Kekoc
09.03.2017 10:09+1Просто опишу пару ситуаций из жизни. Поработал с несколькими frontenderami за год и хочу поделиться с вами следующими воспоминаниями.
1) Человек создаёт репозитории решений которые уже есть в достатке и просит своих коллег, друзей лайкать и фоловить.
2) Работаем с человеком и у него множество вкладов в другие репозитории элементарно по той причине что их надо править, косяк на косяке и иногда даже владелец репозитория на 100+ звёзд пишет, что ошибка не у меня, а у сурца который я использую, пишите им. (Коммент выше про качество)
3) Мой товарищ тоже frontend разработчик и как-то я завёл с ним разговор чувак зачем весь этот пиар, что если просто будут фермы и набивать звёздочки и т.д. А он говорит «да нет, ты чего, какая разница много или нет все равно можно посмотреть кто звёздочки ставит и какого уровень вклад и вообще есть ли смысл в том что он сделал»
P.s. вообще к комментам выше присоединяюсь (по поводу может норм разработчик просто в закрытую пишет) и хочу добавить.
В какой момент opensource стал инструментом пиара? Почему к его написанию просто нельзя логически подойти и подумать, а нужно ли это вообще, а не просто «я хочу весь такой разраб клац клац код звёздочки фоловерсы»? Личные наблюдение, что всё это твориться преимущественно в JS (возможно ещё в каких модных ЯП)
Infernion
09.03.2017 11:12Странные результаты показывает этот сервис. У меня в репозитарии есть только три форнутых JS проекта, где я особо ничего не менял, а пишет что я в TOP 70% JS разработчиков, при том что я не считаю себя компетентным в этой области.
iShatokhin
09.03.2017 18:49Я в топ 7%, но при этом бываю в гитхабе по коммиту раз в полгода (и то в проекты, которые широкому кругу неинтересны). Сомнительный, совсем сомнительный рейтинг.
igor_suhorukov
Теперь кроме строчек кода (LOC) в процессе работы нас HR будут мерить по GitLance до найма за деньги работодателей…