面试杂谈:面试程序员时都应该考察些什么?<转>

时间:2021-08-20 05:24:34

一般来说,一线成熟企业技术岗位的典型招聘流程分为以下几个步骤:

  • 初筛:一般由直接领导的技术经理或HR进行,重点考察教育和工作经历
  • 一面:一般由可能直接与之共事的工程师进行,重点考察基础和工作能力
  • 二面:一般由直接领导的技术经理进行,重点考察技术深度、广度和发展潜力
  • HR面:由人力资源部门进行,重点考察入职时间、职业规划、薪资要求等

当然,各个公司情况是不同的,有的公司可能会在面试前设置笔试或电话面试,有的公司会有两轮以上的技术面,有的公司会有由兄弟部门再把关的交叉面,有的创业公司甚至可能只有CEO或CTO亲自出马的一轮面试……

在为58赶集集团工作的最后一年里,我面试进行了近百位求职者。今天我想粗略地梳理总结一下,我关于技术面试所沉淀下来的思考。也许你应该先去读读我之前发表的这两篇文章:

《面试杂谈:N年工作经验真的有用吗?》
《面试杂谈:怎样才算“精通XX”?》

给谁面试机会?

首先要明白的是,发起招聘的并不是一家公司,而是一个具体部门的技术经理。技术岗的简历来源主要有两个渠道:行业垂直招聘网站 、HR或员工内推,在特别紧急的情况下,还会启用猎头。

招聘部门总是更欢迎那些有过类似业务开发经验并使用相同技术栈的员工,这样沟通成本会低很多。另外根据招聘部门情况不同,有时需要能攻坚能带团队的资深工程师,有时需要能干活的一线工程师,更多的时候是两者都需要。

另外根据招聘部门情况不同,有时需要能攻坚能带团队的资深工程师,有时需要进来就能干活的一线工程师,有时需要的是基础好可培养的新人。当时我所带领的团队由于部门整合刚刚进行大换血,严重缺少人手,所以需要的是进来就能干活的人。

在刚开始招聘时,我认为所有人应该都拥有平等的机会,自己也缺乏从简历中筛选的经验,于是采用海面的策略,只要不是应届毕业生的求职者只要投简历就约面。在面试了数周后发现,面试的通过率实在太低,于是不断总结思考,调整初筛策略,后期我所使用的策略是这样的:

  • 优先考虑2-3年工作经验的人,因为工作才一年就跳槽的人大多不够成熟,而工作多年还没升管理岗又换工作的人大多古板平庸,技术栈僵硬;
  • 不考虑从编程培训班毕业的人,他们中的大多数人基础不扎实,且缺乏自主学习能力;
  • 不考虑一年内换过多次工作的人,因为这说明他浮躁且缺乏思考能力,经常做出不靠谱的决策;
  • 不考虑在简历中多次提到“精通”字眼的人,因为这说明他不仅不精通,而且并不明白什么是精通;
  • 不考虑在简历中出现多处明显拼写错误和错别字的人 ,因为连简历这么重要的文件都不知道review的人,完全没有责任心可言;
  • ……

以上内容可能会让部分朋友觉得不适,所以我需要特别说明一下:我并不是歧视工作经验少或者从编程培训班毕业的人。 近年来,大部分一线公司在招聘时对学历的要求渐渐都从大专升级到了本科,但这并不是在歧视大专生,其逻辑是一样的。

一年工作经验、从编程培训班毕业以及大专生群体中当然不乏出色的人才(我自己就是大专),但占比实在太低。在做人员储备的时候,标准可以适度放宽;但在闹人荒的时候,有限的面试资源只能分配给合格概率更高的群体。

怎么安排面试?

程序员的面试一轮通常是一个小时,由于双方的信息不对称,对求职者的考察往往不够全面。有些一面表现非常出色的人,二面就原形毕露;也有一面表现平平,二面却有惊人之举的。在有限的时间里,必须尽量获取更多的信息,才对求职者的能力作出更准确的判断。

