关于如何面试程序员?

点 击:  2019-11-02 00:02  来 源:网络整理  字号:

  如果你要面试一个程序员,应该问他什么问题?

内容来自dedecms

  有人在HackerNews的讨论区里,请求指点,怎么才能在面试中发现合格的人。众人纷纷出主意,有很多高质量的回帖,我觉得挺有启发,就整理出了下面这篇文章。 织梦好,好织梦

  一、提问之前的准备 织梦好,好织梦

  首先,最重要的是,你自己一开始就应该想清楚: 内容来自dedecms

  1.需要新员工完成什么样的任务?

内容来自dedecms

  2.怎样的人能完成这样的任务?

织梦好,好织梦

  3.哪些途径和方法可以发现这样的人?

内容来自dedecms

  只有明确这些根本性的问题,才能正确高效地完成面试。 织梦内容管理系统

  二、提问的原则

织梦内容管理系统

  假定你对上一节的三个问题,已经有了清晰的想法,那么接下来就可以设计如何提问了。

copyright dedecms

  有一些提问的原则,是你应该遵循的: 织梦内容管理系统

  ●每一个面试问题都有明确的目的。你不仅自己了解,还能向其他面试官解释清楚。 copyright dedecms

  ●多提一些开放性(Open-ended)的问题,而不是那种用Yes/No就可以回答的问题。这样做使你有机会与面试者展开讨论,并且提出后续的问题,尽可能多地了解对方。 copyright dedecms

  ●不要问宗教、家庭、健康、个人隐私等方面的问题。

织梦好,好织梦

  ●不要问太复杂的问题。因为面试者没有太多思考时间,所以无法周全地回答,你也就无从判断他的能力了。

copyright dedecms

  三、与职位相关的问题 dedecms.com

  为了确认面试者是胜任的,你可以问一些与职位相关的专业方面的问题。(不过通常来说,一次面试不足以看出一个人的专业能力。) 织梦内容管理系统

  比如,你的招聘职位是系统管理员,你可以问如何快速地在50台机器上部署Linux?(提示:正确答案不是刻录50张安装光盘。)

dedecms.com

  另外,你还应该向面试者了解他的过去,因为过去是未来的最好预测依据。不过,提问的重点不要仅仅是他过去的成果,更要关注在当时的环境中,他是如何决策和实施的。 dedecms.com

  四、考察综合素质 内容来自dedecms

  因为人是会发展的,所以某种程度上,面试者的综合素质要比他的专业能力更重要。

copyright dedecms

  所以,具体的技术问题(如何调用API、什么是设计模式、编程语言的语法等等)可以少问一些,更应该关注面试者的事业心、对工作的热情、进取心、自律能力、毅力等方面。

内容来自dedecms

  下面是一些典型问题:

本文来自织梦

  Whydidyougetintodevelopment?你为什么开发软件?

dedecms.com

  Howmanytechnicalbooksdidyoureadinthepastyear?去年你读了几本技术书籍?

内容来自dedecms

  Whatwasyourfavoritetechnicalbookinthepastyear?Whatdidyoulearnfromit?去年你最喜欢的技术书籍是哪本?你从中学到了什么? 本文来自织梦

  Whatwebsitesdoyoureadregularly,relatedtodevelopment?平时你经常访问哪些编程类网站? 本文来自织梦

  Doyoumaintainanyopen-sourceprojects?你有自己的开源项目吗?

内容来自dedecms

  Doyoucodeinyourspare-time?业余时间你编程吗?

织梦好,好织梦

  Doyouloveprogramming,ordoyoudoitforthemoney?对于你来说,,编程是一种爱好,还是一种谋生手段? 织梦内容管理系统

  Haveyouaccomplishedanythingimportantinyourcareeryet?Doyouwantto?你的职业生涯之中有什么重要的成就?它是你主导的吗?

dedecms.com

  Whatwouldmakeyoufeelthatyouhavedonesomethingimportant?什么事情会让你很有成就感?

织梦内容管理系统

  五、考察理性思维 dedecms.com

  某些情况下,你可能需要了解面试者的分析判断能力,看他能否全面地思考问题、客观地评价自己。

copyright dedecms

  那么,你可以依次提出这样三个问题: 本文来自织梦

  Whatsyourfavoriteprogramminglanguage?Why?你最喜欢的编程语言是哪种?为什么? 织梦好,好织梦

  Ifyoucouldaddonefeaturetoyourfavoritelanguage,whatwoulditbe?Why?如果允许你为这种语言加一种功能,你会加什么功能?为什么? 内容来自dedecms

  Ifyoucouldremoveonefeaturefromit,whatwoulditbe?Why?如果允许你取消一种功能,会是什么功能?为什么?

dedecms.com

  这里的重点是,让面试者从正反两方面评价一件自己熟悉的东西,看看他的思维是否片面。答案无所谓对错,只要面试者有一个明确的立场,能够从正反两方面说出令人信服的辩护理由,就可以了。比如,某个软件的口碑不好,但是面试者说他很喜欢,而且说得出一大堆理由,清楚地解释了这种软件的优点和缺点在哪里,这样就很好。

dedecms.com

  你还可以把这些问题,套用在其他东西上面,比如操作系统、文字编辑器等等。 本文来自织梦

内容来自dedecms

    分享到: