现在很多 HR 在招聘程序员的需求都会提到「有 Github 项目者优先」,大部分求职者也会在简历中附上 Github 链接。

作为一个专业的 HR,即便不懂代码,也不能被一个链接唬住。今天我就手把手告诉大家如何通过Github 来判断求职者是否靠谱。

(本文中的所有 github 链接均无特指,仅用于演示说明)

1、查看个人信息

上面是某大神的 Github 个人首页,页面包含四大部分,我们先看个人信息部分。有个人主页的,可以上去看看;有邮箱的,可以看看后缀。

Github 里把项目叫做仓库(Repository),而 Github 里面本身的项目(Project)用的人很少,所以可以忽略。下面可能会混用仓库和项目,指的都是 Repository,大家知道是一回事就行。

仓库分为公开的和私有的,私有的就是只能自己和维护人员可见。Github 付费用户的私有仓库可以由超过3个贡献者共同维护,而免费用户的私有仓库最多只能有3个贡献者,这就是付费和免费的区别,别的基本都一样,一般国内开发者免费的居多。个人认为付费用户可以加分,免费用户不减分。

2、查看贡献统计

绝大部分的开源都在 Github 上面存放,作为一个程序员在 Github 上主要做的事情有:

· 查看和下载别人的开源项目

· 收藏(Star)别人的开源项目

· 关注别人(Follow)

· 给别人的开源项目提 issue(包括 BUG、建议、疑问等,类似于留言板)

· 给别人的开源项目做贡献

· 自己建立开源项目

· 给自己的开源项目提交代码(Commit)

这里最有价值的就是做贡献(Contribution),主要是提 issue 和提交代码。

Github 用户首页中对贡献做了统计,对于 HR 来说,这是识别用户活跃度的重要指标。

在贡献统计里面,最重要的就是贡献日历,也是对于活跃度的最直观判断。如果绿色的比例很多,如下图,说明这个人是一个重度开源参与者,值得加分。

如果是一片灰色,比如下图,说明这人平时不怎么在 Github 上贡献代码;我们在右边切换一下时间,如果每年都是一片灰色,那就要减分了。

接着我们可以看看注册时间。把右边的年份选到最下面一年,滚动下面的 Contribution activity 到最底,就可以看到 Joined GitHub 活动了。

如果这位程序员注册时间较早,起码说明他很早就有开源意识,值得加分,如果注册时间很短,那就说明可能是为了找工作刚注册的,减分。对我个人来说,可接受的是 Github 账号注册时间 >= 工作时间 - 1年。如果工作一年后还没有注册 Github,那在我这里就会大大减分。

3、查看仓库

每个开源项目,就是一个或者多个代码仓库,仓库里放着项目代码。程序员在 Github 上的所有贡献都是面向仓库的。

以上图为例,我们可以先大致了解一下仓库情况:

· Repositories 代表自己的仓库,这里有 151 个,已经很多了。

· Stars 代表收藏的别人的仓库数量。Star 数量衡量一个仓库或开源项目好坏的重要标准,可理解为点赞数。这里显示 Stars 为 788,说明给 788 个仓库点了赞。

· Project这项可以忽略。

· Followers 代表关注自己的人,显而易见,Followers 越多说明此人的技术影响力越大。

· Following 代表关注的其他人数量,参考价值不大,有兴趣可以看看他都关注什么样的人。

对于我来说,Repositories、Stars 和 Followers 数量多,加分;Repositories 可说明此人开源项目的多寡;Stars 可说明他的活跃度,经常会浏览并收藏一些仓库;Followers 衡量技术影响力,数量多的话,数量多的话可以大大加分。

接着看一下 Overview。里面会有这位用户的仓库里最受欢迎的仓库,一般是按照 Stars 数量来排列的。如果 Overview 里面有项目的 Stars 数量在 1万以上就是位非常优秀的程序员,大大加分,可以直接面试或预录用了。

其实 Stars 在 100 以上已经算是比较优秀了。比如下面这种,Stars 不低,分布也比较正常,我也会加分。

如果仓库很多,但 Stars 很低,说明这人虽然写了一些仓库,但没什么影响力,我会减分或者不加分;如果 Repositories 数量为 0,大大减分。注意,仓库要结合贡献统计来看才更准确。

补充一点:上面说的并不绝对,有的公司有自己的代码库,所以员工在 Github 上的贡献就少一些;有的公司代码库就在 Github 上面存放,所以可能员工水平不高也会有很多贡献,因为是工作所需。不过不论如何,优秀的程序员,大多都是 Github 的重度使用者。

有些投机取巧的候选人,甚至会利用淘宝的「刷 Star 服务」:

