为什么要花3年时间面试一个人?#
背景#
2018年笔者陪同公司部门老大负责技术面试,3个月时间,从收到简历到电话面试、现场面试,再算上Boss直聘打招呼数,总共有不下1000次。招聘过程可谓呕心沥血,效果却差强人意。
曾作为求职者,我面试拿offer总是能满载而归;如今作为一名招聘(临时)者,找到一个合适的候选者难如登天?
在网上看求职攻略、招聘经验帖子时,我总在想一个问题,是什么因素阻碍了企业找到靠谱的候选者?
直到我看了这篇《怎样花两年时间去面试一个人 》。文章里提到了一个理论——“用两年面试一个候选者”[3],起初我不太理解为什么要花这么久时间,最终换位站在求职者的角度,总算读明白了。
当我作为求职者的时候,我会基于先前(求职)经验,摆上Blog、Github主页链接,附上自己的读书清单,这些行为无形中是向招聘者展示我过去1-3年时间做了什么真实产出,有哪些深刻收获。
而当我作为招聘(临时)角色,我一没有招聘经验,二无法有效率的识别该候选者是否匹配公司的需求——归结到最后,是因为我缺乏作为技术招聘者的基本能力,导致了我招聘面试过程中束手束脚。
现状#
那么该如何作为一名合格的技术招聘者呢?
面试官和求职者看似是互相对立,见招拆招的关系,实际上也有一层未来同事身份。所以作为一名技术面试官,我们要在充分理解企业需求的前提下,对候选者进行收集、过滤、筛选、面试、决策等一系列行为。
问他又来了,如何理解企业岗位需求呢?
作为员工,直接跟技术部门领导、人力资源部门领导沟通,很容易得到一些标准的需求指标:胜任、稳定、可靠、专业能力过硬等等。
等等,题目不是“为什么要花3年时间面试一个人”么,为什么要浪费篇幅讨论成为一个合格的技术招聘专家呢?
因为用3年时间面试一个人是“果”,这里面的“因”是默认你已经是一个合格的技术招聘专家了。只有当我们成为一名成熟的技术招聘人员,我们才愿意花费大量时间去收集、筛选、过滤一名真正对企业有价值的候选者。
假设我们从HR那里,从用人部门这里拿到了岗位说明,工作内容说明等,基于稳定性,能力等指标,我们要开始招聘了。那么第一个问题是,从哪里找到合适的候选者?
在下文“软件高工们的招人妙诀”中,有很多创业公司CEO心酸的招聘经历,想必每一个技术招聘者都会面临这种困境:
- 收不到合适的简历,Boos、拉钩、智联,要不就是简历太多筛选麻烦,要不就是简历不合格浪费时间,要不就是根本收不到简历——这种情况比较少,很多事招聘者自己的问题,主要原因在前两种——大海捞针难;
- 有合适的简历,但人不愿意来:1.公司给的预算太少,给不了候选者满意薪水,跟市场薪水比没有竞争力;2.公司品牌、产品竞争力不吸引人,浪费大牛时间
读完这些高工们的招人妙诀,我总结了一版通用的招聘流程:
- 编写岗位说明写明:除了明确的技术能力,还需要在说明底部要求候选者需要提供blog、github、stackoverflow主页链接(强烈推荐);读书笔记(推荐);工作笔记(一般)。
- 能在简历上提供链接的,好了我们可以点进去看这个人最近3年在做什么,github提交记录,看了哪些书,写了哪些总结,解决了多少issues等等,这是一个人真实的产出,无法造假的东西。
- 只要链接里的内容不算太差,都可以约一个电话面试简单聊聊,这种人进入二面技术面的几率大一些。
- 进入二面,再围绕计算机基础(操作系统、设计模式、算法与数据结构、数据库、编程语言)、项目经验、BugFree、系统设计等多项能力综合考察。结合步骤2简历提供的要素,在每项能力、每个要素上打分,最终得到一个综合评价分。
- 根据分数,将候选者划分为:强烈推荐-优秀-良好-一般-不推荐5个等级,跟结合用人部门、人力部门的评分,再谈是否发放offer以及薪水package等等。
冲突和挑战#
作为招聘人员,必须面对的挑战是,根本无法通过公开渠收集简历,找到真正牛且适合公司的候选者;因为真正的牛人也许一辈子就投大概4次简历;而市场上的“人才”大多不是什么人才,招到这些人轻则浪费时间,重则把公司搞挂(笔者上一家年利润过亿的公司就是如此)。
看了网上许多帖子,结合自己的招聘经历来看,招聘过程会面临以下挑战:
- 简历履历造假,包括学历、公司经验、岗位内容等;
- 技能造假,只会写if-else,就敢写精通某某语言;只听过GCRoot技术名词,就勇于展示自己熟悉JVM;
- IT教育机构给学员做的面试包装培训,派老师参加面试套公司的笔试题和面试题,让学员背题,面试题话术整得比部分面试官还专业;
…
笔者并无疑讽刺、贬低IT培训机构出身的学员,只是将此类人将其当做一种招聘挑战
在种种困难之下,招聘者想找到一个合适的候选者难上加难。因此成为合格的技术招聘专家迫在眉睫。
为了寻求一种高效的招聘方法,我读了网上很多招聘求职帖子,刘未鹏老师《怎样花两年时间去面试一个人 》给我的启发最大。启发有两部分,文章观点总结、技术招聘方案
我将其文章及该文章中参考索引的文章内容总结如下:
- 找工作的首要原则是什么?答:弄清楚雇主的需求到底是什么
- 从哪里发现雇主的需求?答:公司主页上的推荐书单,招聘网站,公开渠道广受好评的技术书单如《编程之美》、《成为xx技术专家之道》的书籍。
- 公司如何对候选者进行一场长达3年的面试?答:提供Github链接、博客地址、StackOverflow地址、甚至是Leetcode个人主页、牛客网个人主页
- 个人主页链接有哪些不可替代的优点?答:清晰、明确、完全可度量;不用担心伪造,有push review历史,交流记录,足够体现了求职者的可信、负责任程度
- 公司为什么一定要列求职者书单计划?答:“书单计划”能很大程度上起到强鉴别器的作用,看了就是看了,必然能学到东西,没看就是没看。知道和不知道,区别是本质的。
- 怎样识别人才?答:实战能力,协作沟通能力,学习能力,学习热情,稳定性测试,香蕉测试,专业测试[1]
软件高工们招人的妙诀#
邹欣:“你的工作就是最好的面试”
熊力:“我当年毕业的时候总结了一个公式:第一份工作的月薪=大学四年买过的技术书籍价格的总和。”
周源[2]:
其实从 08 年到现在,我一直想这事能不能有点窍门,或者是实用的方法,结论是几乎没有。我用过的大家都用的方法:
- 在水木上发贴子(有点效果)
- 在蓝色理想上发贴子(无效)
- 在技术邮件组里发贴子(无效)
- 买 51job/智联 最便宜的服务(有点效果)
- 给所有可以想到的人打电话,请他们推荐(无效)
- 给所有和你讨论过创业,喝过点小酒的人打电话(无效)
- 约前同事私下谈(有效)
我用过的大家可能没有用的方法:
- 上 twitter,看 XXX 的 follower,一个一个看,看他们的 twitter,博客,Google Reader 分享,想办法搞到邮件,联系,半夜电话骚扰。
- 上豆瓣,前端后端挑几本重量级的书,去找想看,看过,正在看这本书的人,一个一个看,看他们的活动,博客,Google Reader 分享,想办法搞到邮件,联系,半夜电话骚扰。
- 找同事,问他们都看什么技术博客,想办法搞到邮件,联系,半夜电话骚扰。
刘未鹏
1.要求读过的书写读书报告。
2.Social Coding。
真实的项目,真实的流程,真实的人名,一切代码review, check-in, test, build, document, 甚至讨论,计划,brianstorming,流程,一切的一切,都是项目历史的一部分,都可以像棋局那样复盘。有经验的面试者只要稍稍扫两眼一个人的GitHub历史,挑出几个check-in历史看一看,便完全能够迅速判断这个人是否满足他的要求。不再需要费劲心机地去想题目,去观察,去揣测,去花费大量的时间的同时还只能采样到几个极为有限的点。
不像象牙塔里面大作业,这里有源代码管理系统,自动化build,有check-in,有review,有分工,有合作,最重要的是——这是一个集市,一个超出象牙塔的集市,牛人相互吸引,你可以在互联网上找到和自己拥有共同兴趣的一帮人,真正做起一点事情,而不是交差,不需要受限于几十个人的一个小班级。Here Comes Everybody。
3.我们姑且把这个计划叫做“书单计划”,容易看到“书单计划”具备以下几个卓越的优点:
- 清晰、明确。完全可度量。
- 防伪:读没读过,随便一问便知。而正因为应聘者也知道这事不像实习经验可以忽悠,所以也不敢乱往简历上捅词。
- 不在乎是否“泄题”:书单完全公开的,无所谓,本来就是要你去读的。想背题?背书吧。真能背下来说明认真看了。
- 管你用心不用心读,只要读了,读完了,就有区别。真正的好书,你想不被吸引都难。据我观察很多人就是不知道该去读什么书。
- 不存在“怎么做”的障碍:所有人都知道怎么读书——一页一页读。
- 不需要招聘者投入精力:书单在此,就这么简单,您看着办。
- 评估的负担很大程度转移到了应聘者的身上:是不是认真看完了,有没有心得体会,您自己掂量。没看完别来找我们。
大厂推荐的书单#
华为专家级工程师认证考试(Java)推荐书单:#
部分资料为华为企业内部文档,外部无法检索
- 《软件架构设计》-温煜,掌握需求分析基本原理、过程、方法等内容,掌握UML、设计模式、架构方法
- 《大话设计模式》-程杰
- 《重构:改善既有代码的设计》,对于代码坏味道识别、分析、理解,基本重构原则,多种重构方法
- 《Efficetive java》
- 《Java2 核心技术》
- 《Java语言通用编程规范》
- 《Java语言安全编程规范》
- 《Java安全编码标准》
- 《Java问题调试与定位》,IDE的调试功能、调试工具全景图、熟练掌握应用
- 《有效的单元测试》
- 《单元测试之道》
- 《API接口测试》
- 《Gradle编译》
- 《Jeckeins+Gerrit+Git》
阿里云推荐必读书单#
阿里云藏经阁也列举了求职者必看书单,可以移步至阿里云藏经阁
软件高工推荐的书单#
洪强宁(豆瓣技术总监)#
StackOverflow上有一个程序员必读书单帖子,这里仅列出top10,更多参考这里。
- Code Complete 2
- The Mythical Man-Month (《人月神话》)
- Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》)
- TAOCP (不解释)
- The Pragmatic Programmer (《程序员修炼之道》)
- Design Patterns (《设计模式》)
- The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》)
- Refactoring (《重构》)
- The C Programming Language
- Introduction to Algorithms (《算法导论》)
冯大辉(丁香园CTO,贝塔咖啡创始人)#
- 软件随想录
- 黑客与画家
- 重来
- UNIX编程艺术
- 编程人生
云风(中国游戏编程先行者,前网易游戏部门资深程序员,简悦创始人)#
如果面试,我会挑以下的我自己读过的书,让人选择他也读过的部分,再了解他对这些书的理解。这些书其实本质上就是两类,对所面对的东西(程序语言也好,操作系统也好,底层设施也好)本身的理解程度。以及另一类:对设计思想和原则的理解:
- C++编程思想
- Effective C++
- 深度探索C++对象模型
- C++语言的设计和演化
- C专家编程
- C陷阱与缺陷
- C语言接口与实现
- Lua程序设计
- Linkers and Loaders
- COM本质论
- Windows核心编程
- 深入解析Windows操作系统
- 程序员修炼之道
- 代码大全
- UNIX编程艺术
- 设计模式
- 代码优化:有效使用内存
- 深入理解计算机系统
- 深入理解LINUX内核
- TCP/IP 详解
刘未鹏认为面试微软前必须要读的十本书#
- Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》)
- Computer System: A Programmer’s Perspective (《深入理解计算机系统》) / Windows via C/C++ (《Windows核心编程》 / 《程序员的自我修养》
- Code Complete 2(《代码大全》)/ The Pragmatic Programmer (《程序员修炼之道》,我也把这本书称为《代码小全》)
- Programming Pearls (《编程珠玑》) / Algorithms / Algorithm Design / 《编程之美》
- The C Programming Language
- The C++ Programming Language / Programming: Principles and Practice Using C++ / Accelerated C++
- The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》)
- Clean Code / Implementation Patterns
- Design Patterns (《设计模式》) / Agile Software Development, Principles, Patterns, and Practices
- Refactoring (《重构》)
邹欣(MSRA创新工程中心首席研发经理)#
关于创新的书籍(http://book.douban.com/doulist/1253169/):
- The Myths of Innovation
- The Innovator’s Dilemma
- The Innovator’s Solution
- Crossing the Chasm
- Inside Intuit
- 盛田昭夫
- 杰克·韦尔奇自传
- 梦断代码
- Innovation
- 浪潮之巅
张峥(微软亚洲研究院副院长)#
- Algorithms (by Sanjoy Dasgupta, Christos Papadimitriou and Umesh Vazirani)
- Data Structure and Algorithms
- The C Programming Language
- The Design of the UNIX Operating System
- Compilers (龙书)
- Computer Architecture: A Quantitative Approach
- Flow
- Outliers (why hard work and luck are both important)
郑昀(窝窝团研发副总裁)#
- 工程师入门:
- Code Complete 2
- 程序员修炼之道
- 深入理解计算机系统
- 工程师升级:
- 设计模式
- 重构——改善既有代码的设计
- 工程师转型:
- 快速软件开发——有效控制与完成进度计划
- 人月神话
- IT项目管理那些事儿
- 软件随想录
- 最后期限
- 走出软件作坊
- 你的灯亮着吗?——发现问题的真正所在
参考#
[BetterExplained]为什么你应该(从现在开始就)写博客
插件:Gtihub插件-历史记录自动生成简历;StackOverflow历史记录生成简历
- 1.社会招聘,怎样测试稳定性 ↩
- 2.创业公司怎么招人? ↩
- 3.《怎样花两年时间去面试一个人 》 ↩