我会尽量避免在早上安排面试。一方面,面试双方都可能因为高峰期堵车而导致迟到;另一方面,早上可能会有一堆积累的事务要处理,PM讨论一下需求,QA提两个BUG,回复完邮件,精力就已经消耗得差不多了,马上又临近饭点,饥肠辘辘下很难集中注意力进行面试。

因此,我一般会把面试安排在自己精力最充沛的时间,也就是下午3点-5点之间,在午休完处理完所有紧急事务之后。这个时间段也躲开了上下班高峰期,不太可能因为交通原因而迟到。

确定面试安排后,我会打电话通知求职者面试时间,并通过邮件发送面试地点、交通路线和注意事项,并要求对方收到后进行确认回复。在面试前1个小时,我还会再次打电话核实对方的安排。有的求职者接受了一个Offer之后,就没把其他公司的面试放在心上,然而这样会浪费面试官的时间和精力,留下很差的印象。我甚至还遇到过个别奇葩求职者,完全忘掉了已经安排好的面试,居然还能厚着脸皮提出改时间再约……

面试时最应该考察什么?

面试经验不丰富的求职者,往往一开始会表现得比较紧张。所以在走向面试地点的路上,我通常都会闲聊几句前公司伙食如何之类的话,目的是拉近距离感,缓和一下紧张的情绪。在面试正式开始前,我还会先让求职者进行简短的自我介绍,让他尽快适应这个陌生的环境,并调整到让双方都觉得舒服的声线。而我则会认真地倾听并不时点头反馈,让求职者感受到我们更像是在进行一场对话,而不是考试。

一场面试,不外乎是从能力和潜力两个方面来考察求职者。

1、能力:主要考察求职者掌握了多少知识与技能,以及拥有多少实战经验。

事实上,这些在求职者的简历里都已经写得很清楚了,只多不少。能来参加面试的求职者,其简历上所描述的能力必然已经满足了招聘者设立的基本条件,没有人会愿意在不够格的简历上浪费时间。所以只要求职者在面试中的表现能充分印证简历上的描述,最好再能表现出一点点超出预期的地方,就能让招聘者满意。

由于面试的时间短暂,所以面试官只能对求职者的经历和能力进行抽样考察。我在考察求职者的工作经验时,一般会让他先挑一个最有把握、最能展示自己实力的项目,然后让他讲解这个项目,并追问一些技术细节和实现方式。如果这个过程中发现他对这个项目其实并不了解,说不清楚核心逻辑是怎么回事,那其他的就不用再问了。

另外,还有一个难以从简历判断,只有当面才能考察的重要能力:沟通能力。沟通能力强的人很容易理解他人的意图,也能清晰地表达自己的想法,和他们合作会让人感觉很放心;而沟通能力差的人则是团队的噩梦,你总得在他们身上多操份心,否则他们可能到了上线前最后一天才会告诉你任务完不成,你懂得。

2、潜力:主要考察求职者的品质、习惯和态度。

在我看来,潜力远比能力重要得多。因为能力只说明了他现在处于什么位置,是一个衡量积累量的绝对值;而潜力则决定了他今后能走多远,相当于速度和加速度。能力可以通过时间来不断积累,而潜力不通过蜕变几乎是不可能提升的。

比如说, 我最讨厌的就是不懂装懂的人,这种人说话完全不负责任,想到什么张口就来,还底气十足。和对事实真相的探索比起来,更看重自己在别人心中的形象,演着演着连自己都相信自己真的已经懂了。这样的人真的很可怕,因为关键时刻如果你不懂,他就把你给蒙了,到时候怎么死的都不知道。

  • 这个人是否诚实?是否能客观地认识自己?会不会不懂装懂?
  • 这个人是否热爱学习?喜不喜欢读书?读完有没有行动?
  • 这个人是否愿意去琢磨事物背后的原理?有没有刨根问底的精神?
  • 这个人是否有总结和反思的习惯?曾经犯过哪些错误?
  • 这个人是否有优化意识?是否有追求完美的精神?
  • ……

以上任何一个话题展开来,都可以写一篇长文,这里限于篇幅不便一一细讲,等我有机会再撰文和大家分享。