刷 Star 的项目,大多都是突然增长,issue很少,给 Star 的用户大多没有头像。

GitHub界面初识的更多相关文章

  1. QT+UI界面初识+界面与编辑区结合操作

    图片中时UI界面的初识,了解界面部件都是干啥的: 有了界面之后,使得QT的开发变的更加的便捷,但是在ui界面有时满足不了的功能,就需要使用代码解决,怎么利用代码呢? 首先:打开程序编辑区: #incl ...

  2. 《Github入门与实践》读书笔记 蟲咋先生的追求之旅(上)

    <Github入门与实践>作者: [日] 大塚弘记 译者:支鹏浩/刘斌   简介 本书从Git的基本知识和操作方法入手,详细介绍了GitHub的各种功能,GitHub与其他工具或服务的协作 ...

  3. ENGLISH抠脚童鞋的福利--GitHub汉化插件

    今天在某前端群看到一个插件,激动万分啊!我就把插件使用实现的步骤分享一下! 打开chrome浏览器输入地址:chrome://extensions/ : 跳转到其他页面,点击左上角--扩展程序: 将T ...

  4. 版本控制简介,git使用----使用GitHub托管代码

    关于版本控制: 很久以前,人们苦于对写过的代码进行版本的管理,经常过了一段时间想恢复原来写过的代码却又忘了不知道丢到哪儿去了,有的人用加上时间后缀来命名文件的方法,便于后期维护,但是这样做的麻烦也很大 ...

  5. github如何pull最新代码

      github现在已经经常用了,但是经常遇到下面的问题 比如:从一个项目A中fork了一个分支B,并且在分支B有了改动.过了几天后,项目A中的代码应该会有很多人提交修改了,现在想将最新的代码pull ...

  6. gitHub入门指导

    Github可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性.为一个项目贡 ...

  7. Git本地项目上传 & SourceTree & GitHub 简单使用

    Git(分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理 ...

  8. python+selenium自动化软件测试(第11章):持续集成jenkins和GitHub的使用

    11.1 jenkins持续集成环境 相关安装包下载链接:http://pan.baidu.com/s/1qYhmlg4 密码:dcw2赠送jenkins集成selenium环境视频链接http:// ...

  9. GitHub新手使用教学(从安装到使用)

    一.安装Git for Windows(又名msysgit)  下载地址: https://git-for-windows.github.io/  在官方下载完后,安装到Windows Explore ...

随机推荐

  1. 【转】详解springboot-修改内置tomcat版本

    1.解析Spring Boot父级依赖 <parent> <groupId>org.springframework.boot</groupId> <artif ...

  2. .net core2.1 三层中使用Autofac代替原来Ioc

    首先,现有的三层项目的结构 其中  Repository public interface IPersonRepository { string Eat(); } public class Perso ...

  3. C#调用Delphi DLL获取字符串(C# IntPtr 与 string互转 )

    前因后果 调用一门锁的dll实现读取酒店IC卡数据,直接用Readme里的方法出错. 函数声明: 一.读卡函数    ************************ Delphi 调用 ****** ...

  4. alert执行时机和js线性模型 事件循环

    <div class="test">测试内容</div> <script> $('.test').text('内容改变') alert($('. ...

  5. 部署个人wordpress 笔记

    yum list installed | grep php #检查当前安装的PHP包yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 ... ...

  6. h5-canvas 单像素操作

    ###1. 自定义获取指定坐标像素 var canvas = document.querySelector("#cav"); if(canvas.getContext){ var ...

  7. 父元素高度设置为min-height,子元素高度设置为100%,但实际上子元素高度你知道是多少吗?

    前言 给父元素一个min-height,子元素设置height:100%. 代码 <!DOCTYPE html> <html> <head> <title&g ...

  8. Unit 4.css的导入方式和选择器

    一.什么是css CSS是指层叠样式表(Cascading Style Sheets),样式定义如何显示HTML元素,样式通常又会存在于样式表中.也就是说把HTML元素的样式都统一收集起来写在一个地方 ...

  9. 第四章· Redis的事务、锁及管理命令

    一.事务介绍 二.Redis乐观锁介绍 三.Redis管理命令 一.事务介绍 Redis的事务与关系型数据库中的事务区别 1)在MySQL中讲过的事务,具有A.C.I.D四个特性 Atomic(原子性 ...

  10. Monkey参数介绍

    monkey 参数 参数分类 常规类参数 事件类参数 约束类参数 调试类参数 常规类参数 常规类参数包括帮助参数和日志信息参数.帮助参数用于输出Monkey命令使用指导:日志信息参数将日志分为三个级别 ...