Руководство
по GitHub
для гуманитариев
⚡ 13/11/2019
⏱ 17 минут
Чтение профилей на Github как чтение состава чипсов. Кажется сложным, но можно быстро разобраться. Сегодня попробуем разобраться и сделать так, чтобы нахождение профиля разработчика на Github вызывало только "ох, сейчас разработчику в душу прям заглянем".
Разберемся с терминами
Потому что это пугает больше всего.

Git — это распределенная система контроля версий кода. Она помогает разработчикам сохранять все изменения, внесённые в код, отслеживать изменения в файлах и работать совместно с командой.

Github — это cервис для хостинга (то есть хранения) репозиториев. На Github есть возможность контролировать разные версии кода, управлять исходным кодом и работать вместе с командой. То есть делать то же, что и Git.

И вот в чем разница между ними: Git — это инструмент, который просто впервые позволил одновременно команде править код и работать над одним проектом вместе, а GitHub — это платформа для проектов, использующих Git.

Open Source — это прозрачный подход к созданию проектов. Разработчики открывают код продуктов, над которыми работают — над ним можно вместе работать, а ещё — копировать. И всё это на Github.

Коммит (commit) — это публичное сохранение, фиксация (в архиве, репозитории и др.) изменений в коде.

Репозиторий (repo) — это хранилище версий кода какого-то проекта**.** В репозитории есть журнал коммитов, которые были добавлены в него. У репозитория могут быть разные ветки — у каждого своя история и происхождение. По умолчанию основная ветвь называется «мастер». Как правило, весь готовый код объединяется в мастер.

Форк (fork) — клон репозитория. В копии репозитория можно вносить свои собственные изменения, редактировать файлы. Например, вы решили внести изменения в чей-то репозиторий, внесли, а теперь можете поделиться им и отправить автору оригинального репозитория. Это будет считаться запросом на слияние и называться pull request.

Вот, смотрите, справа от Scala иконка форкнутого репозитория.

Issue — это условные карточки-задачи, которые вы можете создавать, чтобы отслеживать работу над багами, внедрение новых функций или других запросов. Как тикеты в Trello.

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

Contribution — это действия пользователя Github, по которым считается его активность на платформе:

  • commit в мастер-ветку;
  • открытие issue;
  • предложение сделать pull request;
  • отправка pull request на проверку.
Что ещё важно знать?

Давайте вернемся к вопросу: что такое Github в принципе. Это платформа, где разработчики и компании (да, в том числе) могут хранить проекты, редактировать их вместе. Но мы видим только часть репозиториев — те, что доступны всем.

Итак, пример. Разработчик, который активен на Github (у него регулярно что-то появляется), является автором или участником крупного проекта с открытым исходным кодом (open source). Делаем вывод, что, скорее всего, у него большой разработки на языке проекта. То есть активность и ценность вклада разработчика в целом рассказывает нам об уровне его навыков.

Но! Не каждый разработчик использует Github, и не каждый может — есть много компаний, которые запрещают ребятам участвовать в open source проектах.

На что обратить внимание в профиле?

1. Стек
Github — идеальный инструмент, чтобы узнать больше про технологический стек. Вы можете просто посмотреть, репозиториев с какой технологией больше всего или над чем он работал в последнее время.
И тут вам пригодятся вот эти инструменты:
Github User Languages

Покажет прямо под фото и контактами диаграмму языков и навыков разработчика. Станет ясно, что он использует чаще всего.
Github Awards

Инструмент, который поможет понять, какое мест о в рейтинге вообще занимает разработчик.
Profile Summary for Github

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

Видите, сколько навыков? Это всё Подбор.
Подбор анализирует технологии, которые разработчики используют в репозиториях (форкнутых и своих) на Github, а ещё — упоминания навыков в профиле и звездность кандидата. Подбор анализирует вес навыка и на основе этих данных (и не только) кандидаты сортируются в выдаче.

Octohunt

Простой инструмент для поиска разработчиков по Github. Вводите навык и локацию, Octohunt показывает профили.
2. Активность
Смотрим на активность кандидата. В зависимости от настроек его профиля здесь будет отображаться его публичная или личная активность. Выглядит это вот так — в какие-то дни разработчик прям много контрибьютил, в какие-то — мало:

Если этот график совсем пустой, то, напоминаем, это не значит, что разработчик ничего не делает и ходит на работу с 9 до 18. Он может скрыть свою личную активность из профиля. Не делайте поспешных выводов по первому взгляду на Github :)
3. Вклад в open source проекты
Очень круто и важно, если разработчик внес/вносит вклад (contribution) в крупные и популярные проекты, вовлечен в работу над репозиториями с хорошей репутацией в сообществе.

Посмотрите на Contribution activity за последние несколько месяцев и оцените, что делал разработчик. Тут же вы увидите, чего было больше: коммитов, issues, pull requests.

Затем зайдите во вкладку "Repositories" и оцените, внес он какой-то вклад в обсуждаемые проекты или нет. Просмотрите форкнутые репозитории, насколько большим был вклад разработчика в проект.

Чтобы измерить популярность того или иного проекта, можно посмотреть, сколько у него звезд.

Звезда (star) — это способ подписаться на проект и отметить интерес к нему. Так разработчики составляют для себя ленту по интересам, чтобы в будущем видеть больше подобных проектов.

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

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

Внимание. Разработчик может быть гитхабным социофобушкой. Отсутствие у него в профиле активности, у его проектов звезд или файла Readme, ничего криминального о нем не сообщает.
А что вообще значит количество подписчиков?
Число подписчиков профиля — тоже косвенный индикатор его навыков и репутации в сообществе.

2-10 подписчиков — нормально, 11-25 — хорошо, 26-75 — уже фантастика, а больше 75 подписчиков — это уже товарищ-рок-звезда.
Находим контакты

Инструмент #1
Проверяем логин на Github в Телеграме. По нашему опыту, так часто и бывает.

Инструмент #2
Достаем почту, которая спрятана.
  1. Берем вот эту ссылку: https://api.github.com/users/ВОТСЮДАВСТАВИТЬЛОГИН/events/public

  2. Вставляем логин туда, где крупными буквами это указано.

  3. Включаем поиск по странице по ключевому слову email.

Тадааам!

*статья вдохновлена вот этими материалами:

Github Help Documentation

Reading Github Profiles When You Are Not An Engineer

Ask HN: What do recruiters look for in a GitHub profile?

How to: Use GitHub to Find Super-Talented Developers Recruiting and Sourcing Developers on Github: The Complete Guide