该不该提前结束面试?

不管面试进展如何,我每次都会用足一个小时,对此领导颇有微词,认为我在浪费时间,有些人聊上15分钟就可以打发走了。而我觉得面试是双方共同选择的结果,双方的时间是等价的(实际上由于路途往返的原因,求职者时间成本会更高一些),所以我应该给求职者足够的时间和展示机会。我总会把事情往好的方向考虑:

会不会我正好问到的是他不熟悉的领域?
他是不是有点紧张,没有发挥好?
……

退一万步讲,尽管这个人明显不能满足招聘的要求,但由于每天下午的日程安排都很紧凑,就算提前结束了面试,多出来的一点点碎片化时间也无法拿来做高产出的工作,只能被无谓地消耗掉。

与其这样,我更愿意在接下来的时间里,让他多积累一点面试经验,帮助他发现自己的问题出在哪里,给他一些可行性的建议,对他产生一些好的影响,让自己这一个小时变得更有价值一些。哪怕就算是帮求职者做下职业规划,顺便给公司做下正面宣传也是好的。

没有达到预期的目的,并不一定就在浪费时间。一次理想的面试下来,无论结果是否通过,面试双方都应该得到了成长。在面试过程中,求职者和我的知识体系发生直接碰撞,双方都有可能得到思路上的启发,并认识到自己在某个领域的认识上不够完整和严谨。通过向求职者追问和解说,我不仅锻炼了自己的表达和总结能力,也巩固并强化了自己的知识体系。

不过,我回过头来也需要反思:

为什么这名求职者能够通过我的初筛?
我在哪些环节还可以改进,以避免类似的情况再次发生?
……

后话

读书使人完整,讨论使人完备,写作使人完善。——培根

面试杂谈系列动笔之后,已经坑了半年多。

做完一件事,如果不总结反思复盘,使自己得到成长,那这件事等于没有做。在日记里写上一笔流水帐“今天我OOO,然后XXX……”,是没有多大意义的。多年后回顾自己的日记,往往只能感慨:多年我就已经在OOO和XXX了,为什么现在我还在OOO和XXX?

思考过后,如果不写下来,那等于没有思考。之所以要写下来,就是为了让自己的思想得以留存,而不是在时间飞逝间不知不觉地消磨殆尽。如今回想起来,当时使用的一些面试思路已经有些模糊,然而写着写着,思路变得越来越清晰。

写下来之后,如果没有跟进评论和反馈,认识到自己的局限,那等于没有写。一个人的认知总是有局限的,读者的评论和反馈可以帮助作者拓展观察的角度和深度,读者自己也通过撰写评论整理并实体化了自己的思想,双方都得到了成长。

继续做,继续思考,继续写,继续成长……


感谢原文作者!原文地址:http://www.jianshu.com/p/dc843884d98e?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

