如何面试程序员

STAR面试法中“STAR”是SITUATION(背景)、TASK(任务)、ACTION(行动)和RESULT(结果)四个英文字母的首字母组合。在招聘面试中,仅仅通过应聘者的简历无法全面了解应聘者的知识、经验、技能的掌握程度及其工作风格、性格特点等方面的情况。而使用STAR技巧则可以对应聘者做出全面而客观的评价。

  了解背景(SITUATION),通过不断提问与工作业绩有关的背景问题,可以全面了解该应聘者取得优秀业绩的前提,从而获知所取得的业绩有多少是与应聘者个人有关,多少是和市场的状况、行业的特点有关。

  了解任务(TASK),每项任务的具体内容是什么样的。通过这些可以了解应聘者的工作经历和经验,以确定他所从事的工作与获得的经验是否适合所空缺的职位。

  了解行动(ACTION),即了解他是如何完成工作的,都采取了哪些行动,所采取的行动是如何帮助他完成工作的。通过这些,可以进一步了解他的工作方式、思维方式和行为方式。

  关注结果(RESULT),每项任务在采取了行动之后的结果是什么,是好还是不好,好是因为什么,不好又是因为什么。

  通过STAR式发问的四个步骤,一步步将应聘者的陈述引向深入,一步步挖掘出应聘者潜在的信息,通过应聘者过去的经历来预测其是否胜任目标职位。所以,确保应聘者提供的事件信息真实有效,就成了追问的另一目的。要通过得到更多、更详细的信息,来保证应聘者回答的真实性,因为所得到的结果越具体,说明事件越真实,做出的评价也就越准确。

  面试其实说白了就是根据一个人之前的经历,来判断出后续这人会做得怎样,如果你之前从没做成过一件事情,凭什么让别人相信你之后能做成呢?因此无论哪里的面试都会问你之前做过的项目。需要注意的是两个平庸的项目不如做了一个好项目。针对STAR面试法设计的问题:

  你做过最满意的项目是什么?可以是多人协助开发一个产品,也可以是自己个人做过的业余应用。

  项目背景是什么?为什么要做这件事情?

  你在项目中处于什么样的角色,起到了什么方面的作用?

  在项目中遇到什么技术问题?具体是如何解决的?

  此项目最终达到什么效果?

  如果再做这个项目,你会在哪些方面进行改善?

  除了STAR面试外,还需要对面试者的技能及其他内容做深入了解。比如技术相关问题,探测面试者基础知识的掌握程度及技术深度和广度的了解。技术相关问题:

  描述一个你遇到过的技术问题,你是如何解决的?有没有遇到过很不常见的问题?比如在网上根本搜不到解决方法的?

  是否有设计过通用的组件?你会提供什么接口?调用过程是怎样的?可能会遇到什么细节问题?

  你最擅长的技术是什么?你觉得你在这个技术上的水平到什么程度了?你觉得最高级别应该是怎样的?

  在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的?

  你最熟悉哪一套版本控制系统?

  除此之外,还需要问一些非技术相关问题:

  如果你参与到一个项目中,发现他们使用 Tab 来缩进代码,但是你喜欢空格,你会怎么做?

  在之前做过的项目中,有没有什么功能或改进点是由你提出来的?是否有参与和改进其它开源项目?

  编写代码的哪些方面能够使你兴奋或感兴趣?做什么方面的事情最让你有成就感?需求设计?规划?具体开发?

  你在昨天/本周学到了什么?接下来半年你打算学习什么?如果今年你打算熟练掌握一项新技术,那会是什么?

  后续想做什么?3 年后你希望自己是什么水平?

  以上为个人梳理的面试的一些技巧。期望多多交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值