面试是一次双向的沟通过程,对求职者而言是找到心仪的东家,对公司而言是招揽合适的人才。面试官的目的是考察求职者能力,评估和岗位的匹配程度,绝非用稀奇古怪的题目面倒求职者。
本人近两年面试大几十位求职者,深感作为一个面试者不易,做好一个面试官更难,如何在极其有限的时间内准确的考察出求职的技术能力,对面试官的考验很大。本文关注服务端技术能力的考察,包括考察的范围、方式和注意事项。性格、合作能力、抗压能力等的考察不在本文讨论范围内。
态度指南
古有周公吐哺、三顾茅庐的佳话,优秀的人才从来不乏东家,所以请尊重求职者,纵然无缘招揽优秀的人才,也要赢得面试者的好评和名声:
-
求职者慕名而来至少出门迎接、给瓶解渴水吧
-
营造宽松良好的面试氛围,让求职者正常发挥
-
控制好时间,不予太长,亦不宜太短
-
面试的过程请保持耐心,认真听取,切勿打断求职者,切勿过分争论和反驳
-
面试结束后尽快给予求职者反馈
技术考察
技术考察主要覆盖基础知识、专业知识和逻辑思维三方面。首先了解求职者经历的项目以及在该项目中承担的角色和工作内容,再以项目为切入点,由浅入深的提出和基础知识以及专业知识相关的问题,要特别注意这些问题的连贯性,从而考察面试者的功底、逻辑性和解决问题的思路。为了缓和氛围,还可以提一些开放的问题,那些钟情于技术的 geek 们,在这类问题往往能回答的深入和透彻。
基础知识
-
熟练掌握一门语言
-
熟悉基本的数据结构和算法
-
熟练使用 Linux(Windows),对操作系统原理的理解
-
Optional: 数据库、Web Server 和 TCP/IP 等
专业 & 经验
专业知识的考察因业务而异,求职者应该需要了解整个项目的功能,明白自己模块承担的角色,熟悉模块的业务流程以及针对该业务使用到的技术框架,某些特殊的业务可能会用到算法。
开放问题
-
你使用过哪些语言,对比它们的异同,谈谈你的感受?
-
你喜欢哪些技术书籍(博客)?
-
哪些软件你觉得很棒,为什么?
-
你通过什么渠道学习新技术知识?
-
你解决过哪些令你难忘的 bug,并说说解决的过程?
-
谈谈个人计算机(互联网网络)的发展历史?
-
谈谈你敬佩的工程师?
-
谈谈测试的重要性?
一点感受
-
不推荐纯粹的数学题、智力题等考察题目
-
不推荐压力面试,群面等面试方式
-
不推荐做题、现场写代码(时间成本太高,伪代码除外),不推荐询问杂而无连贯的问题
-
能给出 github 的求职者往往具有更强的竞争力
面试的方式和考察重点因人而异,本人认为这种方式的面试效率较高,既适合现场面试、又适合电话面试,非常注重基础功底,基础功底扎实的工程师编程能力、学习能力和调试能力都比较强悍,因为外部各异的技术归根结底总是有诸多相通之处。
看完本文有收获?请转发分享给更多人