如何做一个技术面试
面试的目的
-
了解一个对方的 技术 能力情况
-
考倒对方不是方法,更不是目的
-
避免问太多不相关问题,比如婚姻情况/家庭情况等
-
了解他是否可以很好的相处
-
立场:你是否愿意和他合作,沟通是否有困难,这个需要在面试的时候具体感觉
-
感受 是否符合公司文化,是否本分,是否能脚踏实地
-
让对方了解公司
-
面试是一个很好的推广机会,要全面的向对方介绍我们的文化和理念,使得对方对我们更了解,提高成功率
-
做不成员工至少可以做客户
流程
-
检查Email和Mantis,看是否有新的面试通知
-
事前过一遍简历,选择好问的题目
-
电话面试
-
确定是否是需要面试的人,询问是否有时间,如果没有的话约下个时间;如果是手机,询问是否打座机
-
公司简介和自我介绍(姓名,工作),应聘岗位确认(是否是应聘工程师)
-
面试过程介绍(大约30分钟,最后留一段时间回答对方问题)
-
了解对方项目信息 (大约5分钟)
-
询问技术问题(大约20分钟,2个题目),尽量不要让对方写程序
-
回答对方的问题(大约5分钟)
-
现场面试
-
公司简介和自我介绍(姓名,工作)
-
面试过程介绍(大约45分钟,最后留一段时间回答对方问题)
-
了解对方项目信息 (大约10分钟)
-
询问技术问题(大约30分钟,3个题目),要让对方写程序,但是要先询问一下是否已经写过,写一次就可以了
-
回答对方的问题(大约5分钟)
-
通知下一个面试者,并告诉问过的题目
-
到mantis中写feedback
什么是一个好题目
专业
|
偏门
|
列表和数组有什么区别
|
Java中ArrayList有几个方法
|
说文解字
|
茴香豆的茴有几种写法
|
讨论 Java: 6 + 6 + “66” + 6 + 6=?
|
-
可以灵活变化有延续性
-
自己先要研究透题目,当对方回答出来之后可以进一步让对方思考
-
比如,称硬币的问题
-
反对脑筋急转弯
-
小聪明=大笨蛋,脑筋急转弯并不能考察一个人的真正实力
-
什么是脑筋急转弯?
-
灵光一现才可以回答的
-
没有延续性
-
强词夺理的
-
编程题目
-
不要太复杂,不要实现一些常用算法(比如快速排序)
-
控制在20行之内(不算重复代码)
-
让对方先讲实现方法
如何掌握进度
-
事前准备
-
了解岗位的需求,PHP? ASP? JAVA?
-
了解对方的经历,选择题目,反对过度询问他并不擅长的问题(比如他的专业方向是计算机网络,但是问了很多图形学的问题)
-
掌握主动性
-
时间把握在40分钟,一般介绍自己和了解对方经历花5分钟,专业问题30分钟(2-3个题目),最后解答对方问题5分钟
-
当认定对方不适合的时候怎么办
-
换一个方向或者题目,看是否自己问的题目有问题
-
换一个简单的问题,或者让对方介绍过去的项目
-
如果还是不行,不能提前结束面试,绝对不能有鄙视或者轻视的表现,要让对方感觉受到尊重
-
直接告诉HR建议不要继续,以免浪费后面同事的时间
-
当对方滔滔不绝的时候怎么办
-
不能粗鲁的打断,更不能争吵
-
适当的接对方的话茬,结束这个话题
-
当对方一言不发的时候怎么办
-
询问对方有什么困难,给一些提示(提示给的越多,最后的得分越少)
-
如果对方是蒙头思考,让对方主动讲思路
什么不该讲,不该问
-
具体薪水和待遇问题,这是HR的问题,遇到有人问的时候,可以这么回答“对不起,我们这次只是做技术上的沟通,具体的待遇我也不是很清楚,您可以咨询一下我们的HR”
-
以前公司的具体事情
-
不能透露我们公司的如下方面情况:
-
任何技术数据,包括服务器数目,带宽,地点,日志保留情况和分析结果,产品价格信息,用户注册数据,销售统计数据
-
技术实现细节,可以讲我们是用php+java开发的,但是禁止讲我们是用ecshop+lucene以及rpc,但不要否认
-
内部系统的任何情况,包括系统的存在,技术框架,流程等
怎么评价和写Feedback
-
先写: 评分
-
问了什么问题,他是怎么答得
-
最后写一个评价,是否建议录用,有哪方面的长处,担心的方面是什么