面试杂谈:面试程序员时都应该考察些什么?<转>的更多相关文章

  1. 极光大数据告诉你,程序员们都在&quot&semi;愁&quot&semi;些啥?

    有言道:隔行如隔山.面对不甚熟悉的人群和岗位,我们很容易在固有印象的干扰下,作出一些偏离实际的解读.比如在很多外行人眼中,程序员群体的固有形象是性格木讷,生活方式通常也比较宅.他们最大的爱好就是玩游戏 ...

  2. 我在面试&period;NET&sol;C&num;程序员时会提出的问题

    我在面试.NET/C#程序员时会提出的问题 2011-03-03 15:38 by 老赵, 28107 visits 说起来我也面试过相当数量的.NET(包括C#,后文不重复)程序员了,有的通过电话, ...

  3. 同样级别iOS程序员,为啥比我菜的程序员薪资都比我高?

    前言: 作为程序员,都有一种相同的焦虑——即当一次又一次的新技术浪潮袭来,总会不由自主的拼命跟随,总是担心如果不紧跟新技术的潮流,将会被时代所抛弃. 害怕年龄,害怕平庸,其实只是你在现实里的努力无法支 ...

  4. Java 程序员每天都在做什么?

    作为一名 在大.中.小微企业都待过 的 Java 开发者,今天和大家分享下自己在不同公司的工作日常和收获.包括一些个人积累的工作提升经验,以及一些 Java 学习的方法和资源. 先从我的第一份 Jav ...

  5. top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令。 按 q 退出

    top命令经常用来监控linux的系统状况,比如cpu.内存的使用,程序员基本都知道这个命令. 按 q 退出

  6. &lbrack;转&rsqb;我在面试&period;NET&sol;C&num;程序员时会提出的问题

    http://blog.zhaojie.me/2011/03/my-interview-questions-for-dotnet-programmers.html 说起来我也面试过相当数量的.NET( ...

  7. 我在面试&period;NET&sol;C&num;程序员时会提出的问题&lpar;转载&rpar;

    转自:http://blog.zhaojie.me/2011/03/my-interview-questions-for-dotnet-programmers.html 说起来我也面试过相当数量的.N ...

  8. 不出意外,排名第一的还是它,程序员为什么都喜欢用Chrome?

    程序员为什么喜欢使用Chrome? 其实不单单是程序员喜欢使用Chrome,现在大多数的小伙伴都使用Chrome. 我们可以看到Netmarketshare发布了2020年7月的操作系统与浏览器市场份 ...

  9. 玩转 ”hello word&OpenCurlyDoubleQuote;,Python程序员大多数都没有实现过

    很多人学习Python很长时间,对于'hello word' 的认知,很多已经从事Python多年的程序员的认知也就只有: print(hello wrod) 但是有没有让hello word 变得不 ...

随机推荐

  1. django初始

    创建django工程 django-admin startproject [工程名称] mysite - mysite # 对整个程序进行配置 - init - settings # 配置文件 - u ...

  2. 布局文件中fill&lowbar;parent、match&lowbar;parent和wrap&lowbar;content有什么区别?

    fill_parent 宽度或者高度 布满整个屏幕从Android 2.2开始fill_parent改名为match_parent.wrap_content布局元素将根据内容更改大小.

  3. thinkphp中关于rbac的两个session

    最近在做单点登录,需要session由sso的client生成.所以研究了下RBAC的类的代码. 有了这两个seesion就可以用rbac进行权限验证 $_SESSION[C('ADMIN_AUTH_ ...

  4. Qt移动版优化后台云服务、支持跨平台开发

    http://mp.weixin.qq.com/mp/appmsg/show?__biz=MjM5MDE0Mjc4MA==&appmsgid=10000461&itemidx=2&am ...

  5. 团队作业4---第一次项目冲刺(ALpha)版本 第五天

    一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 a.完成所有基础功能 b.正在进行测试调试 四.困难与问题 1.根据测试需求功能,部分基础功能不能实现,性能不达标,后续已完成 ...

  6. Centos将yum源设置为阿里云的镜像源

    第一步:备份原有镜像源 mv /etc/yum.repo.d/Centos-Base.repo /etc/yum.repo.d/Centos-Base.repo.bak 第二步:下载阿里云的镜像源 w ...

  7. TCP&sol;IP 笔记 - TCP数据流和窗口管理

    TCP流量控制机制通过动态调整窗口大小来控制发送端的操作,确保路由器/接收端消息不会溢出. 交互式TCP连接 交互式TCP连接指该连接需要在客户端和服务器之间传输用户输入信息,如按键操作.短消息.操作 ...

  8. 如何避免form提交进行页面跳转

    正常的form表单提交后需要进行页面跳转,如果我们不希望进行页面跳转,那么按以下两个步骤,通过一个iframe就可以解决这个问题: 步骤一:首先在页面中定义一个空的不可见的iframe <!-- ...

  9. Guava的SetMultimap

    在工作中,我们会经常用到如下类似的结构 Map<String, Set<Stirng>> map = new HashMap<Stirng, Set<String& ...

  10. Week7——JSON

    1.什么是JSON? JSON是JavaScript对象表示法,全称是JavaScript Objec Notation.它是存储和交换文本信息的语法,类似于XML.JSON是轻量级的文本数据交换格式 ...