如何识别程序员的优秀能力

描述

对于在互联网公司负责招聘程序员的HR来说,每天日理万机,遇到几位难辨真假的候选人,一不小心就会「阴沟里翻船」:不是错失人才,就是高估了对方实力,以至于发错offer。

100offer 致力于让最好的人才遇见更好的机会,同时也致力于帮助互联网企业找到最好的技术人才。在此给各位HR送上一份实用的招聘指南,手把手教你识别真正优秀的技术人才。

现在很多 HR 在招聘程序员的时候心里没底,感觉自己不懂技术,不知道如何鉴别优秀的和糟糕的程序员,干脆一股脑都推给用人部门,自己就在最后唠唠家常、聊聊价值观、谈谈薪酬。

醒醒吧,专业的 HR 岂能甘当配角,体现能力的时候到了。

程序员的技能分为硬技能和软技能。硬技能就是指技术水平,相对容易量化和评估,比如笔试题、看看过往的代码、编程挑战、算法测试等等,这些是需要用人部门来甄别的。

而软技能则包含了很多个人特质,反映在为人处世、待人接物、交流合作、工作学习等方面,是性格和情商的综合体现。相比硬技能来说,软技能更为重要,它是区别好坏程序员的重要特征,但却很难甄别和衡量。

为什么说软技能更重要呢?因为硬技能只要过了一个门槛,一般不存在会不会的问题,剩下来就是愿不愿意学的问题;但是软技能,却是很难在短期内训练和改变的。

我们在互联网行业中常见的一些删库跑路、暴打产品经理之类的悲剧事件,大部分都是涉事员工软技能不达标,给公司埋的雷。

用人部门往往更在意程序员的硬技能,而忽略了软技能,这就需要我们 HR 来「补刀」了。下面为大家总结几个程序员的重要软技能,并给出简单的鉴别方法。

1、态度好

工作态度的重要性无需多言。连态度都不好的程序员,招进来只会给团队添堵。那么如何考察态度?

态度积极的程序员,在面试中会认真地倾听你的问题,耐心了解公司和产品,积极回答问题并提出自己的疑问;同时他们在过往的职业经历中,会努力实现自己的承诺,达成进度。

优秀的程序员都很谦虚,这就是我们常说的「空杯心态」:能力越高,越知道自己的不足之处还有很多。大谈特谈自己的优势,或者太「作」、以自我为中心的程序员,也属于态度差的范畴。

2、强大的沟通能力

很多 HR 觉得程序员大多比较木讷、沟通能力差,甚至误以为程序员「人狠话不多,技术越牛,越内向」。大错特错。

优秀的程序员大多有很好的团队沟通能力,能够清楚理解问题,并将之分解成解决或设计方案,进行书写或阐述。

优秀的程序员也有很好的表达能力,「沉默寡言」的黑客型人才,基本都是媒体标签化误导的结果。许多国际上知名的顶级程序员都是演讲高手,在各种技术峰会上,大牛们也都可以流畅地分享自己的技术经验和思路。缺乏足够的表达能力,也就无法在日常开发中和同事交流、学习、分享、碰撞。

HR要考察沟通能力,最简单就是在问答过程中观察候选人的语言组织,逻辑条理是否清晰、简洁、自上而下等等。沟通能力差的程序员,要么答非所问,要么啰嗦冗余,也就是我们常说的「话说不到点上」。

下面是考察沟通能力的一些经典提问:

你如何解决和同事、产品、领导之间的冲突?

你接到一个开发任务,需要我的参与,我和你不在一个部门,你会怎么处理?

产品提出了一个你觉得无法实现的需求,你会怎么处理?

牢记:沟通能力不好的程序员,不论多牛,都不能要,特别坑!(offer君:仿佛看到了HR小姐姐的血泪史)

3、拥有同理心

同理心就是设身处地考虑他人的情绪和情感。确实存在一部分程序员,自我意识过于强烈,心理上会轻视产品、测试、销售、行政等其他互联网公司的角色,认为后者只是陪衬,甚至于在发生意见不合时,轻视公司或领导的决策。他们常见的口头禅有:「这些垃圾又改需求」,「这帮沙雕销售,不懂技术瞎忽悠」等等。

而优秀的程序员,会换位思考和倾听,也懂得尊重他人的专业。

要考察同理心,也可以问问下面的问题:

产品不断地提需求变更,你会怎么想?如何应对?

销售承诺了客户很多难以实现的需求,你如何处理?

你的前同事们认为你的最大弱点是什么?你认为他们的最大优点是什么?

4、有担当

这里的担当主要是指敢于承担工作和生活上的责任。没有担当的程序员,出了问题总是推卸责任,比如测试没有测到,产品需求没有考虑清楚,别人把代码合并错了等等。常见的口头禅是 「不知道你咋弄的,在我这儿没问题」。

考察是否有担当其实挺难的,可以问问:你本人出现的最严重的BUG或者错误是什么?你是怎么处理的?或者直接问:你认为自己做过最有责任感的一件事是什么?你的工作是如何交接的?你觉得这样交接足够么?

但更多需要通过细节来考察,比如打电话回邮件的语气和时效,「我猜、大概、差不多、可能、或许」之类的词汇在回答中的比重,原则性等等。如果有条件情景模拟面试,当然更好。

优秀的程序员除了狭义上的担当,还有着强烈的使命感,比如想通过技术来改变世界的社会责任感;在面试时可以问问远景规划、行业见解之类的。

5、优秀的时间和任务管理能力

优秀的程序员是很可靠的,有很强的职业道德,也很自律。

如果程序员在面试时迟到,或者记错了面试时间,那就要小心了。

可以问问下面这些问题:

你平时如何管理自己的开发任务?

如果今天有一项任务实在完成不了,你会如何处理?

开发过程经常被测试、产品或各种会议打断,怎么办?

6、卓越的学习能力

优秀的程序员有能力独立学习新技术,可以快速找到所需的资源或者解决方案,也绝不会受到技术更迭的威胁。

可考察以下问题:

你如何了解自己专业领域的最新动态?近期让你印象深刻的有哪些?

你一般怎么样来自学一项新技术?

对于刚刚我介绍的公司产品,你有没有什么疑问?

还有一个很重要的学习能力的考量,就是英文水平。优秀的程序员会阅读大量的英文文档,你可以问问最近读了哪些技术原版书,听过哪些公开课,在 YouTube 上订阅了哪些技术频道等等。

7、乐于分享

优秀的程序员会为队友及时提供帮助,向他人传授新技能并编写文档,不仅可以帮助公司的同事,还会帮助开发者社区。

可考察以下问题:

你在公司都做过哪些技术分享?

你参与过哪些开源项目,为开发者社区做过哪些贡献?

你觉得留给之前公司和同事最大的资产是什么?

8、聚焦用户

优秀的程序员不只是聚焦于代码,还有产品思维,会把自己代入到用户角度,去思考需求的价值和意义;并努力在能力范围内为用户解决问题。

可考察以下问题:

你有没有和产品在需求上产生过分歧?

你在开发过程中做过哪些事情,让产品更易用?

你更喜欢竞品的哪些功能?你有没有和产品说过这些优秀的功能?

以上问题只是抛砖引玉,建议 HR 根据公司和岗位的实际情况对软技能进行重要性排序,然后设计合适的问题。

责任编辑:wv

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分